【发布时间】:2014-11-17 20:09:49
【问题描述】:
应用程序的用户必须能够通过按开/关按钮来启用/禁用远程通知。
应用在“didFinishLaunchingWithOptions”中注册远程通知。 当用户单击按钮禁用远程通知时,代码为
// Register for Push Notifications, if running iOS 8
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationType userNotificationTypes = UIUserNotificationTypeNone;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
else
{
// Register for Push Notifications before iOS 8
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeNone];
}
这行得通。远程通知已禁用!
但是当用户再次点击启用远程通知时
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
UIUserNotificationSettings * settingsAvailable = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
[application registerUserNotificationSettings:settingsAvailable];
[application registerForRemoteNotifications];
}
else
{
// Register for Push Notifications before iOS 8
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}
应用未注册任何类型(警报、徽章或声音)
一些建议?提前致谢。
【问题讨论】:
标签: ios objective-c xcode