问题描述
我有 iOS 应用程序,其中有 WKWebview。用于从远程 URL 加载 HTML。我在日志中收到错误
[Process] 0x1550bfe18 - [pageProxyID=42,webPageID=43,PID=1902] WebPageProxy::didFailProvisionalLoadForFrame: frameID = 3,domain = NSURLErrorDomain,code = -1003
在 didFailProvisionalNavigation
方法之后调用 WKWebview。
这是间歇性发生的。表示在 WKWebbView 中成功处理网页一段时间,并出现一段时间以上的错误。
同样的事情在 Android 设备上运行没有任何问题。
- 为什么它不是一直失败?
- 这是 iOS 应用的问题吗?
- 这是服务器问题吗?
- 服务器出现此错误的原因是什么?
- 我需要在服务器上更新哪些配置?
解决方法
处理包含不受信任证书的链接
func webView(_ webView: WKWebView,didReceive challenge: URLAuthenticationChallenge,completionHandler: @escaping (URLSession.AuthChallengeDisposition,URLCredential?) -> Void) {
guard let serverTrust = challenge.protectionSpace.serverTrust else {
completionHandler(.cancelAuthenticationChallenge,nil)
return
}
let exceptions = SecTrustCopyExceptions(serverTrust)
SecTrustSetExceptions(serverTrust,exceptions)
completionHandler(.useCredential,URLCredential(trust: serverTrust));
}