Vir*_*vek 8 ios avplayer swift wkwebview
我正在使用下面的代码从UIWebView提取URL :它工作正常,但是,用于WKWebView的相同代码不再起作用。谁能帮我?在WKWebView中播放的视频不是全屏播放,而是Inlineplacyback。
我的代码是:
NotificationCenter.default.addObserver(self, selector: #selector(self.playerItemBecameCurrent(_:)), name: NSNotification.Name("AVPlayerItemBecameCurrentNotification"), object: nil)
@objc func playerItemBecameCurrent(_ sender : NSNotification){
let playerItem: AVPlayerItem? = sender.object as? AVPlayerItem
if playerItem == nil {
print("player item nil")
return
}
// Break down the AVPlayerItem to get to the path
let asset = playerItem?.asset as? AVURLAsset
let url: URL? = asset?.url
let path = url?.absoluteString
print(path!,"video url")
}
Run Code Online (Sandbox Code Playgroud)
回应网址:
它是视频URL,而不是网页URL,所以请帮助我。谢谢。
这是一种破解,但是我找到了实现此目标的唯一方法。
首先将自己设置为WKWebView导航委托:
self.webView?.navigationDelegate = self
Run Code Online (Sandbox Code Playgroud)
现在听所有导航更改,并保存请求的URL:
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
if let urlStr = navigationAction.request.url?.absoluteString {
//Save presented URL
//Full path can be accessed via self.webview.url
}
decisionHandler(.allow)
}
Run Code Online (Sandbox Code Playgroud)
现在,您只需要知道新屏幕何时可见,并使用您保存的URL(即可知道新可见屏幕的视频URL)。
您可以通过侦听UIWindowDidBecomeVisibleNotification通知来做到这一点:
NotificationCenter.default.addObserver(self, selector: #selector(windowDidBecomeVisibleNotification(notif:)), name: NSNotification.Name("UIWindowDidBecomeVisibleNotification"), object: nil)
Run Code Online (Sandbox Code Playgroud)
然后检查导航窗口是否不是您的窗口,这意味着确实打开了一个新屏幕:
@objc func windowDidBecomeVisibleNotification(notif: Notification) {
if let isWindow = notif.object as? UIWindow {
if (isWindow !== self.view.window) {
print("New window did open, check what is the currect URL")
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试在此处所示的内容中注入JS WKWebView:https ://paulofierro.com/blog/2015/10/12/listening-for-video-playback-within-a-wkwebview
| 归档时间: |
|
| 查看次数: |
1968 次 |
| 最近记录: |