【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
。
但是我实际测试以后发现,不设置也可以打开,可能是具体情况不同的原因吧!