如何在android webview中加载https url而不使用ssl

我已经标记Playstore上的一个问题和谷歌发送邮件我的应用程序是不安全的,因为使用SSL。

目前在我的应用程序中,我有一个webview ,它是负载链接,它包含https url。

在网页设置我正在这样做:

web.setWebViewClient(new SSLTolerentWebViewClient());

忽略ssl证书我使用下面的代码,但由于忽略证书playstore显示我的应用程序是不安全的

 private class SSLTolerentWebViewClient extends WebViewClient { public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); // Ignore SSL certificate errors } } 

任何人都可以build议我如何做到这一点,所以我的WebView可以处理https url和Playstore不会将我的应用程序标记为不安全?

解决Google Play警告:WebViewClient.onReceivedSslError处理程序

不总是强制handler.proceed(); 但是你还必须包含handler.cancel(); 所以用户可以避免未加载的内容。

处理WebViewClient.onReceivedSslError处理程序的不安全实现

使用下面的代码

  webView.setWebViewClient(new SSLTolerentWebViewClient()); webView.loadUrl(myhttps url); 

  private class SSLTolerentWebViewClient extends WebViewClient { public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { AlertDialog.Builder builder = new AlertDialog.Builder(Tab1Activity.this); AlertDialog alertDialog = builder.create(); String message = "SSL Certificate error."; switch (error.getPrimaryError()) { case SslError.SSL_UNTRUSTED: message = "The certificate authority is not trusted."; break; case SslError.SSL_EXPIRED: message = "The certificate has expired."; break; case SslError.SSL_IDMISMATCH: message = "The certificate Hostname mismatch."; break; case SslError.SSL_NOTYETVALID: message = "The certificate is not yet valid."; break; } message += " Do you want to continue anyway?"; alertDialog.setTitle("SSL Certificate Error"); alertDialog.setMessage(message); alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Ignore SSL certificate errors handler.proceed(); } }); alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { handler.cancel(); } }); alertDialog.show(); } } 

尝试使用http而不是https链接到网页。 这可能会redirect到https网站。 您将不需要编码来忽略安全证书。