iOS_Xcode9_项目报错

来源:互联网 发布:淘宝网的购物流程 编辑:程序博客网 时间:2024/06/05 15:55

更新Xcode9之后,运行、跳转至H5页面,发生崩溃。显示的报错信息如下:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Completion handler passed to -[WKWebViewJavascriptBridge webView:decidePolicyForNavigationAction:decisionHandler:] was called more than once'

解决方法,在WKWebViewJavascriptBridge.m内在对应位置添加如下代码:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {    if (webView != _webView) { return; }    NSURL *url = navigationAction.request.URL;    __strong typeof(_webViewDelegate) strongDelegate = _webViewDelegate;    if ([_base isWebViewJavascriptBridgeURL:url]) {        if ([_base isBridgeLoadedURL:url]) {            [_base injectJavascriptFile];        } else if ([_base isQueueMessageURL:url]) {            [self WKFlushMessageQueue];        } else {            [_base logUnkownMessage:url];        }        decisionHandler(WKNavigationActionPolicyCancel);        return;// 处理报错,添加此行代码    }    if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) {        [_webViewDelegate webView:webView decidePolicyForNavigationAction:navigationAction decisionHandler:decisionHandler];    } else {        decisionHandler(WKNavigationActionPolicyAllow);    }}
原创粉丝点击