最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS開發(fā)之WKWebViewJavascriptBridge Xcode9中導致crash的解決

 更新時間:2017年10月20日 10:47:05   作者:開發(fā)仔XG  
大家都知道WebViewJavascriptBridge它主要幫助我們優(yōu)雅的實現(xiàn)OC與JS的交互,下面這篇文章主要給大家介紹了關于iOS開發(fā)之WKWebViewJavascriptBridge Xcode9中導致crash的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

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

WKWebViewJavascriptBridge 這個第三方還是比較不錯的,但是最近Xcode9上,卻出現(xiàn)了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回調(diào),不允許多次被調(diào)用;

總結

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

參考鏈接

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

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

相關文章

  • IOS開發(fā)中異步網(wǎng)絡請求上實現(xiàn)同步邏輯

    IOS開發(fā)中異步網(wǎng)絡請求上實現(xiàn)同步邏輯

    這篇文章主要介紹了IOS開發(fā)中異步網(wǎng)絡請求上實現(xiàn)同步邏輯的相關資料,需要的朋友可以參考下
    2017-03-03
  • 如何利用iCloud Drive同步Xcode配置詳解

    如何利用iCloud Drive同步Xcode配置詳解

    這篇文章主要給大家介紹了關于如何利用iCloud Drive同步Xcode配置的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2018-05-05
  • iOS的CoreAnimation開發(fā)框架中的Layer層動畫制作解析

    iOS的CoreAnimation開發(fā)框架中的Layer層動畫制作解析

    在iOS中UIView層的屬性會映射到CoreAnimation框架的CALayer,這里我們來看一下iOS的CoreAnimation開發(fā)框架中的Layer層動畫制作解析,需要的朋友可以參考下
    2016-07-07
  • 談談iOS中的多繼承與多重代理

    談談iOS中的多繼承與多重代理

    這篇文章主要給大家介紹了關于iOS中多繼承與多重代理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10
  • iOS實現(xiàn)轉(zhuǎn)盤效果

    iOS實現(xiàn)轉(zhuǎn)盤效果

    這篇文章主要為大家詳細介紹了iOS實現(xiàn)轉(zhuǎn)盤效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • IOS中UITableView滾動到指定位置

    IOS中UITableView滾動到指定位置

    這篇文章主要介紹了IOS中UITableView滾動到指定位置的實現(xiàn)方法,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • iOS項目開發(fā)鍵盤彈出遮擋輸入框問題解決方案

    iOS項目開發(fā)鍵盤彈出遮擋輸入框問題解決方案

    大家在用IOS開發(fā)項目的時候,經(jīng)常出現(xiàn)鍵盤彈出遮擋輸入框問題,小編給大家整理的這個問題的處理方法,一起學習下。
    2018-01-01
  • iOS UICollectionView實現(xiàn)標簽選擇器

    iOS UICollectionView實現(xiàn)標簽選擇器

    這篇文章主要為大家詳細介紹了iOS UICollectionView實現(xiàn)標簽選擇器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • iOS源碼閱讀必備知識之Tagged Pointer

    iOS源碼閱讀必備知識之Tagged Pointer

    這篇文章主要給大家介紹了關于iOS源碼閱讀必備知識之Tagged Pointer的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • iOS App開發(fā)中通過UIDevice類獲取設備信息的方法

    iOS App開發(fā)中通過UIDevice類獲取設備信息的方法

    UIDevice最常見的用法就是用來監(jiān)測iOS設備的電量了,然后再實現(xiàn)電池狀態(tài)通知非常方便,除此之外還有傳感器等信息的獲取,這里我們就來總結一下iOS App開發(fā)中通過UIDevice類獲取設備信息的方法:
    2016-07-07

最新評論

富阳市| 交口县| 丰镇市| 怀集县| 新晃| 无为县| 琼海市| 镇巴县| 哈巴河县| 安义县| 鄂州市| 茶陵县| 电白县| 双桥区| 延安市| 固始县| 贵港市| 安乡县| 平遥县| 都匀市| 霍邱县| 碌曲县| 昌乐县| 琼中| 龙口市| 鄂伦春自治旗| 天津市| 武冈市| 收藏| 微山县| 和田县| 梅河口市| 岳池县| 抚顺县| 德州市| 忻城县| 子长县| 塔城市| 龙江县| 长沙市| 祁东县|