application:didFinishLaunchingWithOptions:
只有在应用程序由于通知而启动时才会与有效负载信息一起调用。例如。如果用户点击通知提醒(在通知中心添加)或通过content-avialble = 1
收到的有效内容(报亭通知)&中提供了通知提醒(如果您的应用程序不在前台以及后台),则可能会发生这种情况。
如果您的应用在应用处于后台时收到通知。如果是书报亭通知或者如果用户点击了以下方法警报的操作按钮被称为
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
与[[UIApplication sharedApplication] applicationState]
不等于UIApplicationStateActive
。
在上述情况下,如果用户没有点击通知提醒的操作按钮并点击启动应用程序,则不会调用didFinishLaunchingWithOptions
或didReceiveRemoteNotification
。
如果您的应用在前台收到通知didReceiveRemoteNotification
被调用[[UIApplication sharedApplication] applicationState]
将等于UIApplicationStateActive
。
对于notification
中的徽章,如果您的应用程序未运行,则不会执行任何代码,并且应用程序图标中的徽章会增加1。当你启动应用程序(点击应用程序图标)didFinishLaunchingWithOptions
被正常调用。 (如果应用程序在收到通知时处于后台或前台,与上述相同)
所以我认为这涵盖了每一种可能的情况。另请注意,背景情况对于iOS SDK >= 4.0
来源
2012-08-29 21:25:20
msk
有效负载内有效? – msk
@MSK我很抱歉,我不太明白 - 你问的是什么原始的推送(从我的服务器)包含作为其有效载荷?如果是这样,有效载荷是基本的,它不包含通常的徽章,警报和声音以外的任何自定义内容。 –
看到我的回答下面 – msk