WKWebView没有加载链接。我将用户链接到隐私策略页面,并且该页面具有一组链接。链接都是wix托管的所有pdf文件。在safari和Chrome上可以使用,但不能在WKWebView上使用。页面加载后,单击链接,我得到一个错误:
Unknown result for URL 0x28157d110 (https)
这就是我加载网络视图的方式…
webView.load(URLRequest(url: URL(string: "https://mywebsite.io/legal")!))
编辑:这与其他问题不同,因为我无意下载pdf-我只想以与Safari相同的方式显示它。
编辑:我只是用UIWebView替换了WKWebView(不建议使用)和pdfs加载。问题在于WKWebView。Pdfs已启用ssl https->
let req = URLRequest(url: URL(string: "https://mywebsite.io/legal")!) legacyWebView.loadRequest(req)
编辑:这里有一个页面,如何使用wkwebview打开到PDF的链接,建议您在打开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) }
您可以检查以下几件事:
验证<a href链接是否不包含target="_blank"属性,因为WKWebView不知道如何在新选项卡中打开链接。
<a href
target="_blank"
检查链接是否为HTTPS或App Transport Security Settings使用Allow Arbitrary Loads选项更新
App Transport Security Settings
Allow Arbitrary Loads
确保仅在将WKWebView添加到视图层次结构之后才启动加载请求,didMoveToParentViewController:因为如果它试图在视图层次结构之外运行,可能会使javascript失败
didMoveToParentViewController:
实现WKWebView NavigationDelegate方法,并确保WKNavigationActionPolicyAllow在确定请求策略时返回
WKNavigationActionPolicyAllow