WKWebView 加载 H5进行视频播放,当 webView 销毁之后视频可以正常停止;但是当 push 或者 present 到下一个controller 之后,视频仍然在后台播放。
解决办法有二:
1.拥有该视频的 jsAPI,通过 webView 在合适时间调用对应API来解决;缺点:通用性弱;
2.重新加载该 webView ,或者加载一个空的地址;缺点:如果该页没有视频,或者视频并没有播放,则没必要重新加载,这可能会带来其他不必要的问题
通过监听所有系统的 NSNotification
[[NSNotificationCenter defaultCenter] addObserverForName:nil
object:nil
queue:nil
usingBlock:^(NSNotification* notification) {
NSLog(@"Notification:\n"
"name: %@\n"
"object: %@\n"
"userInfo: %@",
notification.name,
notification.object,
notification.userInfo);
}];
发现当点击视频进行播放时,能接收到一个
name=UIWindowFirstResponderDidChangeNotification
的通知,userInfo 是 WKContent ,OK 可以依据该通知按照上述第二套方案进行有针对性的处理。