WebView加载https的空白及图片加载不了的问题

来源:互联网 发布:类似维棠的软件 mac 编辑:程序博客网 时间:2024/06/05 00:56

目前ios现在都需要换成https请求,现在遇到一个webview加载https的有一些问题及解决办法。


1、webview加载https空白页面

解决办法:

@Overridepublic void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {    handler.proceed(); // Ignore SSL certificate errors}


或者可以这么写:

 @Override    public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {    final AlertDialog.Builder builder = new AlertDialog.Builder(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();        }    });    final AlertDialog dialog = builder.create();    dialog.show();}


可能遇到的问题:有可能会遇到有的图片加载不出来,那是因为webview 从Lollipop(5.0)开始webview默认不允许混合模式,https当中不能加载http资源,需要设置开启。

解决办法:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {    settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);}



0 0
原创粉丝点击