[英]How to get all the push notification payloads after an iOS app launches or did become active
[英]How to handle push notification when my app become active?
我是iOS的新手,正在研究推送通知。 我已經通過parse.com完成此操作,並且工作正常。
我的問題是:
我有兩個UIViewController
。 在第一個ViewController
一個Web服務在viewDidLoad
方法中調用,並從服務器獲取學生數據並顯示在tableview上。
然后,我選擇detailviewcontroller
中的任何學生,以便它將在第二個detailviewcontroller
上導航,在該detailviewcontroller
上將顯示學生詳細信息。
現在,我按下主頁按鈕,我的應用程序進入后台模式,並且推送通知到達。
現在,我點擊應用程序圖標而不是通知視圖來顯示更新。
有人可以幫助我如何處理這種情況,因為當用戶點擊應用程序圖標時,它將直接在學生詳細信息視圖上導航。 如何處理此推送通知並更新學生表視圖?
好的,可以在應用打開時嘗試以下方法:
-(void)applicationDidBecomeActive:(UIApplication *)application
{
int i=[UIApplication sharedApplication].applicationIconBadgeNumber;
//if i!=0 you got some notifications - fetch data from server and refresh array with data
}
雖然我喜歡讀取證卡號碼的解決方法,但我會盡量明確地說明問題,如果您無法實現自上次請求以來將帶來增量更改的同步API調用,則可以使用推送通知來解決問題。
AppDelegate
將通過- application:didReceiveRemoteNotification:
AppDelegate
進行調用- application:didReceiveRemoteNotification:
- application:didReceiveRemoteNotification:fetchCompletionHandler:
在這兩種情況下,如果尚未運行,您都需要調整JSON有效負載以在后台啟動應用程序。
在兩種情況下,您都希望保留“未處理”通知。 如果您只想保留標識符或任何其他信息小塊,我可能會看看NSUserDefaults
。
如果數據量很大,或者您想從網絡中獲取對象,則數據庫或CoreData(甚至Parse.com本地存儲解決方案)應該是更合適的方法。
重要的是,切記,一旦應用真正啟動,就清除本地隊列中創建的未處理通知。
希望能幫助到你
更新 @ Sega-Zero提到了應該包含在有效負載中的JSON字段的名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.