iOS のプッシュペイロード

iOS のプッシュペイロードの形式について解説します。

iOS のプッシュペイロードは JSON 形式です。ここでは、JSON の書き方および、主要なキーの解説をします。

プッシュ通知ペイロードの例

以下は一般的なプッシュ通知ペイロードの例です。このうち aps キーが iOS によって参照されて通知の表示に使われるデータとなり、それ以外のデータはアプリで使う任意のデータとなります。

 1{
 2  "aps": {
 3    "alert": {
 4      "title": "New Message",
 5      "body": "新しいメッセージが届きました"
 6    },
 7    "sound": "default"
 8  },
 9  "screen": "message-detail",
10  "message-id": 1100
11}

主要なapsキー内のオブジェクト

aps キーは iOS によって参照され、通知の表示や動作に影響します。ここではよく使われる主要なキーについて解説します。詳細な情報については Local and Remote Notification Programming Guide の Payload Key Reference をご覧ください。

aps.alert キー

このキーは通知メッセージに表示される内容を表します。文字列もしくは辞書をセットすることになります。文字列をセットした場合はその文字列が body にセットされているのみとして扱われます。

サブキーには、以下のようなものがあります。これ以外にローカライズをするためのキーが存在しています。複数言語に対応するアプリの場合はローカライズを検討してください。

キー 内容
title 通知のタイトル。通知の目的を表す短い文字列です。iOS 8.2から追加されました。
body 通知の本文。
launch-image 起動する際の Launch Image。アプリ内の画像ファイル名を指定します。

badge キー

アプリアイコンの右上に数字からなるバッジを表示させます。数値をセットすることになります。

キーをセットしなかった場合は変更なし、0を指定した場合はバッジが削除されます。

sound キー

再生するサウンドを指定します。文字列でアプリケーションバンドル、もしくはアプリ内のストレージの Library/Sounds にあるファイル名を指定します。ファイルが見つからない場合や default を指定した場合はデフォルトのサウンドが再生されます。

content-available キー

このキーが指定されたプッシュ通知が配信されると、アプリのバックグラウンド更新が起動します。

バックグラウンド更新が実行されるときは application(_:didReceiveRemoteNotification:fetchCompletionHandler:) が呼び出されます。(アプリが起動していない場合は先行して AppDelegate の application(_:, didFinishLaunchingWithOptions:) デリゲートメソッドが呼ばれます)

このバックグラウンド更新にはいくつか制限があります。

  • ユーザーが App スイッチャーからアプリを削除している場合は起動しない。
  • 30秒以内に処理を完了させ fetchCompletionHandler を呼び出す必要がある。
  • 電力を浪費する場合は起動回数に制限を受ける場合がある。
  • その他、端末の状態などによっては起動しない場合がある。

mutable-content キー

このキーが指定されたプッシュ通知が配信されると、アプリに含まれている Notification Service Extension が実行されます。

Notification Service Extension を使うと表示される通知の内容を端末上で一度加工した上でユーザーに表示でき、画像付きなどのリッチプッシュを実現できます。

ご不明な点はありませんか?

機能の詳細、導入のご検討、お見積もり依頼などは、お気軽にお問い合わせください。
担当者から追ってご連絡いたします。

お問い合わせはこちら