在设置应用中禁用iOS推送通知后继续接收它们

时间:2012-09-06 11:46:51

标签: ios apple-push-notifications

在我的应用程序中测试远程推送通知期间,我遇到了一些奇怪的行为:

即使我在设置应用中为我的应用程序选项关闭了“已启用通知”,我仍会收到通知。这是正常的吗?我的应用程序在禁用该选项后是否应取消订阅自动获取通知,或者是iOS的响应?或者我应该在注册远程通知时做些什么特别的事情?或者也许是“沙盒”通知的常态?

在iPhone 4上的iOS 5.1上测试。

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");
    }
}