【问题标题】:How to tell app was started by tapping push message notification如何通过点击推送消息通知来判断应用程序已启动
【发布时间】:2014-10-14 10:11:43
【问题描述】:

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

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

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

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

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

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

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

Worklight 版本 6.2.0.00-20140922-2259。

【问题讨论】:

    标签: android ios push-notification ibm-mobilefirst


    【解决方案1】:

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

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


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

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

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

    【讨论】:

    • 另一个关于如何在 iOS 中处理不同场景的有趣链接:bit.ly/1ESSGdQ
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2013-02-28
    • 2018-08-15
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多