国产探花免费观看_亚洲丰满少妇自慰呻吟_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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁岭县| 新余市| 定结县| 莫力| 九龙县| 永城市| 炉霍县| 武鸣县| 郸城县| 孟村| 南靖县| 昂仁县| 西藏| 长春市| 黄大仙区| 鹤壁市| 平凉市| 河北区| 额尔古纳市| 新津县| 永德县| 上思县| 周至县| 璧山县| 井冈山市| 阿拉尔市| 芒康县| 姜堰市| 呈贡县| 偏关县| 茶陵县| 贵州省| 榆林市| 杭锦后旗| 黔西县| 灌云县| 新闻| 凤山县| 民和| 墨脱县| 海安县|