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

首頁 > 系統 > iOS > 正文

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

2020-07-26 02:39:16
字體:
來源:轉載
供稿:網友

前言

本文主要給大家介紹了關于iOS WKWebViewJavascriptBridge Xcode9中導致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回調,不允許多次被調用;

總結

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

參考鏈接

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌恰县| 乐山市| 七台河市| 青岛市| 通渭县| 喀什市| 兴和县| 凤山市| 万安县| 阿拉尔市| 广州市| 安庆市| 新津县| 灯塔市| 石阡县| 瑞昌市| 临颍县| 高安市| 红桥区| 芷江| 酒泉市| 商洛市| 威信县| 武汉市| 双城市| 大足县| 铜山县| 道孚县| 包头市| 灵山县| 尚义县| 长丰县| 平南县| 大名县| 富裕县| 广河县| 通山县| 富锦市| 辽阳市| 莱芜市| 化德县|