WKWebView视频暂停不适用于所有网站

时间:2015-07-17 10:40:04

标签: javascript ios objective-c video html5-video

我正在加载一些包含一些视频的网站。我正在使用WKWebView加载这些视频。我需要在加载页面时停止自动播放的视频,所以我添加了以下java脚本代码来暂停视频。

NSString *script = @"var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { videos[i].pause(); };";
    [webView evaluateJavaScript:script completionHandler:^(id result, NSError *error) {
        NSLog(@"Error : %@",error.localizedDescription);
        NSLog(@"Java script result = %@",result);
}];

我可以暂停在我上市的大多数网站中的视频,如CNN,Youtube等。但它不适用于某些网站。示例:

TheGlobe& Mail - http://www.theglobeandmail.com/news/news-video/

BBC - http://www.bbc.com/news/video_and_audio

这个问题有解决方法吗?

2 个答案:

答案 0 :(得分:1)

iOS 9.0 WKWebView中有一个属性叫做       requiresUserActionForMediaPlayback 如果将此值设置为true,则应关闭自动播放

如果您正在使用< iOS 9.0,设置属性       mediaPlaybackRequiresUserAction 为true关闭自动播放。

我还没在你提到的网站上试试这个。我做完后会更新我的答案

答案 1 :(得分:0)

我知道这个问题是很久以前问过的,但是由于没有答案,我将为寻求该方法的其他所有人回答这个问题:

这是我的代码:

NSString *script = @"var videos = document.getElementsByTagName(\"video\");  for (var i = 0; i < videos.length; i++) { videos.item(i).pause(); };";
[self.webView evaluateJavaScript:script completionHandler:^(id result, NSError *error) {

}];