iOS8 UILocalNotification 增加啟動授權
好久沒接入UILocalNotification了,今天接入時發現沒有許可權啟動通知。
錯誤如下:
Attempting to schedule a local notification {fire date = (null), time zone = (null), repeat interval =0, repeat count = UILocalNotificationInfiniteRepeatCount, next firea badge number but haven't received permission from the user to badgethe application
看了下API,原來iOS8增加了啟動授權,需要使用者同意下才能註冊通知。
添加如下代碼:
- (void)RegistNotificationSettings{ float sysVersion=[[UIDevice currentDevice]systemVersion].floatValue; if (sysVersion>=8.0) { UIUserNotificationType type = UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound; UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:type categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:setting]; }}
你可以在註冊通知之前調用,也可以在app啟動時候調用
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{ // todo ... [self RegistNotificationSettings]; return YES;}
注意:只要使用者對app授權過了,以後即使刪除再次安裝,也預設為授權了。