最新项目大改版,刚好对相关sdk版本做了下升级,target也从19升级到21。

意外发现原先在WebView中加载的网页中的图片全都变得一片白,连默认图片都不给显示。

经过一番测试才发现是由于target版本所致。

刚好stackoverflow上有相关问题http://stackoverflow.com/questions/28626433/android-webview-blocks-redirect-from-https-to-http

其实就是API 20 之后WebView对Mixed Content做了限制,当从安全链接请求非安全连接时会直接block掉非安全请求,如需解除限制需手动设置

if (Build.VERSION.SDK_INT >= 21) {
        webview.getSettings().setMixedContentMode( WebSettings.MIXED_CONTENT_ALWAYS_ALLOW );
    }

官方文档说明

https://developer.android.com/about/versions/android-5.0.html

官方文档中对Mixed-Content的处理分为三种

MIXED_CONTENT_NEVER_ALLOW:默认设置,禁用所有
MIXED_CONTENT_ALWAYS_ALLOW:允许所有(不安全,官方不推荐
MIXED_CONTENT_COMPATIBILITY_MODE:兼容模式,对部分元素进行加载,策略未严格指定,一般默认加载图片、音视频,屏蔽HTML、JS、CSS。

我们应用中涉及到的Mixed-Content只是一些图片,所以使用兼容模式更合理。

WebView redirect https to http的更多相关文章

  1. nginx 代理https后,应用redirect https变成http --转

    原文地址:http://blog.sina.com.cn/s/blog_56d8ea900101hlhv.html 情况说明nginx配置https,tomcat正常http接受nginx转发.ngi ...

  2. android webview 访问https页面 SslError 处理

    在Android中,WebView可以用来加载http和https网页到本地应用的控件.但是在默认情况下,通过loadUrl(String url)方法,可以顺利loadUrl(“http://www ...

  3. Android如何使用WebView访问https的网站

    Android中可以用WebView来访问http和https的网站,但是默认访问https网站时,假如证书不被Android承认,会出现空白页面,且不会有任何提示信息,这时我们必须加多一些配置. 此 ...

  4. android webview 访问 https 页面

    在android 中利用webview 控件进行开发过程中,可能会遇到 webview 访问不了https://的页面如 https://www.google.com.hk 重写onReceivedS ...

  5. android的webView内部https/http混合以及自适应屏幕

    两种请求都有的情况下,会导致WebView加载不出来. //自适应屏幕 settings.setUseWideViewPort(true); settings.setLoadWithOverviewM ...

  6. springMVC or response redirect https

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> < ...

  7. 安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法

    一.我们先在XML当中自定义一个webview(Second_layout.xml) 代码如下: <?xml version="1.0" encoding="utf ...

  8. Android webview 加载https网页显示空白

    http://www.2cto.com/kf/201110/108836.html 这个网址讲的不错. 设置webview支持https的方法: webView.setWebViewClient(ne ...

  9. URL跳转与webview安全浅谈

    URL跳转与webview安全浅谈 我博客的两篇文章拼接在一起所以可能看起来有些乱 起因 在一次测试中我用burpsuite搜索了关键词url找到了某处url我测试了一下发现waf拦截了指向外域的请求 ...

随机推荐

  1. 《scraping with python》

    记得刚开始学习python时就觉得爬虫特别神奇,特别叼,但是网上的中文资料大都局限于爬取静态的页面,涉及到JavaScript的以及验证码的就很少了,[当时还并不习惯直接找外文资料]就这样止步于设计其 ...

  2. C#与.Net Framework的各种版本和联系

    C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言.并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新 ...

  3. 启动php-fpm时报错

    [root@localhost ~]# /usr/local/php/sbin/php-fpm [06-Aug-2012 19:17:53] ALERT: [pool www] pm.min_spar ...

  4. BOM和DOM详解

    DOM介绍 D(文档)可以理解为整个Web加载的网页文档,O(对象)可以理解为类似window对象只来的东西,可以调用属性和方法,这里我们说的是document对象,M(模型)可以理解为网页文档的树形 ...

  5. ubuntu下安装Vmare Workstation,并安装mac补丁

    最近想学习一下关于ios方面的开发,但是苦于自己的电脑已经装了两个系统:一个win7,一个ubuntu.两系统均装在物理硬盘上,不想格盘,所以装个虚拟机玩玩.决定使用Vmare Workstation ...

  6. Javascript数组方法探究一二

    1. Array.prototype.slice方法 数组的 slice 方法通常用来从一个数组中抽取片断.不过,它还有将“类数组”(比如arguments和​HTMLCollection​)转换为真 ...

  7. JavaScript--声明提前

    声明提前(hoist): 在正式执行程序前,都会将所有var声明的变量和function声明的函数提前到*当前作用域*的顶部集中创建. 但是,赋值留在原地. console.log(a);//unde ...

  8. 你好,C++(12)如何管理多个类型相同性质相同的数据?3.6 数组

    3.6  数组 学过前面的基本数据类型之后,我们现在可以定义单个变量来表示单个的数据.例如,我们可以用int类型定义变量来表示公交车的216路:可以用float类型定义变量来表示西红柿3.5元一斤.但 ...

  9. JDK1.5中LOCK,Condition的使用

    import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.uti ...

  10. php错误级别设置

    在php.ini中可以设置服务器对错误的报警级别.在默认情况下,php将报告除了通知之外的所有错误. 错误报告级别是通过一些预定义的常量来设置的, 语法 int error_reporting ( [ ...