2017-09-01 75 views
1

我正在接收通知(使用蘋果推送通知)的應用程序。我將這些通知存儲在一個控制器中並顯示爲列表。據我瞭解,每當收到通知didReceiveRemoteNotification被調用。當應用程序處於前臺和後臺時,我可以通過didReceiveRemoteNotification方法將通知存儲在Db中。但是,當應用程序被終止時,我如何存儲通知?應用程序終止時的句柄通知(iOS)

如果用戶在應用程序終止時點擊通知,我可以使用lauch選項存儲通知。但是,如果用戶在應用程序終止時未點擊通知,我該如何存儲通知?

+0

@nyg我的問題是關於如何在應用程序終止時存儲通知。鏈接是關於處理通知在後臺狀態沒有終止狀態 –

+0

基於這個問題的答案https://stackoverflow.com/questions/35058870/handling-push-notifications-when-app-is-ter-minated似乎沒有辦法存儲通知。但在whatsapp它正在工作。 –

回答

1

您是否嘗試過使用getDeliveredNotifications(completionHandler:)?你可以在例如顯示接收到的通知的控制器的viewDidLoad方法。

請注意,如果用戶在通知中心清除接收到的通知,這將不起作用。您必須按照您在評論中鏈接的問題的接受答案中所述的方式執行操作。

UNUserNotificationCenter.current().getDeliveredNotifications { notifications in 

    // notifications: An array of UNNotification objects representing the local 
    // and remote notifications of your app that have been delivered and are still 
    // visible in Notification Center. If none of your app’s notifications are 
    // visible in Notification Center, the array is empty. 

    // As said in the documentation, this closure may be executed in a background 
    // thread, so if you want to update your UI you'll need to do the following: 
    DispatchQueue.main.sync { /* or .async {} */ 
     // update UI 
    } 
} 
+0

哦,我沒有試過這個。我會嘗試這個並檢查。謝謝你的回覆 –

+0

嘿,它工作。謝謝兄弟 –

+0

@BharathReddy太棒了!對不起,我把你的問題標記爲重複,我還沒有完全明白你想要做什麼...... – nyg

相關問題