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

Durante l'esecuzione iOS PhoneGap progetto. Allo stesso modo per alcuni dei restanti plugin come la geolocalizzazione e il filesystem.Cordova mostra un avvertimento come "filo ATTENZIONE: [La funzione] ha preso [n] ms." In iOS

Come sono nuovo a PhoneGap, può piacere a chiunque mi dica come posso eseguire il plugin sul thread in background.

Ho anche verificato this.

Possiamo ignorare questo avviso filo o è vero relative al problema di memoria in iOS Phone-gap

grazie

+0

Eventuali duplicati di [Come eseguire i plugin Cordova in background?] (http://stackoverflow.com/questions/22382260/how-to-run-cordova-plugins-in-the-background) –

+0

@Callodacity, La mia domanda riguardo a risolvere il problema messaggio di avviso durante l'utilizzo di plug-in in background, ma non come eseguire i plug-in Cordova sullo sfondo – Sujania

+0

ok no preoccupazioni, stavo solo controllando –

risposta

6

Come da this. risolto il mio problema di avvertimento

ho trovato avviso può essere ignorato .Ma questo può essere risolto con l'aggiunta di thread in background utilizzando questo ciclo: (In CDVLogger.m)

[self.commandDelegate runInBackground:^{ 

    //add your code here 
} 

Ora, questo sembra come di seguito per la segnalazione della console:

- (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

Analogamente l'avviso può essere risolto per fotocamera, geolocalizzazione, pushplugin ecc. "[self.commandDelegate runInBackground:^{//code here } " – Sujania

+1

questo limita solo il log da stampare sul thread principale. Questo tira semplicemente il messaggio al thread in background, ma non risolve il problema reale del ritardo. –

1

anche di aggiungere,

Se qualcuno è alla ricerca di un modo per eseguire sepcifically il plugin di geolocalizzazione come un thread in background con iOS Cordova c'è una correzione su Git Hub.

Rimuove l'avviso di uscita Xcode: "ATTENZIONE FILETTO: ['Geolocalizzazione'] ha richiesto 'X' ms. Il plug-in deve utilizzare un thread in background."

scaricare il plugin da qui: https://github.com/guillaumedev/cordova-plugin-geolocation

Heres che cosa è cambiato (runInBackground aggiunta): https://github.com/guillaumedev/cordova-plugin-geolocation/commit/8fbceca845441f4f421548f243d2f05573d11225

Maggiori informazioni su Cordova Threading: https://cordova.apache.org/docs/en/dev/guide/platforms/ios/plugin.html#threading