帶有<video>或者<audio>標簽的H5網頁在播放音頻視頻時,退出webview后不會自動停止播放,手動處理一下。
1.注入使網頁停止音頻、視頻播放的JS代碼(Swift 4):
1 let pauseJSString:String = 2 """ 3 var videos = document.getElementsByTagName("video"); 4 function pauseVideo(){ 5 var len = videos.length 6 for(var i=0;i<len;i++){ 7 videos[i].pause(); 8 } 9 } 10 var audios = document.getElementsByTagName("audio"); 11 function pauseAudio(){ 12 var len = audios.length 13 for(var i=0;i<len;i++){ 14 audios[i].pause(); 15 } 16 } 17 """ 18 let pauseJS:WKUserScript = WKUserScript.init(source: pauseJSString, injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: true) 19 20 let userContentCtrl:WKUserContentController = WKUserContentController.init() 21 userContentCtrl.addUserScript(pauseJS) 22 conf.userContentController = userContentCtrl 23 24 webView = WKWebView.init(frame: CGRect.zero, configuration: conf)
2.退出前,調用暫停播放的JS函數(Swift 4):
override func viewDidDisappear(_ animated: Bool) { super.viewDidDisappear(animated) pausePlay() }
/// 暫停播放網頁內的音頻、視頻 func pausePlay(){ mWebView.evaluateJavaScript("pauseVideo()") { (data, error) in } mWebView.evaluateJavaScript("pauseAudio()") { (data, error) in } }
Ficow原創,轉載請注明出處:http://www.cnblogs.com/ficow/p/7637922.html