2016-05-23 99 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]; 

}

相关问题