WKWebView报错:Error Domain=WebKitErrorDomain Code=102 “Frame load interrupted”。
问题
WKWebView总是偶尔会报出 Code=102 “Frame load interrupted” 这样的错误回调。
Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo={_WKRecoveryAttempterErrorKey=<WKReloadFrameErrorRecoveryAttempter: 0x60000004d520>, NSErrorFailingURLStringKey=https://..., NSErrorFailingURLKey=..., NSLocalizedDescription=Frame load interrupted}
原因
在是否导航的代理中,返回了WKNavigationActionPolicyCancel,取消了导航。
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
...
...
else {
decisionHandler(WKNavigationActionPolicyCancel);
}
}
这时候WKWebView就会回调导航出错。
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error {
}
其中error就是 Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted"
。
有时候这样的error我们是不需要做处理的,可以在回调中判断如果error.code是102的话直接忽略即可。