Cordova 在 iOS 中将警告显示为“THREAD WARNING: [Your function] take [n] ms.”

Cordova shows an warning as " THREAD WARNING: [Your function] took [n] ms. " in iOS

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

虽然 运行正在 iOS Phonegap 项目。同样对于一些剩余的插件,如地理定位和文件系统。

因为我是 Phonegap 的新手,谁能告诉我如何 运行 后台线程上的插件。

我也检查了this

我们可以忽略这个线程警告吗,或者它是否与 iOS Phone-gap

中的内存问题有关

谢谢

根据 this。解决了我的警告问题

我发现可以忽略警告。但这可以通过使用此循环添加后台线程来解决:(In 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);
   }
 }];
}

还要补充,

如果有人正在寻找一种方法 运行 特别是将地理定位插件作为 iOS Cordova 的后台线程,GitHub 上有一个修复程序。

它删除了 Xcode 输出警告:"THREAD WARNING: ['Geolocation'] took 'X' ms. Plugin should use a background thread."

从这里下载插件: https://github.com/guillaumedev/cordova-plugin-geolocation

这是更改的内容(添加了运行InBackground): https://github.com/guillaumedev/cordova-plugin-geolocation/commit/8fbceca845441f4f421548f243d2f05573d11225

有关 Cordova 线程的更多信息: https://cordova.apache.org/docs/en/dev/guide/platforms/ios/plugin.html#threading