gpt4 book ai didi

ios - 如何处理 iOS 中的未读推送通知?

转载 作者:可可西里 更新时间:2023-11-01 04:42:22 24 4
gpt4 key购买 nike

我有一个 iOS 5.1 应用程序注册到 APNS 服务以接收通知。注册成功,我正确收到通知。当我尝试处理通知时出现问题。

应用程序运行后,AppDelegate 中的方法 didReceiveRemoteNotification 会被正确调用,因此通知会按预期处理。然而,这仅在应用程序在前台运行时发生。

但是,当应用程序在后台运行或只是停止时,不会调用该方法。我读到你应该在方法 didFinishLaunchingWithOptions 方法中添加一些行,以从 userInfo 字典中获取通知,并处理它。这工作得很好,但只有在通过单击通知中心的通知打开应用程序时。这意味着,如果您通过单击它的标志打开应用程序,或者如果您在后台运行它,则只需更改上下文,该应用程序就永远不会意识到收到通知。此外,如果收到多个通知,我们可以单击通知中心一次只能处理其中一个,这很痛苦:-)

有什么方法可以读取通知中心的待处理通知吗?我知道有一种方法可以使用 cancelAllLocalNotifications 方法刷新它们,但我还没有找到一种方法来读取它们。我真的需要处理所有这些。我想到了与第三方通知服务器实现一个通信协议(protocol),以便在应用程序来到前台时再次检索信息,但是由于信息已经在操作系统中,如果无法以某种方式访问​​它,我会觉得很奇怪。

那么,有人知道怎么做吗?提前致谢。

最佳答案

当推送通知到达并且用户点击“取消”时,您的应用无法再次读取该推送通知。您必须实现一个单独的功能(很可能在服务器端)来获取发送到该设备的通知列表。

例如,如果您的应用程序中提供了聊天功能并且您通过推送通知发送聊天消息,那么您还应该在服务器上保留聊天消息。如果用户在任何推送通知上单击“取消”,则该聊天消息将不会显示在 iOS 设备上。在这种情况下,当应用程序稍后出现在前台时,您可以调用服务器并获取所有过去的聊天消息(通过推送通知发送)。

关于ios - 如何处理 iOS 中的未读推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com