iOS WKWebView 退出后停止播放音頻/視頻


 

 

 

 帶有<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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM