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