LoginSignup
28
27

More than 5 years have passed since last update.

プッシュ(リモート)通知(Apple Push Notification)の仕様

Posted at

LocalおよびPush Notificationプログラミングガイドを読んで、気になった仕様をピックアップしてみました。iOSは詳しくないので間違いがあるかもしれません。

Terminology

単語 説明
ペイロード(通知ペイロード) システムがユーザに警告する方法に関する情報や、別途渡したカスタムデータなどが収容される.通知メッセージの正体.
アプリケーションデリゲート アプリケーションのイベントを処理するオブジェクト
プロバイダ サーバ側のアプリケーション(リモート通知をAPNに送信するサーバ)

ローカル通知との違い

  • ローカル通知の発生源はデバイス上のアプリ
  • プッシュ通知の発生源はリモートサーバ

プッシュ通知受信時の流れ

アプリがフォアグラウンドで起動している時の通知

  • アプリケーションデリゲートが通知を受ける

アプリがフォアグラウンドで起動していない時の通知

  • システムにより通知(警告、数字付きバッジアイコン、サウンド)が行われる
  • ユーザのクリックによりアプリケーションが起動
  • メソッドが呼び出されペイロードが渡される

通知の失敗

  • APNでは配信に失敗したデバイスのアプリケーションごとのリストが管理されている
  • 失敗が続いているデバイスを確認し、配信の停止ができる
  • 毎日定期的にフィードバックサーバに問い合わせて、デバイストークンのリストを取得するといい

バッジ

  • バッジの数字はアプリケーション固有のもので、どんな事柄の数を表しても構わない

プッシュ通知の利用方法

  • プッシュ通知による配信は保証されていないため、データ送信の目的でリモート通知メカニズムを使用してはいけない

オフラインのデバイスへの再送

  • APNsはプロバイダから受信した最後の通知を保持
  • APNsによって保持されている通知はデバイスがオンラインになったときに、再送される
  • オフラインの間に複数の通知が送られた場合、古い方から順に破棄
  • 長時間にわたってオフラインになると、保存していた通知も破棄

警告音の仕様

サポートフォーマット

  • リニアPCM
  • MA4(IMA/ADPCM)
  • µLaw
  • aLaw

再生時間の制限

  • 30秒未満### 登録の仕様

  • アプリケーションを起動するたびに登録する必要がある

  • 得られたデバイストークンは毎回プロバイダへ送信

通知ペイロードの制限

  • 通知ペイロードに許される最大サイズは256バイト
  • 上限を超える通知は拒否

参考URL

Localおよび Push Notificationプログラミングガイド
https://developer.apple.com/jp/devcenter/ios/library/documentation/RemoteNotificationsPG.pdf

iOSアプリケーション プログラミングガイド
https://developer.apple.com/jp/devcenter/ios/library/documentation/iPhoneAppProgrammingGuide.pdf

28
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
27