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