更新的iOS应用程序使用旧应用程序中的通知设置

时间:2015-03-24 12:42:30

标签: ios ios8 push-notification

我最近将iOS应用程序版本1.0更新为2.0版,推送通知无法按预期工作。

在版本1.0中,我要求用户允许我需要设置应用程序图标徽章值的UIUserNotificationTypeBadge类型的通知。但是,我只在本地设置徽章值,因此没有涉及的远程通知。

在2.0版本中,我现在想使用远程通知来通知用户某些事件。因此,在AppDelegate中,我注册了UIUserNotificationSettings的所有可用类型:

if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
    {
        // iOS 8 Notifications
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound) categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    }
    else
    {
        // iOS < 8 Notifications
        UIRemoteNotificationType types = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound;
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:types];
    }

我在2.0版中遇到的问题是我在代理-(void)application:didRegisterUserNotificationSettings:中获得的notificationSettings设置为app version 1.0中的旧设置。 (我只得到UIUserNotificationsTypeBadge

在2.0版中也没有任何提示要求用户提供通知权限。而奇怪的是,在设置中选择了通知样式横幅。 (见下图)

我还发现,为应用类型切换通知的打开和关闭会覆盖旧应用中的设置,我会在-(void)application:didRegisterUserNotificationSettings: - &gt;中获得预期的用户通知设置。 UIUserNotificationTypeBadge|UIUserNotificationTypeAlert|UIUserNotificationTypeSound

Notification Settings of the app

是否有人遇到同样的问题,并找到了一个解决方案,如何以编程方式覆盖旧的通知设置,而无需在设置中手动切换通知开启和关闭?

任何帮助都将受到高度赞赏!

谢谢!

0 个答案:

没有答案