swift - 抓取视频url WKWebView

标签 swift swift2 wkwebview

嗨,我很快就从 WKWebView 打开了一个视频,它会自动打开这个视频页面,无论如何我都可以捕获视频链接并使用这个视频的 url 吗?

Video

最佳答案

您应该实现委托(delegate) WKNavigationDelegate 并定义函数 decidePolicyForNavigationAction,例如:

class ViewController: UIViewController, WKNavigationDelegate {
...

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    webView = WKWebView(frame: CGRect(x: 0, y: 50, width: 100, height: 100))
    webView.navigationDelegate = self
    webView.loadRequest(NSURLRequest(URL: NSURL(string: "https://www.example.com")!))
    view.addSubview(webView)
}

func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
    let path = navigationAction.request.URL?.absoluteString
    if let path = path {
        if path.rangeOfString("mp4") != nil {
            // This is video link, don't let iOS open video
            decisionHandler(.Cancel)
            print("Process video \(path)")
            return
        }
    }
    // Any other link should be handled by WKWebView
    decisionHandler(.Allow)
}

检测视频链接的路径中是否有mp4或者你希望检测的其他扩展名或路径,然后自行处理。

关于swift - 抓取视频url WKWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38104215/

相关文章:

swift - 如何在 SpriteKit swift 中将 NSTimer 作为参数传递给函数

swift - 无法调用类型 : Swift2 的初始值设定项

ios - Xcode7与array.filter方法的误解

swift - 使用swift 4自动登录网页

ios - WKWebView:html 内容中的 mailto 链接未打开邮件应用程序

ios - 如何在Swift中也具有返回类型的嵌套函数外壳中返回父函数

swift - 如何在 swift 中使用 MCOIMAPSession mailcore

ios - 清除 iOS 8.4 上 WKWebView 的 Cookie

ios - "Objective-C Generated Interface Header Name"错误

json - 使用 Alamofire 4 解析嵌套的 JSON