プッシュ通知が届いた時のあれこれを調べた
ちょっと前にiOSでプッシュ通知周りの実装をしていて自分の理解が間違っていたのでメモ
プッシュ通知を受け取るメソッド
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
application.applicationStateについて
フォアグラウンドで起動中にプッシュ通知を受け取った場合
UIApplicationStateActive
バックグラウンドで起動中にプッシュ通知を受け取った場合
UIApplicationStateBackground
完全に落ちている状態でプッシュ通知を受け取った場合
メソッドはコールされない(恐らく検知不可)
プッシュ通知をクリックした時
UIApplicationStateInactive
完全に落ちている状態からプッシュ通知で起動した場合
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
の中で下記のようにuserInfoが取得できるのでそこでハンドルする
NSDictionary *userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];