WKWebView 在后台应用程序时停止音频

sid*_*bob 6 html5-video ios swift wkwebview

我有一个正在播放 HTML5 视频的 WKWebView。当我单击主页按钮并且应用程序进入后台时,我仍然可以听到音频播放。如何暂停 HTML 5 视频以停止播放背景音频。我尝试在应用程序进入后台时加载一个空白页面,这可以正常工作,

let url = URL(string: "about:blank")
let request = URLRequest(url:url!)
self.webView.load(request) 
Run Code Online (Sandbox Code Playgroud)

但我希望能够在用户从后台返回时在同一点启动视频,因此这不是一个可行的解决方案,因为当我备份打开应用程序时它只是加载空白页面。

sid*_*bob 7

我可以通过在应用程序进入后台时注入 JavaScript 来实现此目的,这会暂停正在播放的所有视频元素。

NotificationCenter.default.addObserver(self, selector: #selector(enteredBackground(notification:)), name: UIApplication.didEnterBackgroundNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)

@objc func enteredBackground(notification: Notification) {
    let script = "var vids = document.getElementsByTagName('video'); for( var i = 0; i < vids.length; i++ ){vids.item(i).pause()}"
    self.webView.evaluateJavaScript(script, completionHandler:nil)
}
Run Code Online (Sandbox Code Playgroud)