Je fais une application basée sur PhoneGap (Cordova). Je l'ai testé quelques fois, et récemment j'ai vu un message dans xcode qui disait "Le plugin devrait utiliser un thread d'arrière-plan." Est-il donc possible de faire fonctionner les plugins cordova en arrière-plan de l'application? dans l'affirmative, veuillez indiquer comment. Merci!
Un thread d'arrière-plan n'est pas le même que l'exécution de code lorsque l'application est en arrière-plan, un thread d'arrière-plan est utilisé pour ne pas bloquer l'interface utilisateur pendant que vous exécutez une longue tâche.
Exemple de fil d'arrière-plan sur iOS
- (void)myPluginMethod:(CDVInvokedUrlCommand*)command
{
// Check command.arguments here.
[self.commandDelegate runInBackground:^{
NSString* payload = nil;
// Some blocking logic...
CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:payload];
// The sendPluginResult method is thread-safe.
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}];
}
Exemple de fil d'arrière-plan sur Android
@Override
public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
if ("beep".equals(action)) {
final long duration = args.getLong(0);
cordova.getThreadPool().execute(new Runnable() {
public void run() {
...
callbackContext.success(); // Thread-safe.
}
});
return true;
}
return false;
}