我有一个使用 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 类型。为此,您可以引用
关于ios - WKWebView 在外部浏览器中打开 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50974467/