ios webView調(diào)用原生方法可能出現(xiàn)崩潰的問題

1、webView調(diào)用友盟中的QQ分享功能,崩潰錯(cuò)誤

*** Assertion failure in +[QQApi sendMessage:], /data/rdm/projects/18708/src/QQApi/QQApi.m:359
2017-05-09 17:27:29.997116+0800 WireShoper[10938:3459257] 
2017-05-09 17:27:30.883339+0800 WireShoper[10938:3459603] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'TencentOpenApi must be called at main thread'

翻譯過來就是
由于異常終止應(yīng)用程序“NSInternalInconsistencyException”,原因是:“TencentOpenApi必須在主線程被調(diào)用的
解決方法:

if ([QQApiInterface isQQInstalled]) {//安裝了QQ
        //創(chuàng)建分享消息對(duì)象
        UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
        //創(chuàng)建網(wǎng)頁內(nèi)容對(duì)象
        UMShareWebpageObject *shareObject = [UMShareWebpageObject shareObjectWithTitle:[appDefault objectForKey:@"shareTitle"] descr:[appDefault objectForKey:@"shareDescription"] thumImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[appDefault objectForKey:@"thumbUrl"]]]]];
        //設(shè)置網(wǎng)頁地址
        shareObject.webpageUrl = [appDefault objectForKey:@"webpageUrl"];
        //分享消息對(duì)象設(shè)置分享內(nèi)容對(duì)象
        messageObject.shareObject = shareObject;
        dispatch_sync(dispatch_get_main_queue(), ^{
            //Update UI in UI thread here
            //調(diào)用分享接口
            [[UMSocialManager defaultManager] shareToPlatform:UMSocialPlatformType_QQ messageObject:messageObject currentViewController:self completion:^(id data, NSError *error) {
                if (error) {
                    NSLog(@"************Share fail with error %@*********",error);
                }else{
                    NSLog(@"response data is %@",data);
                }
            }];
        });
    }

分享到QQ空間也是一樣的處理方法

注意:在主線程調(diào)用友盟QQ分享是會(huì)出現(xiàn)崩潰的,這個(gè)只限于webview調(diào)用友盟QQ分享
注意:在主線程調(diào)用友盟QQ分享是會(huì)出現(xiàn)崩潰的,這個(gè)只限于webview調(diào)用友盟QQ分享
注意:在主線程調(diào)用友盟QQ分享是會(huì)出現(xiàn)崩潰的,這個(gè)只限于webview調(diào)用友盟QQ分享

2、webView調(diào)用原生跳轉(zhuǎn)功能(跳轉(zhuǎn)的控制器主要做的是百度地圖定位功能,搖一搖)可能會(huì)出現(xiàn)崩潰,
崩潰錯(cuò)誤:


跳轉(zhuǎn)百度地圖定位.png

解決方法:

 dispatch_sync(dispatch_get_main_queue(), ^{
            RealTimeTrafficViewController * realTimeVC = [[RealTimeTrafficViewController alloc]init];
            [self presentViewController:realTimeVC animated:YES completion:nil];    
        });

注意:在主線程調(diào)用可能會(huì)出現(xiàn)崩潰的,這個(gè)只限于webview調(diào)用
注意:在主線程調(diào)用可能會(huì)出現(xiàn)崩潰的,這個(gè)只限于webview調(diào)用
注意:在主線程調(diào)用可能會(huì)出現(xiàn)崩潰的,這個(gè)只限于webview調(diào)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評(píng)論 25 709
  • 突然失眠了, 都是這該死的節(jié)目鬧得,希望以后這活能少點(diǎn),鬧心。。。閉上眼睛不知道怎么回事就回想起大學(xué)生活了,回想起...
    驚羽ZZJ閱讀 287評(píng)論 4 2
  • 昨天下午的時(shí)候,在手機(jī)上看了《真愛至上》。很多人抱著試一試的態(tài)度,鼓起勇氣去參加他之前不會(huì)參加的聚會(huì),認(rèn)識(shí)一些之前...
    擁抱太陽的Pluto閱讀 366評(píng)論 0 1
  • 這兩天,網(wǎng)絡(luò)上又是鋪天蓋地的“大家好,給大家介紹一下.....” 這到底又是什么梗,突然就火了。 原來,10月8日...
    游戲雜談閱讀 550評(píng)論 0 0

友情鏈接更多精彩內(nèi)容