带有<video>或者<audio>标签的H5网页在播放音频视频时,退出webview后不会自动停止播放,手动处理一下。
1.注入使网页停止音频、视频播放的JS代码(Swift 4):
let pauseJSString:String =
"""
var videos = document.getElementsByTagName("video");
function pauseVideo(){
var len = videos.length
for(var i=;i<len;i++){
videos[i].pause();
}
}
var audios = document.getElementsByTagName("audio");
function pauseAudio(){
var len = audios.length
for(var i=;i<len;i++){
audios[i].pause();
}
}
"""
let pauseJS:WKUserScript = WKUserScript.init(source: pauseJSString, injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: true) let userContentCtrl:WKUserContentController = WKUserContentController.init()
userContentCtrl.addUserScript(pauseJS)
conf.userContentController = userContentCtrl 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