zoukankan      html  css  js  c++  java
  • Android webview Mixed Content无法显示图片解决

    转自:http://blog.csdn.net/crazy_zihao/article/details/51557425

    前言

      在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么会出现无法成功加载对应资源问题。那么,我们就要针对这一状况作出对应的处理。

    解决步骤

    1. 启用mixed content

    在Android5.0中,WebView方面做了些修改,如果你的系统target api为21以上:

    • 系统默认禁止了mixed content和第三方cookie。可以使用setMixedContentMode() 和 setAcceptThirdPartyCookies()以分别启用。
    • 系统现在可以智能选择HTML文档的portion来绘制。这种新特性可以减少内存footprint并改进性能。若要一次性渲染整个HTML文档,可以调用这个方法enableSlowWholeDocumentDraw()
    • 如果你的app的target api低于21:系统允许mixed content和第三方cookie,并且总是一次性渲染整个HTML文档。 
      在使用WebView的类中添加如下代码:
    • [html] view plain copy
       
       print?
      1. // android 5.0以上默认不支持Mixed Content  
      2. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {  
      3.     webView.getSettings().setMixedContentMode(  
      4.         WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);  
      5. }  

    2. 设置WebView接受所有网站的证书

    在认证证书不被Android所接受的情况下,我们可以通过设置重写WebViewClient的onReceivedSslError方法在其中设置接受所有网站的证书来解决,具体代码如下:

    [html] view plain copy
     
     print?
    1. webView.setWebViewClient(new WebViewClient() {  
    2.             @Override  
    3.             public void onReceivedSslError(WebView view,  
    4.                     SslErrorHandler handler, SslError error) {  
    5.                 // TODO Auto-generated method stub  
    6.                 // handler.cancel();// Android默认的处理方式  
    7.                 handler.proceed();// 接受所有网站的证书  
    8.                 // handleMessage(Message msg);// 进行其他处理  
    9.             }  
    10. });  

    注:在重写WebViewClientonReceivedSslError方法时,注意一定要去除onReceivedSslError方法的super.onReceivedSslError(view, handler, error);,否则设置无效。

  • 相关阅读:
    一个GOOD的Idea需要伯乐发觉-致敬错过的IDEA
    企业增量发布项目-个人步骤
    JAVA 发送邮件代码---发送HTML内容
    JAVA 发送邮件代码---发送文本内容: 内容使用 进行换行
    Myeclipse8.5开发-安装一:Myeclipse8.5注册码生成程序
    Myeclipse8.5开发-插件安装二:安装findbugs方法
    页面布局
    Flex布局(CSS Flexbox)
    CSS垂直居中的11种实现方式
    CSS3中的px,em,rem,vh,vw辨析
  • 原文地址:https://www.cnblogs.com/zhengshiqiang47/p/6220295.html
Copyright © 2011-2022 走看看