导出APK后,Phonegap/Cordova白名单跨域SSL请求无效

Dea*_*ild 6 https android whitelist cordova

我创建了一个需要与自签名SSL服务进行通信的phonegap应用程序.

我在res/xml/cordova.xml中将我的URL列入白名单,如下所示:

<access origin="https://www.mydomain.com" subdomains="true" />

当我从eclipse运行和构建时,这工作正常,但如果我然后导出并签署我的应用程序并手动安装APK,那么该应用程序无法与我的Web服务进行通信.

与服务器的通信使用Sencha Touch库进行,如下所示:

Ext.Ajax.request({
        url: 'https://www.mydomain.com',
        method: 'get',          
        success: function(result) {                 
        },
        failure: function(result) {         
        }           
    }); 
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢

fil*_*maj 10

问题是您使用的是自签名证书.默认情况下,Android WebView不允许使用自签名SSL证书.PhoneGap/Cordova在CordovaWebViewClient类中重写了这一点,但并没有多大地改变它的行为; 如果应用程序是调试签名的,它将proceed忽略错误,否则它将失败.

您可以在应用程序中更改上面链接的代码,并onReceivedSslError始终调用该方法handler.proceed()- 但不建议这样做.不要使用自签名证书!