From fd02e9356f304356551f07fbf55c255b3be9b76b Mon Sep 17 00:00:00 2001 From: ShannonChen <273879688@qq.com> Date: Tue, 1 Aug 2017 16:43:36 +0800 Subject: [PATCH] Modified Custom URL Scheme Handling for WKWebView An WebViewJavascriptBridge-defined URL, like `wvjbscheme://__BRIDGE_LOADED__ ` should be only handled once. Because these URL only used in WebViewJavascriptBridge, we don't want to be see these call in our `- webView:decidePolicyForNavigationAction:decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler`. --- WebViewJavascriptBridge/WKWebViewJavascriptBridge.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/WebViewJavascriptBridge/WKWebViewJavascriptBridge.m b/WebViewJavascriptBridge/WKWebViewJavascriptBridge.m index 47667df6..9a87166b 100644 --- a/WebViewJavascriptBridge/WKWebViewJavascriptBridge.m +++ b/WebViewJavascriptBridge/WKWebViewJavascriptBridge.m @@ -147,10 +147,11 @@ - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigati [_base logUnkownMessage:url]; } decisionHandler(WKNavigationActionPolicyCancel); - } - if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) { + } else if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) { + [_webViewDelegate webView:webView decidePolicyForNavigationAction:navigationAction decisionHandler:decisionHandler]; + } else { decisionHandler(WKNavigationActionPolicyAllow); }