2016-05-23 10 views
1

Wir verwenden ein paar Plugins in unserer cordova ios-Anwendung, die die Anwendung im Hintergrund starten können. Speziell diese zwei Plugins: https://github.com/petermetz/cordova-plugin-ibeacon und https://github.com/oursiberia/cordova-plugin-visit. Leider, wenn die App so im Hintergrund gestartet wird, scheint es unmöglich zu sagen, dass sie im Hintergrund über Cordova läuft. Ich registriere mich für die Pause-, Wiederaufnahme-, Aktiv- und Unterhaltungs-Ereignisse und das einzige Ereignis, das in dieser Situation geliefert wird, ist Deviceready, das auch die einzige Benachrichtigung ist, die in Cordova geliefert wird, wenn die App von einem Benutzer im Vordergrund gestartet wird. In einer ios nativen App wäre ich in der Lage, die launchOptions in didFinishLaunchingWithOptions zu überprüfen, um zu sehen, ob es mit UIApplicationLaunchOptionsLocationKey gestartet wurde, oder ich konnte [[UIApplication sharedApplication] applicationState] überprüfen, um festzustellen, ob die App im Hintergrund läuft. Gibt es eine Möglichkeit festzustellen, ob die App im Hintergrund in Cordova oder in einem Cordova-Plugin gestartet wird, von dem irgendjemand weiß? Ich habe eine Weile online gesucht und nichts gefunden.Ermitteln, ob die cordova App im Hintergrund vom Betriebssystem gestartet wird

+0

Hallo Alec, ich bin genau das gleiche Problem haben - haben Sie es lösen? –

Antwort

0

Ich schrieb mein eigenes Plugin, um dies zu tun. Hier ist, was es zu bestimmen, tut, wenn die App im Hintergrund auf ios läuft:

- (void)isAppRunningInForeground:(CDVInvokedUrlCommand *)command { 
NSLog(@"- CDVAppState isAppRunningInForeground"); 
CDVPluginResult* result = [CDVPluginResult 
          resultWithStatus:CDVCommandStatus_OK 
          messageAsBool:[[UIApplication sharedApplication] applicationState] == UIApplicationStateActive]; 

[self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; 

}