最近项目中有一个需求:
使用webView播放优酷视频,通过调接口获取后台设置的url,url再转成优酷识别的JS代码,但是后台设置的url可能不对,或者无效,这时候会报出一个参数无效的系统弹窗,想要将这个系统弹窗换成我们自定义的AlertView。
尝试的方法有好多,获取视频第一帧等等,最后都不行,因为你不是一个播放器,而是打开的是内嵌的播放器,不是直接的视频源文件,无法获取视频的具体信息,也无法拦截视频播放状况的响应,所以用这种方式不行。
最终在WKWebView – WKUIDelegate – runJavaScriptAlertPanelWithMessage
func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) {
Utility.showNoticeAlertViewExitTutorial((nil,"Tutorial Video URL Does Not Seem To Be Valid".toLocalize()))
completionHandler()
}
这个代理方法中message打印出来就是显示的错误的信息,这个时候调用自己的AlertView就可以了,说明苹果还是对这种问题做了处理的