应用程序启动时,请记住Air iOS / Android推送通知

时间:2013-02-13 08:06:17

标签: android ios actionscript-3 air

我有一个针对iOS和Android构建的应用程序,它有推送通知。一切都很好但是我想知道是否有办法在应用程序中存储推送通知的数据,这样当用户在收到通知后启动应用程序时我可以再次向他们显示消息?

基本上我允许用户在他们的朋友之间共享信息和/或聊天。如果他们在应用程序处于后台时收到通知,则会将其作为正常推送消息发出,但是当他们启动应用程序时,我希望将其引导至聊天功能以再次查看该消息。

我正在存储在远程数据库中发送的消息,但是看到它们已经收到了有效负载,因此应用程序调用远程数据库来检索相同的消息没有多大意义。

我在AS3和Air 3.5中使用Distriqt的扩展。

干杯

3 个答案:

答案 0 :(得分:1)

几周前我问过Distriqt对同一件事的支持,他们解释说,在应用程序关闭时无法获取推送通知消息的信息,所以他们建议: - 当用户打开应用程序时,您调用服务器检查他们是否没有遗漏任何内容,并从那里获取数据。如果有推送,则显示推送消息,就好像它是在应用程序处于前台时收到的那样。

这有点棘手,并不是很令人满意,但它有效..只要用户遵循路径。 如果您的用户收到推送并选择不打开您的应用,他下次打开时仍会在您的应用中收到推送消息。

答案 1 :(得分:0)

我也很难解决这个问题,但我找到了解决方案!基本上,如果用户通过Invoke事件中的通知启动应用程序(不在后台运行),而不是通常的Notification事件。所以这样做:

NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invoked);

private function invoked(evt:InvokeEvent):void
{
    if (evt.reason == InvokeEventReason.NOTIFICATION)
    {
        var payload:Object = Object(evt.arguments[0]);
        // do stuff
    }
}

这就是它。此博客文章中有更多详细信息:http://blogs.adobe.com/airodynamics/2012/05/29/push-notifications-support-in-ios/

答案 2 :(得分:0)

NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invoked);

对于Android推送通知无法正常工作。 Android始终以InvokeEventReason.standard开头,因此我们无法接收消息。它仅适用于iOS。