Push Notification
プッシュ通知に関するメモ。
特にモバイル端末におけるプッシュ通知について。
できること
- メッセージを表示する
- メッセージを表示しない
- 画像を添付する
- サウンドを設定する
- バイブレーションを設定する
- 通知をクリックするとアプリを開く
- 通知をクリックするとアプリの特定のページを開く
- フォアグラウンドのアプリで通知をフックする
- バックグラウンドのアプリで通知をフックする
- 特定のユーザーに送信する
- トピックを購読しているユーザーに送信する
できないこと
- 起動していないアプリで通知をフックする
発行方法による違い
プッシュ通知には、クライアントを登録したサーバーから発行する「リモート通知」と、モバイル端末自身が発行する「ローカル通知」がある。
リモート通知
サーバーから通知を発行する。
iOS の場合は APN (Apple Push Notification) を使う。
Android の場合は FCM (Firebase Cloud Messaging) を使う。
FCM から APN に送ることもできる。
ローカル通知
モバイル端末から通知を発行する。
バックグラウンド通知
iOS は 7.0 からバックグラウンドのアプリに通知できる。
APN の設定
通知する側で aps.content-available を 1 に設定する。
通知されるアプリの設定で Capability > BackgroundMode > Remote notifications を有効にする。
サイレント通知
通知を画面上に出さない。
iOS
aps.alert を設定しなければ、画面上には表示されない。
FCM の場合は message.notification.title と message.notificaiton.body が aps.alert.title と aps.alert.body の代わりになっているので、それらを消しておけばいい。
Android
?