Push受信時の処理を実装する
最終更新日:2015-11-30
ここでは、APNsからPush通知を受け取った時の処理をどのように実装するか紹介します。
アプリが起動していない時
アプリが起動していない時は、自動でNotificationが表示されます。ユーザーがそれをタップしてアプリを起動した場合、application:didFinishLaunchingWithOptions
のoptions
に、UIApplicationLaunchOptionsRemoteNotificationKey
というキーでPushの内容が渡されます。
class AppDelegate: UIResponder, UIApplicationDelegate {
// 中略
var pushDic : [NSObject: AnyObject]!
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// 型は[NSObject: AnyObject];
let dic = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? [NSObject: AnyObject];
if dic != nil {
self.pushDic = dic!
}
return true
}
}
アプリが起動している場合(バックグラウンドにいる時を含む)
アプリが起動している場合は、Notificationは表示されず、そのままapplication:didReceiveRemoteNotification
が呼ばれます。引数の内容は上記コードのdic
と同じものです。
class AppDelegate: UIResponder, UIApplicationDelegate {
// 中略
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
NSLog("\(userInfo)")
}
}
NSNotificationCenter
を使って内容を他のオブジェクトに通知するとよいでしょう。