iOS 混合网页开发 问题
生活随笔
收集整理的這篇文章主要介紹了
iOS 混合网页开发 问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在利用JavaScriptCore與H5交互時出現異常提示:
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.? This will cause an exception in a future release.
從字面意思看,是因為在后臺線程修改了UI,于是乎開始驗證
_weak typeof(self)weakSelf = self;JSContext *tContext = [weakSelf.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];tContext[@"jsredirect"] = ^(){NSArray *tArgs = [JSContext currentArguments];JSValue *tJSValue = [tArgs firstObject];@try{NSDictionary *tActionValueDic = [tJSValue toDictionary];NSLog(@"JSValue:%@", tActionValueDic);NSString *tUrlStr = tActionValueDic[@"url"];if ([tUrlStr isEqualToString:@"chartDispose"]) {[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];[[NSUserDefaults standardUserDefaults] synchronize];}else{CGGradeJumpWebViewController *vc = [[CGGradeJumpWebViewController alloc]init];vc.urlStr = tUrlStr;NSLog(@"Current Thread:%@",[NSThread currentThread]);dispatch_async(dispatch_get_main_queue(), ^{//UI修改NSLog(@"Current Thread:%@",[NSThread currentThread]);[weakSelf.navigationController pushViewController:vc animated:YES];});}}@catch (NSException *exception){NSLog(@"exception:%@", exception);}};果然,在XCode7中網頁交互實在后臺線程中執行的(XCode6木有問題),所以在交互時修改UI要再主線程中執行,問題解決。
?
轉載于:https://www.cnblogs.com/pretty-guy/p/4891286.html
總結
以上是生活随笔為你收集整理的iOS 混合网页开发 问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FLASHBACK DROP TABLE
- 下一篇: 小程序生成海报 详解