首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果registerForRemoteNotificationTypes:在iOS 8.0及更高版本中不受支持,则为iOS构建

如果registerForRemoteNotificationTypes:在iOS 8.0及更高版本中不受支持,则为iOS构建
EN

Stack Overflow用户
提问于 2014-08-06 04:10:55
回答 7查看 22.4K关注 0票数 18

如果设备注册通知的方式发生了重大变化,我们不能再使用registerForRemoteNotificationTypes:,如果我们不能使用Xcode6测试版,我们如何构建一个新版本的应用程序来支持iOS 8?我们是否必须在Xcode6GM版本发布的当天构建并提交,才能让我们的用户继续获得推送通知?

EN

回答 7

Stack Overflow用户

发布于 2014-09-19 22:19:12

iOS 8更改了通知注册。因此,您需要检查设备版本,然后您需要注册通知设置。(请检查this链接。)我在Xcode6上尝试了这段代码,它对我很有效。

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
        {
            [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
            [[UIApplication sharedApplication] registerForRemoteNotifications];
        }
        else
        {
            [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
             (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
        }

     return YES;
}
票数 50
EN

Stack Overflow用户

发布于 2014-09-23 23:54:29

您可能希望考虑使用respondsToSelector,而不是检查系统版本:

代码语言:javascript
复制
if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]){
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications];
}
else{
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
     (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
}
票数 17
EN

Stack Overflow用户

发布于 2014-09-19 15:19:43

代码语言:javascript
复制
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications];
#else
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
#endif
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25147454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档