我已经
了- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if ( application.applicationState == UIApplicationStateActive )
// app was already in the foreground
else
// app was just brought from background to foreground
...
}
现在有可能在通知到达时执行一些操作,将应用程序保留在后台;收到通知后,我不想让我的应用程序处于前台;我想要的是当通知到达时,我只是设置了一些标志并且(app仍在后台)当用户自己打开应用程序时,他/她可以以一些优雅的方式查看消息; 简介:我不希望在通知到达时将应用程序置于前台,但是希望在我的代码中执行一些操作,使应用程序保持在后台;
感谢;
答案 0 :(得分:1)
您需要使用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
由于您的应用程序位于后台,因此无法了解有关传入通知的任何信息。该通知由iOS负责处理。
但是,当您的应用由于用户滑动/点击通知而打开时,您的应用将获得上述方法中传递的 launchOptions 。如果用户直接打开应用(点击应用图标), launchOptions 将为空。有关详细信息,请参阅UIApplicationDelegate Protocol Reference。
要检索远程通知有效负载,您可以执行以下操作:
[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]
您可以执行本地通知有效负载:
[launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]