国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發之WKWebViewJavascriptBridge Xcode9中導致crash的解決

2019-10-21 18:44:09
字體:
來源:轉載
供稿:網友

前言

本文主要給大家介紹了關于iOS WKWebViewJavascriptBridge Xcode9中導致ios/205280.html">crash的相關解決辦法,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

WKWebViewJavascriptBridge 這個第三方還是比較不錯的,但是最近Xcode9上,卻出現了crash;WKWebViewJavascriptBridge官方github看了大家也都有如此問題,最后終于解決了;

需要在WKWebViewJavascriptBridge類里,如下修改:

- (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); } else {  /// 在這新添加了else  if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) {   [_webViewDelegate webView:webView decidePolicyForNavigationAction:navigationAction decisionHandler:decisionHandler];  } else {   decisionHandler(WKNavigationActionPolicyAllow);  } }} 

或這樣修改

- (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  return; } if (strongDelegate && [strongDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) {  [_webViewDelegate webView:webView decidePolicyForNavigationAction:navigationAction decisionHandler:decisionHandler]; } else {  decisionHandler(WKNavigationActionPolicyAllow); }}

我猜測主要原因是 Xcode9上,decisionHandler() 這個block回調,不允許多次被調用;

總結

以上就是這篇文章的全部內容了,本文還有許多不足,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。

參考鏈接

1、 https://github.com/marcuswestin/WebViewJavascriptBridge/issues/302

2、http://www.jianshu.com/p/909afcbc401e


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛学| 阿鲁科尔沁旗| 宁化县| 张北县| 镇沅| 龙里县| 广平县| 固原市| 高青县| 自贡市| 青龙| 乐都县| 新竹市| 公主岭市| 思茅市| 康保县| 汝南县| 信宜市| 巴南区| 称多县| 崇仁县| 桐乡市| 榕江县| 尤溪县| 商水县| 陵川县| 青神县| 大连市| 南漳县| 鄯善县| 兴仁县| 皋兰县| 庆阳市| 台中县| 广南县| 梅河口市| 巴南区| 江华| 阿拉善右旗| 穆棱市| 竹溪县|