在我的应用程序中测试远程推送通知期间,我遇到了一些奇怪的行为:
即使我在设置应用中为我的应用程序选项关闭了“已启用通知”,我仍会收到通知。这是正常的吗?我的应用程序在禁用该选项后是否应取消订阅自动获取通知,或者是iOS的响应?或者我应该在注册远程通知时做些什么特别的事情?或者也许是“沙盒”通知的常态?
在iPhone 4上的iOS 5.1上测试。
答案 0 :(得分:3)
我认为,禁用通知的用户界面令人困惑。将“通知中心”切换为“关闭”与禁用通知不同。
你们都需要取消选择“警报风格”,“徽章应用程序图标”,“声音”和“在锁定屏幕中查看” - 所有这些都是单独的。
以下是我在运行时检查通知设置的代码:
UIRemoteNotificationType notificationSelection = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
BOOL sendMessage;
if (notificationSelection == UIRemoteNotificationTypeNone)
{
NSLog(@"Push Notifications : DISABLED (%0X)!", notificationSelection);
sendMessage = NO;
}
else
{
NSLog(@"Push Notifications : ENABLED (%0X) - hurrah! :-)", notificationSelection);
if (notificationSelection & UIRemoteNotificationTypeBadge)
{
NSLog (@"Push Notifications : Badge");
}
if (notificationSelection & UIRemoteNotificationTypeSound)
{
NSLog (@"Push Notifications : Sound");
}
if (notificationSelection & UIRemoteNotificationTypeAlert)
{
NSLog (@"Push Notifications : Alert");
}
if (notificationSelection & UIRemoteNotificationTypeNewsstandContentAvailability)
{
NSLog (@"Push Notifications : Newstand Content Availability");
}
}