2017-04-06 9 views
0

私はAzureからカスタムテンプレートを使用してUWPデバイスにプッシュ通知を送信しています。メッセージの一部には、UTCの日付タイムスタンプが含まれています。受信デバイスでは、ユーザーに表示される前に、トーストメッセージをインターセプトし、ユーザーのローカルタイムゾーンに日付時刻を変換する必要があります。デバイスからサーバーへのトーストメッセージdatetimeへの変換

これは可能ですか?

+0

AFAIK、表示する前にクライアント上でプッシュ通知を変更することはできません。これはサーバー側で行うことを検討する必要があります。 – Scavenger

答えて

1

プッシュ通知に応答してコードをローカルで実行する場合は、生プッシュ通知を使用する必要があります。自動的にローカライズされた日付を含める方法はありません。

ここで生のプッシュ通知のドキュメントです:基本的に...

  1. アプリがPushNotificationTriggerバックグラウンドタスク
  2. あなたのアプリは、通常のようにプッシュチャンネルを取得し、あなたにそれを送信し登録https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-raw-notification-overview

    サーバー

  3. サーバーは、表示する生のメッセージデータを含む生のプッシュ通知をデバイスに送信します。
  4. あなたのアプリケーションのバックグラウンドタスクが起き上がり、生のメッセージデータを処理してからローカルからトースト通知を作成して送信します。

これにより、トースト通知をローカルで生成し、日付などを正確にローカライズできます。

理想的には、生の通知はキューに入れられないため、生の通知自体に実際のコンテンツを送信するのではなく、「何か新しいことがあります。あなたのサーバが複数のrawを送信し、あなたのデバイスがオフラインであった場合、それが再び来ると、それは生のものが1つしか受け取られないので、あなたは前のrawのコンテンツを見逃すでしょう。したがって、あなたのバックグラウンドタスクで単に元に戻ってサーバーに「何が新しくなったのか」と尋ねるなら、コンテンツを表示するのを忘れることはありません。

関連する問題