gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:24 28 4
gpt4 key购买 nike

我在 Playstore 上标记了一个问题,Google 发送邮件说我的应用不安全,因为使用了 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
}
}

任何人都可以建议我如何做到这一点,以便我的 WebView 可以处理 https url 并且 Playstore 不会将我的应用标记为不安全吗?

最佳答案

To Solve Google Play Warning: WebViewClient.onReceivedSslError handler

并不总是强制执行 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();
}
}

关于android - 如何在android webview中不使用ssl加载https url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35569047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com