国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淳化县| 侯马市| 桦南县| 龙泉市| 德保县| 德州市| 富民县| 龙海市| 锡林郭勒盟| 唐海县| 东宁县| 依安县| 庆阳市| 诸暨市| 铜山县| 荔浦县| 淮安市| 万荣县| 临沧市| 肇源县| 镇安县| 馆陶县| 洛川县| 柏乡县| 阿拉善右旗| 长泰县| 渝北区| 自贡市| 南宁市| 甘孜县| 泰宁县| 巴楚县| 利川市| 阳高县| 偃师市| 西安市| 兴山县| 江油市| 黄浦区| 洛川县| 泰安市|