WKWebView视频暂停不工作的所有网站

WKWebView video pausing not working for all the websites

本文关键字:网站 工作 视频 暂停 WKWebView      更新时间:2023-09-26

我正在加载一些包含一些视频的网站。我使用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

这个问题有什么解决办法吗?

在iOS 9.0中有一个属性WKWebView叫做requiresUserActionForMediaPlayback如果你把这个设置为true,那么你的自动播放应该被关闭

如果你使用

我还没有在你提到的网站上尝试这个。当我输入

时,会更新我的答案

我知道这个问题很久以前就被问过了,但既然没有答案,我将为其他正在寻找方法的人回答这个问题:

这是我的代码:

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) {
}];

Swift

webview.evaluateJavaScript("var videos = document.getElementsByTagName('"video'");  for (var i = 0; i < videos.length; i++) { videos.item(i).pause(); };")

基于https://stackoverflow.com/users/2640210/the-mach-system答案