OGeek|极客世界-中国程序员成长平台

标题: android - 如何通过点击推送消息通知来判断应用程序已启动 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 02:30
标题: android - 如何通过点击推送消息通知来判断应用程序已启动

我有一个从服务器接收推送通知的 Worklight 应用程序。通知意味着当前用户有来自其他用户的新消息。用户可以通过访问应用内的消息页面然后进入特定对话页面来阅读它们。

我想在代码中区分用户 Intent 。该应用程序将:

  1. 如果用户正常启动应用(不是通过点击新通知),则向用户显示常规应用主屏幕。
  2. 如果用户通过点击通知启动/恢复应用,则向用户显示消息页面。
  3. 如果在应用处于前台时收到,则仅更新屏幕消息计数(无论哪个页面处于 Activity 状态)。

问题是:有没有可靠的方法来区分上述情况?

在另一个线程中,我看到了一个建议,即记住恢复事件和 onReadyToSubscribe 事件的时间戳,并假设我们在通知到达时处于 sleep /非 Activity 状态,例如就在这之后。这将使我能够区分 2 和 3。

但是,1 不在此范围内。 IE。如果有新消息,但用户正常启动了应用程序,应用程序将无法知道这一点,并认为它是通过点击通知启动的。这样,用户打算查看应用主屏幕,但我们将他转移到消息页面。

对于 iOS 和 Android 是否有可靠的解决方法?

Worklight 版本 6.2.0.00-20140922-2259。



Best Answer-推荐答案


在纯 Native 应用程序中,您可以知道“用户从哪里打开应用程序”,这意味着是通过点击收到的通知还是通过点击应用程序图标。

在基于 Worklight 的混合应用程序中,如果仅使用 JavaScript API,这是不可行的,因为所有路径都到达相同的目的地,即 pushNotificationReceived 函数。因此,无论您是点击通知或应用图标,还是将应用置于前台,都会调用上述函数。


解决方案可能是将您的实现基于以下知识中心文档主题:Using native and JavaScript push APIs in the same app .

这样,结合使用 native 代码和 JS 代码,您可以处理收到通知但用户决定点击应用程序图标而不是通知的情况。

一个端到端的例子会有点涉及到实现,但如果你遵循文档主题中的代码示例,你应该到达那里......

关于android - 如何通过点击推送消息通知来判断应用程序已启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26358191/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4