【发布时间】:2020-02-09 05:53:56
【问题描述】:
WKWebView 没有加载链接。我将用户链接到隐私政策页面,该页面有一组链接。这些链接都是由 wix 托管的 pdf。在 safari 和 Chrome 上它可以工作,但在 WKWebView 上不行。当页面加载时,你点击链接,我得到一个错误:
Unknown result for URL 0x28157d110 (https)
这就是我加载网络视图的方式...
webView.load(URLRequest(url: URL(string: "https://mywebsite.io/legal")!))
编辑:这是different from other questions,因为我无意下载 pdf - 我只想像 Safari 一样显示它。
编辑:我刚刚将 WKWebView 替换为 UIWebView(已弃用)并加载了 pdf。问题在于 WKWebView。 Pdfs 是启用 ssl 的 https ->
let req = URLRequest(url: URL(string: "https://mywebsite.io/legal")!)
legacyWebView.loadRequest(req)
编辑:这里有一个页面How to open a Link to a PDF with wkwebview 建议您在打开 pdf 之前必须知道链接 URL,但我认为这不是真的。
编辑:我实现了 2 个委托方法,包括 @Kiril 在下面建议的一个。 pdf 的链接仍然无法打开。
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
decisionHandler(WKNavigationActionPolicy.allow)
}
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
decisionHandler(WKNavigationResponsePolicy.allow)
}
【问题讨论】:
-
@KirilS。我不是想下载它们,我只是想像 safari 一样显示它们,除非你是这个意思
-
它给了你一堆关于它可能是什么的想法,例如,我会把钱花在你试图从 http 下载 PDF 上,而你的 URL 是 https (请参阅那里的回复) . WebView 不喜欢这样的东西
-
两者都是https。
-
如果您尝试放松权限怎么办,例如设置
NSAllowsArbitraryLoads或相关密钥NSAllowsArbitraryLoadsInWebContentdeveloper.apple.com/documentation/bundleresources/… 如果有效,则证明这些链接的安全性不正确如果不正确,则意味着看其他方向