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

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

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

前言

本文主要給大家介紹了關(guān)于iOS WKWebViewJavascriptBridge Xcode9中導(dǎo)致crash的相關(guān)解決辦法,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

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)用;

總結(jié)

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

參考鏈接

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

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

相關(guān)文章

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

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

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

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

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

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

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

    談?wù)刬OS中的多繼承與多重代理

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

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

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

    IOS中UITableView滾動到指定位置

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

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

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

    iOS UICollectionView實(shí)現(xiàn)標(biāo)簽選擇器

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

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

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

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

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

最新評論

包头市| 永丰县| 东乌| 晋城| 鸡泽县| 平乐县| 巨鹿县| 浏阳市| 永清县| 秦安县| 吉水县| 德格县| 清河县| 莆田市| 宝兴县| 酒泉市| 太仓市| 吴江市| 寿光市| 白银市| 虎林市| 舟山市| 黎川县| 华安县| 东阿县| 余干县| 闸北区| 永安市| 北宁市| 宁武县| 安国市| 永靖县| 贺兰县| 卓尼县| 林周县| 项城市| 武城县| 青田县| 屯门区| 汉沽区| 大渡口区|