亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS11 WKWebView問題匯總

2019-10-21 18:43:41
字體:
來源:轉載
供稿:網友

問題一描述:

iOS9和iOS10用WKWebView加載URL都沒有問題,iOS11卻是一片空白
可能是用了NSMutableURLRequest,iOS11貌似不支持NSMutableURLRequest,無論是用UIWebView還是WKWebView,都不支持NSMutableURLRequest

解決方法參考

  if #available(iOS 11, *) {   let request = NSURLRequest.init(url: URL.init(string: urlStr)!)   self.wkWebView.load(request as URLRequest)  }else{   let request = NSMutableURLRequest.init(url: URL.init(string: urlStr)!, cachePolicy: NSURLRequest.CachePolicy.reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 60)   request.httpMethod = "GET"   request.httpBody = ("token=" + tokenValue()).data(using: String.Encoding.utf8)   self.wkWebView.load(request as URLRequest)  }

問題二描述:在用iPhone X 的模擬器進入Hybrid項目時,發現一進去就崩潰,崩潰信息少的可憐:

libc++abi.dylib: terminating with uncaught exception of type NSException

靠這玩意兒肯定是定位不出bug的,不過全局斷點還是給出了一點信息:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler { NSString *requestString = navigationAction.request.URL.absoluteString; //對外鏈、撥號和跳轉appstore做特殊處理 UIApplication *app = [UIApplication sharedApplication]; NSURL *url = [navigationAction.request URL]; //電話 //此處省略若干業務代碼 if ([url.absoluteString containsString:@"itunes.apple.com"]) {  if ([app canOpenURL:url])  {   [app openURL:url];   decisionHandler(WKNavigationActionPolicyCancel);  } } if ([requestString hasPrefix:@"easy-js:"]) {  [self handleRequestString:requestString webView:(EasyJSWebView *)webView.superview];  decisionHandler(WKNavigationActionPolicyCancel); } if ([self.realDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) {  [self.realDelegate webView:webView decidePolicyForNavigationAction:navigationAction decisionHandler:decisionHandler]; } decisionHandler(WKNavigationActionPolicyAllow);//崩在這里}

仍然不知道為啥子崩在這兒?之前一直是沒問題的?。??

小Tips:
為了獲取一些堆棧信息以便于快準狠的定位問題,可以在main函數里:

int main(int argc, char * argv[]) { @try {  @autoreleasepool  {   return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));  } } @catch (NSException* exception) {  NSDebugLog(@"Exception=%@/nStack Trace:%@", exception, [exception callStackSymbols]); }}

最終得到一條關鍵報錯:

Completion handler passed to -[WKPrivateNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:] was called more than once

意思就是WKWebView的這個代理方法被多次調用了。

