如何通过点击推送消息通知来启动应用程序

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

我想区分用户意图之间的代码。 该应用程序将:

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

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

在另一个线程中,我看到一个build议,记住一个简历事件和一个onReadyToSubscribe事件的时间戳,并假设我们是睡觉/不活动,如果通知到达,例如在此之后一秒钟。 这将使我能够区分2和3。

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

iOS和Android有没有可靠的方法?

Worklight vesion 6.2.0.00-20140922-2259。

在纯粹的本机应用程序中,您可以知道“从用户打开应用程序的位置”,即通过点击接收到的通知或点击应用程序图标。

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

解决scheme可能是将您的实现基于以下知识中心文档主题: 在同一应用程序中使用本机和JavaScript推送API 。

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

一个端到端的例子可能会涉及一些实现,但是如果您将遵循文档主题中的代码示例,则应该到达那里…