- 在加載本地Html文件的時候,報了如下的錯誤:
reason: 'Completion handler passed to -[JavaScriptCallOCViewController webView:decidePolicyForNavigationAction:decisionHandler:] was not called'
錯誤的原因是: 在方法
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
中未實現(xiàn) decisionHandler(WKNavigationActionPolicyCancel) block 的回調。

未實現(xiàn)回調報錯.png
代理方法中,未實現(xiàn)block的回調

方法中未實現(xiàn)回調.png
放開上圖中的注釋部分就可以了。
// 必須實現(xiàn)decisionHandler的回調,否則就會報錯
if (navigationAction.navigationType == WKNavigationTypeLinkActivated) {
decisionHandler(WKNavigationActionPolicyCancel);
NSLog(@"WKNavigationActionPolicyCancel");
} else {
decisionHandler(WKNavigationActionPolicyAllow);
NSLog(@"WKNavigationActionPolicyAllow");
}
另外一個代理方法也是,需要實現(xiàn)block的回調,不然也會報錯。
這個方法是在加載網(wǎng)絡頁面的時候調用。
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler
錯誤提示如下:
reason: 'Completion handler passed to -[JavaScriptCallOCViewController webView:decidePolicyForNavigationResponse:decisionHandler:] was not called'

代理方法中未實現(xiàn)回調報錯.png

要實現(xiàn)的代理方法回調.png
#pragma mark 在收到響應后,決定是否跳轉
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler
{
NSLog(@"6->在收到響應后,決定是否跳轉");
NSLog(@"navigationResponse = %@", navigationResponse);
NSLog(@"navigationResponse.response = %@", navigationResponse.response);
// 必須實現(xiàn)decisionHandler的回調,否則就會報錯
decisionHandler(WKNavigationResponsePolicyAllow);
NSLog(@"WKNavigationResponsePolicyAllow");
}