我正在使用 wkWebView
加载发表在 IEEE、Science Direct 等上的研究论文,所以当我点击研究论文中的任何 PDF 时,PDF 会加载到 webview 中,所以有没有办法在 wkWebView
中检测并启用下载图标。
尝试过的解决方案:
我试图通过 URLSession
从 URL 获取 pdf,这在 95% 的时间里有效,但有时我无法通过 获取 PDF 的内容>URLSession
由于动态 URL/PDF 创建,pdf 被加载到 webview 中。
在研究中,我遇到了: Get already loaded PDF directly from WKWebView without downloading again但就我而言,首先我需要检查加载的内容是否为 PDF。
相关问题: add download button for pdf in wkwebview in swift 4但是没有答案!!!
测试: 打开 URL:https://www.sciencedirect.com/science/article/pii/S0946672X17308763在 wkWebView
中单击“下载 PDF”按钮,这会将 pdf 加载到 webview 中。
简而言之:任何检测加载的内容是否为 PDF 并提供下载按钮以将 pdf 内容下载到文档文件夹中的方法。
感谢任何帮助...谢谢
最佳答案
我试过您提供的链接,下载按钮似乎在新窗口中打开 PDF(html 标签),而 WKWebView 只是忽略了它。
要使导航成为可能,您应该在 View Controller 中采用 WKUIDelegate 协议(protocol)并实现委托(delegate)方法:
override func viewDidLoad() {
super.viewDidLoad()
self.webView.uiDelegate = self
}
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
// Here we load this request manually in current window
webView.load(navigationAction.request)
}
return nil
}
在此示例中,PDF 将直接加载到 Web View 中,您可以像浏览普通 PDF 文件一样浏览/下载它。 如果您随后需要下载该 PDF(加载后),则需要使用 Fetch API,如所述 here.
关于javascript - wkwebview:找出在 web View 中加载的内容是否为 PDF 并给出下载按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60209529/