11
"THREAD WARNING: ['Console'] took '81.661865' ms. Plugin should use a background thread." 

在運行iOS的PhoneGap的項目。對於其他一些插件(如地理位置和文件系統)也是如此。科爾多瓦表示的警告, 「線程警告:你的功能]把[N]毫秒。」 在iOS的

由於我是Phonegap的新手,可以請任何人告訴我如何在後臺線程上運行插件。

我檢查了this也。

我們可以忽略此線程警告或者它與記憶問題iOS手機隙

感謝

+0

的可能的複製[如何運行科爾多瓦插件在背景?](http://stackoverflow.com/questions/22382260/how-to-run-cordova-plugins-in-the-background) –

+0

@Callodacity,我的問題有關解決而在後臺使用插件的警告信息,但不知道如何在後臺運行科爾多瓦插件 – Sujania

+0

還好不用擔心,我只是檢查 –

回答

6

this。解決了我的問題,警示

我發現可以忽略警告。但是這可以通過使用這個循環將後臺線程來解決:(在CDVLogger.m)

[self.commandDelegate runInBackground:^{ 

    //add your code here 
} 

現在這個看起來如下面在控制檯的警告:

- (void)logLevel:(CDVInvokedUrlCommand*)command 
{ 
    [self.commandDelegate runInBackground:^{ 
    id level = [command argumentAtIndex:0]; 
    id message = [command argumentAtIndex:1]; 

    if ([level isEqualToString:@"LOG"]) { 
    NSLog(@"%@", message); 
    } else { 
     NSLog(@"%@: %@", level, message); 
    } 
}]; 
} 
+0

同樣的警告可以解決相機,地理位置,pushplugin等「[self.commandDelegate runInBackground:^ {//code here }「 – Sujania

+1

這隻限制在主線程上打印日誌。這只是將消息拉到後臺線程,但並沒有解決實際的延遲問題。 –

1

而且添加,

如果有人正在尋找一種方式來sepcifically運行地理位置插件作爲與iOS科爾多瓦在後臺線程上存在的Git修復樞紐。

它刪除了Xcode輸出警告:「THREAD WARNING:['Geolocation']取了'X'ms。插件應該使用後臺線程。

從這裏下載插件: https://github.com/guillaumedev/cordova-plugin-geolocation

下面有什麼改變(runInBackground補充): https://github.com/guillaumedev/cordova-plugin-geolocation/commit/8fbceca845441f4f421548f243d2f05573d11225

更多科爾多瓦線程信息: https://cordova.apache.org/docs/en/dev/guide/platforms/ios/plugin.html#threading