Cordova показывает предупреждение как "ПРЕДУПРЕЖДЕНИЕ ПО РЕЗЬБЕ: [Ваша функция] заняла [n] мс. " В iOS
"THREAD WARNING: ['Console'] took '81.661865' ms. Plugin should use a background thread."
Пока работает проект iOS Phonegap. Аналогично для некоторых из оставшихся плагинов, таких как геолокация и файловая система.
Поскольку я новичок в Phonegap, может кто-нибудь сказать мне, как я могу запустить плагин в фоновом потоке.
Я также проверил это.
Можем ли мы проигнорировать это предупреждение о потоке или это связано с проблемой памяти в iOS Phone-gap
Спасибо
2 ответа
Согласно этому. решил мою проблему с предупреждением
Я обнаружил, что предупреждение можно игнорировать. Но это может быть решено путем добавления фонового потока с помощью этого цикла:(в 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);
}
}];
}
Также добавить,
Если кто-то ищет способ запустить плагин Geolocation как фоновый поток с iOS Cordova, то есть исправление для GitHub.
Он удаляет предупреждение о выходе Xcode: "ПРЕДУПРЕЖДЕНИЕ ПО РЕЗЬБЕ: ['Geolocation]] заняло" X "мс. Плагин должен использовать фоновый поток".
Загрузите плагин здесь: https://github.com/guillaumedev/cordova-plugin-geolocation
Вот что изменилось (добавлено runInBackground): https://github.com/guillaumedev/cordova-plugin-geolocation/commit/8fbceca845441f4f421548f243d2f05573d11225
Дополнительная информация о Cordova Threading: https://cordova.apache.org/docs/en/dev/guide/platforms/ios/plugin.html