ios - WKWebView 在外部浏览器中打开 PDF

标签 ios swift wkwebview

我有一个使用 WKWebView 导航到网页的 IOS 应用程序。该页面本身在菜单中包含后退按钮。当我们点击 PDF 的链接时,pdf 本身会显示在 View 中,但其他 html 内容(包括后退按钮)会消失。

有什么方法可以让我检测到链接何时返回 PDF 并在 safari 或类似浏览器中从外部打开该内容?

如果这不可能,我有没有办法检测链接何时返回 PDF 并显示网络工具包后退按钮(仅针对该页面)。

编辑:澄清

点击转到 pdf 的链接实际上并不包含 pdf 文本。该链接类似于/Documents/GetDocument?docid=1234。

返回的内容类型为application/pdf。在理想情况下,我们将能够看到从链接返回的内容,然后进行适当的处​​理。

最佳答案

你可以这样做

  extension ViewController: WKNavigationDelegate{
    func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
        print(navigationAction.request.url ?? "")
        if let url = navigationAction.request.url?.absoluteString{

        }
        decisionHandler(.allow)
    }
}

不要忘记赋值

 webView.navigationDelegate = self

当 webview 试图加载一个新的 url 时,上面的方法将被调用,并且根据您的评论和更新的问题,您想要检查 url 的 mime 类型。为此,您可以引用

  1. This SO Answer

  2. Library

关于ios - WKWebView 在外部浏览器中打开 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50974467/

相关文章:

ios - Cucumber - 在 Jenkins 中重新运行失败的测试

iphone - iOS 是否会更新文件修改日期?

swift - Swift 中的类型检查是如何工作的

ios - 如何使我的 ios 应用程序对 wifi 更改事件使用react

ios - WKWebView 确实在 swift iOS 中完成了页面加载?

ios - 在 WKWebView 中禁用整个 UIMenuController 编辑菜单

ios - 在sceneDidEnterBackground(iOS13)上的URL请求

ios - AVAudioSession 重新激活问题

ios - 未从 Firebase 收到通知

ios - 在 Firebase 中保存多个值时出现 InvalidFirebaseData 错误