小编典典

WkWebView不会加载指向pdf的链接

swift

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)
    }

阅读 870

收藏
2020-07-07

共1个答案

小编典典

您可以检查以下几件事:

  1. 验证<a href链接是否不包含target="_blank"属性,因为WKWebView不知道如何在新选项卡中打开链接。

  2. 检查链接是否为HTTPS或App Transport Security Settings使用Allow Arbitrary Loads选项更新

  3. 确保仅在将WKWebView添加到视图层次结构之后才启动加载请求,didMoveToParentViewController:因为如果它试图在视图层次结构之外运行,可能会使javascript失败

  4. 实现WKWebView NavigationDelegate方法,并确保WKNavigationActionPolicyAllow在确定请求策略时返回

2020-07-07