android5.0以上webview无法播放腾讯优酷等网络视频
最近一直在做浏览器项目,遇到某些手机在线无法播放腾讯视频,搞得我很郁闷,网上查了很多资料,大部分都说开了硬件加速就可以了,可是硬件加速早开了,也没用。继续找啊找啊,又看到说是http和https重定向问题,然后又试了下面的方法:
mWebView.setWebViewClient(newWebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if( url.startsWith("http:") || url.startsWith("https:") ) { return false; } try{ Intent intent =new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity( intent ); }catch(Exception e){} return true;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
还是没有用啊,再仔细看一下我的处理,已经包含了上面的处理,就算改了也没有用,纠结的很,然后再继续百度,还找了很久很久,忽然让我看到了一个评论,具体是说:又要新版本安全提升,需要添加下面的代码就行了…:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
getSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
- 1
- 2
- 3
惊喜的我赶紧去试了下,咦?居然有效哦。然后我就在纠结这是什么原因,然后在百度了一下,说这可能涉及到Android5.0 WebView中Http和Https混合的问题,下面分析一下前因后果。
原因:
- 从Android5.0开始,WebView默认不支持同时加载Https和Http混合模式。知识储备:
-
从Android5.0以后,当一个安全的站点(https)去加载一个非安全的站点(http)时,需要配置Webview加载内容的混合模式,一共有如下三种模式:
1. MIXED_CONTENT_NEVER_ALLOW:Webview不允许一个安全的站点(https)去加载非安全的站点内容(http),比如,https网页内容的图片是http链接。强烈建议App使用这种模式,因为这样更安全。
2. MIXED_CONTENT_ALWAYS_ALLOW:在这种模式下,WebView是可以在一个安全的站点(Https)里加载非安全的站点内容(Http),这是WebView最不安全的操作模式,尽可能地不要使用这种模式。
3. MIXED_CONTENT_COMPATIBILITY_MODE:在这种模式下,当涉及到混合式内容时,WebView会尝试去兼容最新Web浏览器的风格。一些不安全的内容(Http)能被加载到一个安全的站点上(Https),而其他类型的内容将会被阻塞。这些内容的类型是被允许加载还是被阻塞可能会随着版本的不同而改变,并没有明确的定义。这种模式主要用于在App里面不能控制内容的渲染,但是又希望在一个安全的环境下运行。 - 分析:
- 在Android5.0以下,默认是采用的MIXED_CONTENT_ALWAYS_ALLOW模式,即总是允许WebView同时加载Https和Http;而从Android5.0开始,默认用MIXED_CONTENT_NEVER_ALLOW模式,即总是不允许WebView同时加载Https和Http。虽然官网给出的建议是,为了安全考虑,使用MIXED_CONTENT_NEVER_ALLOW模式,但是在实际引用中,当我们的服务器已经升级到Https,但是一些页面的资源是第三方的,我们不能要求第三方也都升级到Https,所以我们只能根据系统版本,用代码去设置加载模式为MIXED_CONTENT_ALWAYS_ALLOW。
解决方法:
在webview加载页面之前,设置加载模式为MIXED_CONTENT_ALWAYS_ALLOW,最好做一下版本判断。
原文链接:点击打开链接http://blog.csdn.net/qq_16472137/article/details/54346078
android5.0以上webview无法播放腾讯优酷等网络视频相关推荐
- wangEditor使用iframe插入视频,直接在编辑器内查看视频,腾讯优酷为例
腾讯: 优酷: 找到视频的分享按钮,有复制通用代码,代码复制下来是这样的: 这是腾讯视频的 <iframe frameborder="0" src="https:/ ...
- Part2_事务与分布式事务原理与实现_沈询_fixed ver—在线播放—优酷网,视频高清在线观看...
Part2_事务与分布式事务原理与实现_沈询_fixed ver-在线播放-优酷网,视频高清在线观看 Part2_事务与分布式事务原理与实现_沈询_fixed ver-在线播放-优酷网,视频高清在线观 ...
- Java实现简单在线播放器——支持优酷和土豆
今天本来是打算继续写"Java新浪微博客户端开发"的,也实现了"系统托盘","点击查看大图"的功能,写到一半,想起上篇博文中有CSDN有一网 ...
- 培乐园《搜索相关性1》—在线播放—优酷网,视频高清在线观看
培乐园<搜索相关性1>-在线播放-优酷网,视频高清在线观看 培乐园<搜索相关性1>-在线播放-优酷网,视频高清在线观看 视频: 培乐园<搜索相关性1> posted ...
- android webview腾讯,Android webview无法播放腾讯视频问题
原因: 从Android5.0以后,WebView默认不支持同时加载Https和Http混合模式,当一个安全的站点(https)去加载一个非安全的站点(http)时,需要配置Webview加载内容的混 ...
- php怎么让视频自动播放,怎样让优酷等视频实现自动播放
优酷播放器自动播放方法: 方法一:1.把下面的代码复制到记事本中,保存备用. http://player.youku.com/player.php/sid/XMzg4NzEyOTY==/v.swf?V ...
- 视频自动播放代码(优酷、搜狐、酷6、土豆等)
一.优酷.搜狐视频自动播放代码(更换地址即可) 如下: width=700 height=550 type=application/x-shockwave-flash wmode="opaq ...
- 在线视频流播放控制(优酷、土豆、酷六、音乐台)
最近在制作相关系统的原型,需要用到视频,就把视频的播放问题做一个总结 视频是制作博客.空间日志的好素材,它制作简单,内容广泛,主要包括有视频音乐.小品.朗诵.电影.电视.游戏等等,不仅可以在插入视频中 ...
- 各大网站视频自动播放代码(优酷、搜狐、酷6、土豆等)
注:可以复制或涂蓝后同时按左下角CTRL+C即可复制. 如何将Flash素材保存到电脑硬盘? http://lxc66188.blog.163.com/blog/static/91764986 ...
最新文章
- linux 启动nacos报错_nacos在Linux上的搭建启动报错
- IOS开发系列--IOS程序开发概览
- Windows系统版本判断
- boost::type_traits模块用法的一些示例
- 函数返回指针类型(strchr函数)
- 接上一篇--最小生成树之Prim算法(根据点来实现最小生成树)
- DOM和BOM的区别
- CCIE学习(4)——VLAN基础
- WPF RichTextBox设置文本颜色
- ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
- sublime批量添加注释
- 微信小程序下拉刷新真机没效果_微信小程序~下拉刷新真机测试不弹回的处理办法...
- 移动客户端谈百度分享经验
- android:layout_margintop=3dip,ConstraintLayout 中android:layout_marginStart
- 滴滴入职要学位证吗学位证_我如何在没有技术学位或工作经验的情况下找到全职开发人员工作...
- 【计算机科学】【2020.05】基于深度学习的计算蛋白质结构预测
- 2016淘宝首页改版 细说淘宝首页设计变化史
- webshell、木马与后门之间的区别
- Android 8.1输入法配置
- 交换机之vlan详解