我正在开发接收通知的应用程序(使用苹果推送通知)。我正在存储这些通知并在一个控制器中显示为列表。据我了解,每当收到通知时都会调用 didReceiveRemoteNotification 。当应用程序位于前台和后台时,我可以通过 didReceiveRemoteNotification 方法将通知存储在 Db 中。但是当应用程序终止时,我如何存储通知?
如果用户在应用程序终止时点击通知,我可以使用启动选项来存储通知。但是,如果用户在应用程序终止时没有点击通知,我如何存储通知?
你有没有尝试过使用getDeliveredNotifications(completionHandler:) https://developer.apple.com/documentation/usernotifications/unusernotificationcenter/1649520-getdeliverednotifications?您可以在例如中调用以下代码您在其中显示收到的通知的控制器的 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
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)