Phonegap Android应用程序对HTTPS的ajax请求失败,状态为0

Phonegap Android应用程序对HTTPS的ajax请求失败,状态为0,第1张

Phonegap Android应用程序对HTTPS的ajax请求失败,状态为0

当请求的URL响应错误或自签名证书时,就会发生这种情况。在测试或发布应用程序的朋友,设置

<applicationandroid:debuggable="true"...>
AndroidManifest.xml
是不够的-它会自动绕过证书错误。

但是Google Play商店不接受带有的APK

android:debuggable="true"
。首先,当然需要对证书进行固定。但是,在这种情况下,这是PhoneGap / Cordova
3的解决方法:

  1. 在您的应用包中,为创建一个子类
    CordovaWebViewClient
        public class SSLAcceptingCordovaWebViewClient extends CordovaWebViewClient {        public SSLAcceptingCordovaWebViewClient(CordovaInterface cordova, CordovaWebView view) { super(cordova, view);        }        @Override        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed();        }    }
  1. 相同
    IceCreamCordovaWebViewClient
        public class SSLAcceptingIceCreamCordovaWebViewClient extends IceCreamCordovaWebViewClient {        public SSLAcceptingIceCreamCordovaWebViewClient(CordovaInterface cordova, CordovaWebView view) { super(cordova, view);        }        @Override        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed();        }    }
  1. <Your App Name>.java
    添加替代
    makeWebViewClient
        @Override    protected CordovaWebViewClient makeWebViewClient(CordovaWebView webView) {        if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) { return new SSLAcceptingCordovaWebViewClient(this, webView);        } else { return new SSLAcceptingIceCreamCordovaWebViewClient(this, webView);        }    }

等等! SSL错误将被忽略。但是,切勿使用错误的证书。尝试先修复它们,然后仅在用完其他解决方案时才使用此肮脏的解决方法。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5008257.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-15
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存