我有一个适用于Android和iOS的Xamarin Forms应用程序,该应用程序显示了WebView中本地存储中的一些HTML内容(目的是在脱机时查看此内容)。
在最新的iOS更新(12.2)之后,该HTML中的视频停止工作。 视频的位置显示白色背景,并带有符号“播放”,但无法执行任何操作。
我尝试将视频标签更改为包括自动播放,静音,但没有成功。
<video width="560" height="315" controls>
<source src="Absolute-3D.mp4" type="video/mp4">
</video>
我希望它可以像更新前一样继续工作,但是有一些东西阻止了它。
答案 0 :(得分:1)
尝试将Web视图的mediaPlaybackRequiresUserAction
设置为NO
。我在iOS 12.2中看到了相同的问题(UIWebView
和WKWebView
)。在iOS 12.1和更早版本中可以正常工作。
调试时,您会在safari控制台中看到此错误:
未处理的承诺拒绝:NotAllowedError:请求不是 在当前上下文中由用户代理或平台允许, 可能是因为用户拒绝了权限
答案 1 :(得分:1)
这是一个UIWebView错误,我添加了以下代码,现在可以使用。
self.webView.mediaPlaybackRequiresUserAction = NO;
self.webView.allowsPictureInPictureMediaPlayback = YES;
答案 2 :(得分:0)
我用WKWebView替换了UIWebView(现已弃用),它似乎可以再次运行而无需更改html代码中的任何内容。
控制台中有一条消息,指出在当前上下文中未授权全屏。对我来说,它也只会在真实设备上发生。
答案 3 :(得分:0)
未处理的承诺拒绝:NotAllowedError:在当前上下文中,用户代理或平台不允许该请求,可能是因为用户拒绝了许可。 尚未解决。
答案 4 :(得分:0)
您需要将此添加到您的plist
NSIncludesSubdomains
和NSTemporaryExceptionAllowsInsecureHTTPLoads
赞:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>