【Objective-C】iOS8 でプッシュ・ローカル通知の許可アラート表示
iOS8以降の端末でのプッシュ・ローカル通知に関するメモです。
・通知の許可アラートを表示するための方法
・通知を許可しているかどうか確認するための方法
の2点です。
(環境 xcode 6.1: iOS 8.1)
- 通知の許可アラートを表示するための方法
// AppDelegate.m の - (BOOL)application:didFinishLaunchingWithOptions: メソッドで... // iOS8以降はこちらでアラート表示 if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes: UIUserNotificationTypeBadge| UIUserNotificationTypeAlert| UIUserNotificationTypeSound categories:nil]; [application registerUserNotificationSettings:settings]; [application registerForRemoteNotifications]; // iOS8以前はこちらでアラート表示 } else { [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge| UIRemoteNotificationTypeAlert| UIRemoteNotificationTypeSound]; }
- 通知を許可しているかどうか確認するための方法
NSUInteger types; if ([[[UIDevice currentDevice] systemVersion] >= 8.0) { types = [[[UIApplication sharedApplication] currentUserNotificationSettings] types]; }else{ types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; } // 許可している場合... if (types != UIRemoteNotificationTypeNone) { // 何らかの処理 }
以上です。
※参考
http://qiita.com/caesar_cat/items/08018ab22bea27b55443
http://stackoverflow.com/questions/26091875/how-to-update-code-using-enabledremotenotificationtypes-because-it-is-not-suppo