iOS8のUILocalNotificationに関して修正

以前iOS8でのUILocalNotificationに関する記事を書いたかと思いますが,この記事に修正点があったので再度話題にします.


iOS8でUILocalNotificationの通知を受け取る - PartyIX



iOS8から,LocalNotificationであっても,registerUserNotificationSettingsを呼ばないと,LocalNotificationの登録権限がないところは変更ありません.

変更箇所は,バックグラウンド実行から復帰した際の通知の受信です.

上記記事では,handleActionWithIdentifierを使用すると記述しましたが,どうやら最新のiOS8.1では,起動時の受信と同じく,didReceiveLocalNotificationで取得できます.


なので,

func application(
		 application: UIApplication,
		 didReceiveLocalNotification notification: UILocalNotification
		 ) {

    if (application.applicationState == UIApplicationState.Active) {
        // 起動中のとき
        var alert = UIAlertView()
        alert.title = "Message"
        alert.message = notification.alertBody
        alert.addButtonWithTitle(notification.alertAction)
        alert.show()
    } else {
        // ここでバックグラウンドから復帰したときの処理
    }
}


みたいな感じで,applicationStateによって振り分けてみました.


handleActionWithIdentifierは必要なくなっちゃいましたね…….



ともあれ,過去のObjective-Cであった記述の通り,didReceiveLocalNotificationで全部受け取れているようなので,今までと同じ仕様になっているようです.