当前位置: 首页 > 面试题库 >

如何使用不同的用户操作(包括点击应用程序图标)来捕获所有iOS推送通知

裴俊雅
2023-03-14
问题内容

根据Apple指南:

“作为呈现的通知的结果,用户点击警报的操作按钮或点击(或单击)应用程序图标。如果在运行iOS的设备上轻按了操作按钮,则系统将启动该应用程序,调用其委托的application:didFinishLaunchingWithOptions:方法(如果已实现);它将传入通知有效负载(用于远程通知)或本地通知对象(用于本地通知)。

如果在运行iOS的设备上点击了应用程序图标,则该应用程序将调用相同的方法,但不提供有关通知的信息。如果在运行Mac OS
X的计算机上单击该应用程序图标,则该应用程序将调用委托的applicationDidFinishLaunching:方法,该委托可以在其中获取远程通知有效负载。”

我的问题是,假设用户从提供商那里收到了3-4个推送通知,并且所有通知都存储在Apple的通知中心中。如果用户点击通知警报,则他/她可以轻松地在应用程序中获取通知数据。但是,如果用户点击iPhone上的应用程序图标,则如何获取与所有先前通知相关的所有数据。

提前致谢!


问题答案:

您不能,您只会收到有关用于打开应用程序的通知的信息。

因此,如果用户打开您的应用程序,并且您的应用程序有通知,则您将无法从中检索它们。

解决方法可能是还跟踪服务器上的通知并在应用程序中进行处理。因此,服务器会跟踪已读取的通知。这就是Facebook的做法。



 类似资料:
  • 根据苹果指南: “作为呈现通知的结果,用户点击警报的操作按钮或点击(或单击)应用程序图标。如果点击操作按钮(在运行iOS的设备上),系统将启动应用程序,应用程序将调用其委托的应用程序: didFinishLaunchingSusOptions:方法(如果已实现);它传入通知有效负载(用于远程通知)或本地通知对象(用于本地通知)。 如果在运行iOS的设备上点击应用程序图标,应用程序将调用相同的方法,

  • 根据《本地和远程通知编程指南》,当发送远程通知并点击SpringBoard中的应用程序图标时: 用户点击警报中的默认按钮或点击(或单击)应用程序图标。如果点击默认操作按钮(在运行iOS的设备上),系统将启动应用程序,应用程序将调用其代理的应用程序:didFinishLaunchingWithOptions:method,传入通知负载(用于远程通知)或本地通知对象(用于本地通知)。 如果通知是远程的

  • 我正在xamarion IOS中构建一个消息应用程序。我的问题是 应用程序在后台,远程通知出现。现在用户可以通过单击应用程序图标和通知图标来打开应用程序。应用程序调用在收到通知和用户点击通知时进行了接收远程通知。在这两种情况下,应用程序状态都是后台。当用户点击通知时,我需要打开与通知相关的屏幕,当用户在主屏幕上点击应用程序图标时,我需要打开默认屏幕。 我无法识别该应用程序是通过录制远程通知还是通过

  • 让我的应用程序收到5个远程通知。每当我点击单个通知时,所有5个通知都消失了,我们需要完整地显示其他4个通知,直到它们点击。但主要问题是所有其他通知都是为了其他目的,而不是为了相同的目的。因此,我们需要显示所有通知,直到从通知托盘中单击它们。 我们还需要根据此更新徽章计数。有什么方法来处理远程消息推送时,应用程序不运行(被杀)?您能否建议使用目标c处理远程推送通知的更好方法? 谢啦

  • 关于这个主题有很多stackoverflow线程,但是我仍然没有找到一个好的解决方案。 如果应用程序不在后台,我可以在调用中检查,查看是否从通知中打开。 如果应用程序在后台,所有帖子都建议使用并检查应用程序状态。但正如我所做的实验(也正如这个API的名称所暗示的那样),当收到通知时会调用这个方法,而不是点击。 所以问题是,如果应用程序启动后后台运行,并且您知道从收到通知(此时不会触发),您如何知道

  • 我想知道是否有标志和参数可以通过单击通知托盘中的推送通知来告诉我用户是否启动了活动/应用程序。 我在 C2DM 接收器中的代码.java 我试着设定 但当该应用程序启动时,其意图中没有额外的内容。 我的mainactivity的onCreate函数中的代码 我得到的输出是onCreate - bundle没有额外的内容。所以多余的部分没有通过。 那么还有其他方法吗?在iOS中很容易