如果用户允许本地通知,是否没有简单的测试方法?在我拒绝发送本地通知后,我在控制台中发现了警告.当相关事件发生时,它表示该应用程序尝试发送通知,即使用户不允许它.我想在尝试显示通知之前检查是否允许它.在我的情况下看评论,我该怎么做?
我的代码是:
- app = [UIApplication sharedApplication];
- -(void)showBackgroundNotification:(NSString *) message {
- //check if app is in background and check if local notifications are allowed.
- if (app.applicationState == UIApplicationStateBackground /*&& LocalNotificationsAreAllowed*/){
- UILocalNotification *note = [[UILocalNotification alloc]init];
- note.alertBody = message;
- note.fireDate = [NSDate dateWithTimeIntervalSinceNow:0.0];
- [app scheduleLocalNotification :note];
- }
- }
- UIUserNotificationSettings *settings;
- if ([app respondsToSelector:@selector(registerUserNotificationSettings:)])
- {
- settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeAlert|UIUserNotification TypeSound) categories:nil];
- [app registerUserNotificationSettings:settings];
- }
我不能使用设置对象?
编辑:我想我已经解决了.这似乎有效.
- -(void)showBackgroundNotification:(NSString *) message {
- if (app.applicationState == UIApplicationStateBackground && [app currentUserNotificationSettings].types != UIUserNotificationTypeNone){
- UILocalNotification *note = [[UILocalNotification alloc]init];
- note.alertBody = message;
- note.fireDate = [NSDate dateWithTimeIntervalSinceNow:0.0];
- [app scheduleLocalNotification :note];
- }
- }