1

我想保存在應用程序處於後臺狀態時到達的推送通知。我知道ios在後臺處理pushnotification

-(void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

當應用程序在前臺或後臺(如果用戶只需點擊收到的通知),該委託方法被調用。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

這種方法被稱爲只有當應用程序啓動時。

如果用戶沒有點擊通知,該怎麼辦?在那種情況下,如何將該通知的數據保存在我的應用程序的數據庫中?

回答

1

對於這種情況,您不能將數據保存在'您的應用程序的數據庫'中;而是將數據保存在服務器上的數據庫中,這是首先生成PushNotification的地方。然後,當您的應用程序啓動時,它會查詢您的數據庫以獲取通知數據。

+0

您可以使用通知設置徽章計數,並且只有在計數大於零時,才能查詢服務器。 –

+0

thanx @GoZoner您的答案對我來說也很有價值。 – Rivan

+0

@rivan,那麼你應該投票GoZoner的答案。 –

3

如果用戶沒有單擊通知,則無法保存該數據。 即使用戶通過點擊其啓動圖標打開應用,該應用也不會收到該數據。

還記得通知的設計是提供小有效載荷來提醒用戶。 用戶啓動應用程序後,應用程序可以下載要保存的真實數據。

+1

如果用戶沒有點擊通知,只要您的應用程序正在運行,您的應用程序仍然會收到通知,但您的應用程序變爲活動狀態之前無法處理該通知。這在iOS7中發生了變化。我相信即使應用程序未處於活動狀態(但正在後臺運行),您的應用程序也可以處理通知。 –

+1

@MarcusAdams你知道任何可以指導我們的文檔/資源嗎?解釋如何在iOS7的後臺獲取這個遠程推送通知數據? – Archie1986