使用 WKWebView 时出现间歇性错误。我们在 WKWebView 上调用 load(URLRequest),并通过decisionPolicyFor navigationAction 进行处理并以allow 回复。
open func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Swift.Void) {
decisionHandler(WKNavigationActionPolicy.allow)
}
紧接着,在通过网络发送任何请求之前,调用 didFailProvisionalNavigation 并出现以下错误:
Error Domain=NSPOSIXErrorDomain Code=53 “Software caused connection abort” UserInfo={_WKRecoveryAttempterErrorKey=<WKReloadFrameErrorRecoveryAttempter: 0x280764dc0>, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <A4437611-6DB9-4DF1-B437-256A180D42AC>.<83>, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=53}
它不会每次都发生,它似乎只发生在 WKWebView 中的第一个请求上,而且大多数时候我只能重现它一次,然后它才能再次为接下来的 10+ 工作。
如果我只是从 didFailProvisionalNavigation 运行另一个 .load(URLRequest),它会毫无问题地加载。
如何确定导致错误 53 的原因?我真的不想再次从源代码编译 webkit。