iOS | 基于WKWebview的OC與JS交互碰到的問題

  1. 在加載本地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");
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容