2016-05-23 75 views
1

我們在我們的cordova ios應用程序中使用了幾個插件,可以在後臺啓動應用程序。具體來說,這兩個插件:https://github.com/petermetz/cordova-plugin-ibeaconhttps://github.com/oursiberia/cordova-plugin-visit。不幸的是,當應用程序在後臺像這樣啓動時,似乎沒有辦法通過cordova來確定它是否在後臺運行。我正在註冊暫停,恢復,活動和設備準備事件,並且在這種情況下交付的唯一事件是deviceready,如果應用程序由用戶在前臺啓動,那麼這也是在cordova中交付的唯一通知。在ios本地應用程序中,我將能夠檢查didFinishLaunchingWithOptions中的launchOptions以查看它是否使用UIApplicationLaunchOptionsLocationKey啓動,或者我可以檢查[[UIApplication sharedApplication] applicationState]以確定應用程序是否在後臺運行。有什麼方法可以確定應用程序是在科爾多瓦的後臺還是任何人都知道的科爾多瓦插件中啓動的?我一直在網上搜索一段時間,並沒有發現任何東西。確定是否由os在後臺啓動cordova應用程序

+0

亞歷克嗨,我有完全一樣的問題 - 你解決了嗎? –

回答

0

我最終寫了自己的插件來做到這一點。下面是它做什麼,以確定該應用程序在iOS上的後臺運行:

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

}

相關問題