WebView常见问题
一、简介
目前部分网页使用WebView控件来播放Polyv点播视频或直播视频时,会产生以下问题,在此提供demo供参考方便快速解决问题。
安卓webview demo描述 - demo中实现了点击全屏按钮功能(ps:点击全屏后自动横屏)
IOS webview demo描述 - demo中分别演示使用UIWebview、WKWebview
二、FAQ
1. webview 引用直播观看页打开白屏
不可以随意劫持Polyv请求的cookie信息,可能导致播放页面无法正常跳转,出现白屏现象。
2. 播放器区域白屏
由于运营商劫持的可能性,建议引用https的页面地址解决。
3. iOS UIWebview 已废弃使用,请使用 WKWebView
视频在h5页面内播放属性是 inline playback, UIWebView 默认开,WKWebView 默认关。 UIWebView 在 iOS 11.3 上设置 inline playback 无效,iOS 11.0.3 上可以,所以不建议继续使用 UIWebView。
补充:苹果在今年(2020年)4月起已禁止提交包含 UIWebview 的新应用,12月禁止包含 UIwebview 的应用更新
4. ios配置
iOS 需要以下配置,设置 info.plist
NSAppTransportSecurity
字段,允许非HTTPS连接访问。
加入 NSAllowsArbitraryLoadsInWebContent
键,允许任意web页面加载,或设置 NSAllowsArbitraryLoads
为 YES
来禁用ATS。
测试发现:使用NSAllowsArbitraryLoadsInWebContent
在 iOS 10.3 上视频可能无法播放,所以建议直接关闭ATS。
默认小屏播放(WKWebView) 加载网页后网页里有播放器,但是iOS11上的播放默认是全屏播放,没有办法小屏播放,这里我们就要进行下设置了
5.Android 虚拟按键适配动态调整布局
6.Android HTTPS页面引用HTTP资源的问题
Android5.0及以上系统WebView默认不支持同时加载Https和Http混合模式,若直播观看页嵌入https页面,需要增加以下代码解决播放
此外,Android 9及以上系统默认应用禁止Http明文访问,如果需要访问Http网址或内容,请在AndroidManifest.xml的Application标签中加入 android:usesCleartextTraffic="true" 属性
7.Android 默认视频封面灰色播放按钮美化
8.Android webview观看页全屏退出后无法弹起输入框
在webview的全屏/竖屏回调中,添加mWebView.clearFocus();方法。
Last updated