WKWebView 在外部浏览器中打开 PDF

WKWebView open PDF in external browser

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

我有什么方法可以检测 link returns PDF 并在 Safari 或类似浏览器中从外部打开该内容?

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

编辑:澄清

单击以转到 pdf 的 link 实际上并不包含 pdf 文本。 link 看起来像 /Documents/GetDocument?docid=1234。

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

你可以这样做

  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. Library