首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WebView ssl错误

WebView ssl错误
EN

Stack Overflow用户
提问于 2017-02-26 20:03:11
回答 1查看 4.4K关注 0票数 3

对不起,我的英语不好。我需要加载url https,我有一些问题。当我尝试加载页面时,webView给我错误

代码语言:javascript
复制
primary error: 3 certificate: Issued to: CN=my-site.com;
Issued by: CN=GeoTrust DV SSL CA - G3,OU=Domain Validated SSL,O=GeoTrust Inc.,C=US;
on URL: https://my-site.com/tutorial.php

如果我创建自定义WebView客户端并重定义方法onReceivedSslError,如下所示:

代码语言:javascript
复制
@Override
        public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
handler.proceed();
}

然后,当我加载这个应用程序来玩市场时,谷歌的人会说我:

代码语言:javascript
复制
Your APK has been rejected for containing security vulnerabilities, which violates the  Malicious Behavior policy

我可以解决这个问题,就像这样:

代码语言:javascript
复制
final AlertDialog.Builder builder = new AlertDialog.Builder(WebViewTutorials.this);
            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?";

            builder.setTitle("SSL Certificate Error");
            builder.setMessage(message);
            builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    handler.proceed();
                }
            });
            builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //handler.cancel();
                    finish();
                }
            });
            final AlertDialog dialog = builder.create();
            dialog.show();

但是对于这个应用程序显示用户popUp窗口是不可接受的,后台的人告诉我“这是你在客户端的问题”。我不知道我该做什么,需要显示用户webView页面,但不显示带有警告popUp窗口

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42468223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档