0

プッシュ通知を備えた iOS および Android 用に構築されたアプリがあります。すべてがうまく機能していますが、プッシュ通知のデータをアプリに保存して、ユーザーが通知を受け取った後にアプリを起動したときにメッセージを再度表示できるようにする方法があるかどうか疑問に思っていましたか?

基本的に、ユーザーが友達と情報を共有したり、チャットしたりできるようにします。アプリがバックグラウンドにあるときに通知を受信した場合、通常のプッシュ メッセージとして送信されますが、アプリを起動すると、メッセージをもう一度表示するためにチャット機能に誘導したいと考えています。

送信されたメッセージをリモート DB に保存していますが、既にペイロードを受信して​​いるため、アプリがリモート DB を呼び出して同じメッセージを取得することはあまり意味がありません。

AS3 と Air 3.5 で Distriqt の拡張機能を使用しています。

乾杯

4

3 に答える 3

1

数週間前に Distriqt のサポートに同じことを尋ねたところ、アプリが閉じている間はプッシュ通知メッセージの情報を取得する方法がないことを説明したので、これを提案しました: - ユーザーがアプリを開くと、サーバーに送信して、何も見逃していないかどうかを確認し、そこからデータを取得します。プッシュがあった場合は、アプリがフォアグラウンドで受信されたかのようにプッシュ メッセージを表示します。

少しトリッキーで満足のいくものではありませんが、機能します..ユーザーがパスをたどる限り。ユーザーがプッシュを受信し、アプリを開かないことを選択した場合でも、次にアプリを開いたときにアプリでプッシュ メッセージを受け取ります。

于 2013-02-13T11:12:48.260 に答える
0

私もこれを理解するのに苦労していましたが、解決策を見つけました!基本的に、ユーザーが通知を介して (バックグラウンドで実行されていない) アプリを起動すると、通常の Notification イベントではなく、Invoke イベントで通知されます。だからこれをしてください:

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/

于 2013-05-17T00:20:23.753 に答える
0
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invoked);

Android プッシュ通知では正しく動作しません。Android は常に InvokeEventReason.standard で起動するため、メッセージを受信できません。iOSでのみ機能します。

于 2015-05-05T05:06:44.327 に答える