使用unregisterForRemoteNotifications后,registerusernotificationsettings不起作用
我想在我的应用程序中使用推送通知的disabler和enabler。 我使用这样的代码。 另外我激活- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
通知- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
with sender.isOn
from sender.isOn
if (sender.isOn) { self.notificationLabel.text = @"Notifications enabled"; UIUserNotificationType allNotificationTypes = (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge); UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { self.notificationLabel.text = @"Notifications disabled"; [[UIApplication sharedApplication] unregisterForRemoteNotifications]; }
但是在第一次使用unregisterForRemoteNotifications
我的应用程序没有使用unregisterForRemoteNotifications
初始化通知。 我不明白我做错了什么。
解决scheme:卸载应用程序并删除该代码!
我花了好几个小时和3个破碎的testing设备跟踪这一个下来..!
这条线很糟糕 :
[[UIApplication sharedApplication] unregisterForRemoteNotifications] //DON'T DO IT!
它使应用程序处于不稳定的状态,调用registerForRemoteNotifications
不再有效。
这条线同样令人讨厌 :
[[UIApplication sharedApplication] registerForRemoteNotifications] //CALL ME ONCE!
每次运行您的应用程序只能调用一次。 如果你碰巧叫了两次,通知将会神秘地破坏。