[iPhone] APNs プッシュ通知、リモート通知受信のケース分け

プロバイダーからのプッシュ通知をアプリのステータスによって取得できるようにします

Swift 3.0.2
Xcode 8.2.1

 

リモート通知受信のケース分け

  1. Client App から端末に APNs にSSL接続させ deviceToken を取得
  2. Client App が Provider に deviceToken を送出
  3. Provider がその deviceToken を使って特定端末に通知を送る
  4. Client App リモート通知受信のケース分け

アプリスのテータスによる受信を3つに分けてみます

  1. AppがBackgroundにいる
  2. Backgroundから通知をタップしてApp起動
  3. AppがForegroundにいる

 

この1のケースは前回のテストで確認しましたが、アプリとしては特別することはありません。その他のケースでは、
 

Backgroundから通知をタップしてApp起動

 
基本的にはbackgroundで受信の通知を受けますが、そのときにユーザーが通知をタップしてアプリを起動させると、以下のコードで受け取ることができます。
AppDelegate.swift

 

AppがForegroundにいる

 
アプリが起動中に通知を受け取ったことをアプリに知らせます。
AppDelegate.swift

 
以上をまとめて、ViewControllerにAlertを出すようにしてみました。
AppDelegate.swift

 
ViewController.swift

 
Backgroundから通知をタップしてApp起動
 

 
AppがForegroundにいるケース
 

 
Development から Distribution への変更、開発から配布・製品に変更するのは同じような手順ですが、故に混同しやすいので注意が必要です。
 

  1. Client App から端末に APNs にSSL接続させ deviceToken を取得
  2. Client App が Provider に deviceToken を送出
  3. Provider がその deviceToken を使って特定端末に通知を送る
  4. Client App リモート通知受信のケース分け

ページのトップへ戻る

シェアする

  • このエントリーをはてなブックマークに追加

フォローする