if ([requestString hasPrefix:@"easy-js:"]) {  [self handleRequestString:requestString webView:(EasyJSWebView *)webView.superview];  decisionHandler(WKNavigationActionPolicyCancel); } if ([self.realDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) {  [self.realDelegate webView:webView decidePolicyForNavigationAction:navigationAction decisionHandler:decisionHandler]; } decisionHandler(WKNavigationActionPolicyAllow);//崩在這里

簡單分析一下被多次調用的原因:

1、系統判斷這個方法被多次執行,主要是看decisionHandler()是否被多次執行;
2、由于if判斷里會執行decisionHandler(),最后一行代碼也會執行decisionHandler(),并且self.realDelegate中也會執行decisionHandler(),這就導致了decisionHandler()這個handler可能會被多次執行。
那解決問題的方向就是修改代碼保證WKWebView單次LoadRequest只調一次此代理方法~

修改如下:

 if ([requestString hasPrefix:@"easy-js:"]) {  [self handleRequestString:requestString webView:(EasyJSWebView *)webView.superview];  decisionHandler(WKNavigationActionPolicyCancel); } else if ([self.realDelegate respondsToSelector:@selector(webView:decidePolicyForNavigationAction:decisionHandler:)]) {  [self.realDelegate webView:webView decidePolicyForNavigationAction:navigationAction decisionHandler:decisionHandler]; } else {  decisionHandler(WKNavigationActionPolicyAllow); }

即保證了單次LoadRequest只執行一次decisionHandler()

問題三描述:iOS11 WKWebview獲取高度不準確

遇見這個問題的時候,我發現偏離了大概64像素,由此聯想到了tableView和collectionView。
故解決辦法如下:

if (@available(iOS 11.0, *)) {  _webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;  _webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);  _webView.scrollView.scrollIndicatorInsets = _webView.scrollView.contentInset; }

 


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品99久久久久久www| 97国产精品久久| 久久久久久国产三级电影| 88国产精品欧美一区二区三区| 精品自拍视频在线观看| 欧美日韩中文字幕综合视频| 国产成人精品国内自产拍免费看| 色青青草原桃花久久综合| 欧美电影在线观看高清| 久久99久久久久久久噜噜| 久久伊人色综合| 亚洲国产另类久久精品| 成人黄色免费片| 日韩高清电影好看的电视剧电影| 亚洲一区美女视频在线观看免费| 5566成人精品视频免费| 国内精品视频久久| 国产精品黄页免费高清在线观看| 成人福利网站在线观看11| 欧美性videos高清精品| 久久精品国产69国产精品亚洲| 亚洲精品乱码久久久久久按摩观| 国产成人亚洲精品| 久久夜精品香蕉| 5566成人精品视频免费| 亚洲人成77777在线观看网| 这里只有精品视频| 456国产精品| 日韩欧美亚洲范冰冰与中字| 在线视频免费一区二区| 91精品国产高清自在线看超| 日韩中文综合网| 久久国产精品网站| 国产综合在线视频| 亚洲天堂第一页| 色偷偷888欧美精品久久久| 中文精品99久久国产香蕉| 91av在线免费观看| 日本sm极度另类视频| 精品国产成人在线| 亚洲在线免费看| 精品av在线播放| 欧美黑人xxxx| 日韩美女在线观看一区| 成人精品aaaa网站| 亚洲人高潮女人毛茸茸| 中文日韩在线视频| 国产91精品不卡视频| 在线视频中文亚洲| 亚洲精品久久在线| 欧美性猛交丰臀xxxxx网站| 日韩精品在线免费观看视频| 日韩欧美中文在线| 亚洲福利视频久久| 2025国产精品视频| 国产欧美中文字幕| 国产精品户外野外| 中文字幕日韩免费视频| 亚洲自拍高清视频网站| 欧美午夜www高清视频| 欧美激情亚洲另类| 色综久久综合桃花网| 精品色蜜蜜精品视频在线观看| 日韩av最新在线| 国产精品久久久久久久久久久不卡| 久久69精品久久久久久国产越南| 久久久久久久久久国产精品| 少妇高潮久久77777| 欧美黄网免费在线观看| 97国产真实伦对白精彩视频8| 精品国产一区久久久| 欧美日韩视频在线| 日韩中文字幕网| 久久久精品久久久久| 久久97精品久久久久久久不卡| 亚洲美女av网站| 神马国产精品影院av| 97国产成人精品视频| 国产精品影片在线观看| 日韩高清电影好看的电视剧电影| 中国日韩欧美久久久久久久久| 国产精品日韩欧美综合| 97精品伊人久久久大香线蕉| 亚洲视频日韩精品| 国产不卡在线观看| 97在线视频一区| 日本一区二三区好的精华液| 2021久久精品国产99国产精品| 在线性视频日韩欧美| 久久伊人精品一区二区三区| 久久久免费电影| 视频一区视频二区国产精品| 26uuu另类亚洲欧美日本一| 欧美激情精品久久久久| 欧美日韩国产999| 2019亚洲日韩新视频| 色久欧美在线视频观看| 国产剧情久久久久久| 精品国产一区二区三区久久狼5月| 国产精品亚发布| 亚洲最大福利视频| 亚洲福利影片在线| 国产成人综合精品在线| 91理论片午午论夜理片久久| 亚洲美女视频网站| 亚洲中国色老太| 日韩在线欧美在线国产在线| 亚洲第一精品夜夜躁人人爽| 欧美一级片久久久久久久| 欧美一级大片在线观看| 成人h片在线播放免费网站| 欧美一区二区影院| 91精品国产成人| 国产精品精品久久久| 国产日产久久高清欧美一区| 激情av一区二区| 日本午夜精品理论片a级appf发布| 欧美另类老女人| 成人天堂噜噜噜| 欧美在线视频在线播放完整版免费观看| 久久香蕉精品香蕉| 亚洲美女久久久| 欧美二区在线播放| 国产日韩欧美影视| 国内精品久久久久| 亚洲网站在线看| 欧美日韩国产影院| 久久精品中文字幕一区| 国产精品中文字幕在线| 亚洲激情 国产| 久久国产天堂福利天堂| 国产精品中文字幕在线观看| 欧美日韩999| 成人国产精品一区二区| 欧美日韩国产综合视频在线观看中文| 欧美在线观看日本一区| 992tv成人免费影院| 欧美日韩一区二区三区| 日韩美女视频中文字幕| 久久精品夜夜夜夜夜久久| 日韩中文字幕在线精品| 国产成人精品日本亚洲| 欧美日韩福利视频| 日韩美女在线观看一区| 热久久这里只有精品| 91久久在线播放| 欧美日韩亚洲视频| 在线免费观看羞羞视频一区二区| 日韩av网站在线| 久久精视频免费在线久久完整在线看| 日韩av网站大全| 成人黄色av播放免费| 欧美亚洲第一页| 成人中文字幕在线观看| 岛国精品视频在线播放| 国产一区二区三区四区福利| 韩国19禁主播vip福利视频| 国产第一区电影| 亚洲乱码av中文一区二区| 中文字幕一区电影| 亚洲精品午夜精品| 欧美成人在线影院| 国产精品v片在线观看不卡| 亚洲人高潮女人毛茸茸|