【Swift】 WKWebView https 加载不受信任的站点

  

  公司要对接一个第三方平台,然后就有了一个可奇葩的逻辑,用户填写完相关信息后,点击提交,然后服务器返回一个网页的源代码……需要用WebView加载这个网页。

实现的时候发现,我自己写的简单的网页源码可以加载,但是服务器返回的就是无法加载。后来把源码保存成文件以后,用浏览器打开发现,该网页链接的站点是一个不受信任的站点,应该是因为服务器证书无效而不受信任。

self.wkWeb.navigationDelegate = self

// 实现以下代理方法
func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
     let cred = URLCredential.init(trust: challenge.protectionSpace.serverTrust!)
     completionHandler(.useCredential, cred)
}

  有朋友说还需要在 plist 文件中设置:

  将Allow Arbitrary Loads in Web Content 置为 YES,或者将Allow Arbitrary Loads置位YES

  但是我实际测试以后发现,不设置也可以打开,可能是具体情况不同的原因吧!

posted @ 2021-04-22 20:19  Mr·Xu  阅读(453)  评论(0编辑  收藏  举报