在app進程殺死狀態下獲取推送消息

設備接到apns發來的通知,應用處理通知有以下幾種情況:

1. 應用還沒有加載
這時如果點擊通知的顯示按鈕,會調用didFinishLaunchingWithOptions,不會調用didReceiveRemoteNotification方法。
如果點擊通知的關閉按鈕,再點擊應用,只會調用didFinishLaunchingWithOptions方法。

2. 應用在前臺(foreground)
這時如果收到通知,會觸發didReceiveRemoteNotification方法。

3.應用在后臺
(1)此時如果收到通知,點擊顯示按鈕,會調用didReceiveRemoteNotification方法。

(2)點擊關閉再點擊應用,則上面兩個方法都不會被調用這時,只能在applicationWillEnterForeground或者applicationDidBecomeActive,根據發過來通知中的badge進行判斷是否有通知,然后發請求獲取數據

通過上面分析可以得知,如果app進程沒有啟動,當接收到通知的時候,點擊通知欄打開app不會調用didReceiveRemoteNotification方法,那么就需要在didFinishLaunchingWithOptions方法中獲取通知內容,代碼如下:


/** app進程被殺死后,啟動app獲取推送消息 */
    NSDictionary * userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

如上,只要在didFinishLaunchingWithOptions方法中調用這一行代碼,獲取到的userInfo 就是 推送過來的內容。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 極光推送: 1.JPush當前版本是1.8.2,其SDK的開發除了正常的功能完善和擴展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,765評論 10 16
  • 推送通知 注意:這里說的推送通知跟NSNotification有所區別 NSNotification是抽象的,不可...
    iOS開發攻城獅閱讀 4,295評論 1 13
  • 推送通知注意:這里說的推送通知跟NSNotification有所區別NSNotification是抽象的,不可見的...
    醉葉惜秋閱讀 1,536評論 0 3
  • 不同版本極光推送SDK集成各有差異,集成時一定要注意版本號,樓主已將博文更新成最新的SDK JPush v3.0....
    i順頌時宜閱讀 7,897評論 37 170
  • 概述 在多數移動應用中任何時候都只能有一個應用程序處于活躍狀態,如果其他應用此刻發生了一些用戶感興趣的那么通過通知...
    莫離_焱閱讀 6,549評論 1 8