Кордова показывает предупреждение как "ПРЕДУПРЕЖДЕНИЕ THREAD: [Ваша функция] заняла [n] ms." В iOS

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

При запуске проекта iOS Phonegap. Аналогично для некоторых из оставшихся плагинов, таких как геолокация и файловая система.

Поскольку я новичок в Phonegap, может понравиться, кто-нибудь скажет мне, как я могу запустить плагин в фоновом потоке.

Я также проверил этот.

Можно ли игнорировать это предупреждение о потоке или связано с проблемой памяти в iOS Phone-gap

спасибо

Ответ 1

По 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);
   }
 }];
}

Ответ 2

Также добавить

Если кто-то ищет способ запустить sepcifically плагин Geolocation как фоновый поток с iOS Cordova, есть исправление на GitHub.

Он удаляет предупреждение о выходе Xcode: "THREAD WARNING: ['Geolocation'] взял" X "ms. Плагин должен использовать фоновый поток".

Загрузите плагин отсюда: 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#threading