iPhoneには、届いても画面になにも表示されない通知が存在します。それは「サイレントプッシュ通知」と呼ばれ、アプリ開発の段階でそのように設計されます。開発手順はほぼ同じですが、サイレントプッシュ通知ではメッセージが定義されず、受信したiPhoneではデータのダウンロードやデータベースの更新といった処理だけが行われます。

通知は必ずしも目立つ必要はありません。たとえば、アプリがサーバに問い合わせて現在位置の情報を取得した場合、最新の位置情報をアプリに反映すればいいだけであって、わざわざ「位置情報を取得しました」と表示するメリットはありません。1度きりならともかく、30分おきにその旨の通知が表示されるとしたら、ユーザにとってはむしろ負担です。

サイレントプッシュ通知は、ユーザに到着を知らせる必要がない、あえて知らせるメリットがない通知を発信したいときに利用されます。通常の通知とは異なり、ダイアログやバナーが表示されることもなければ、通知音が鳴ることもありません。iOS 7のときに登場した機能で、少なくないアプリに採用されていますから、それとは気付かないうちにサイレントプッシュ通知を受けた経験があるユーザもいるはずです。

ただし、サイレントプッシュ通知は通常の通知と仕様が少し異なります。サイレントプッシュ通知を受信したアプリは、位置情報の取得などなんらかの処理を行いますが、そのとき処理を実行できるのは実行中のアプリに限られます。

さらに、Appスイッチャーでアプリを手動終了したり、iOSの設定でバックグラウンド処理の禁止や低電力モードの有効化を行っている場合は、サイレントプッシュ通知を受信しても関連する処理が行われません。時間制限もあり、サイレントプッシュ通知を受信してから30秒以内に処理を完了する必要があります。

  • iPhoneには「表示されない通知」があるの?

    iPhoneには「表示されない通知」があります(画面はイメージです)