ios7 registerForRemoteNotificationTypes 没有提示询问用户权限

Posted

技术标签:

【中文标题】ios7 registerForRemoteNotificationTypes 没有提示询问用户权限【英文标题】:ios7 registerForRemoteNotificationTypes doesn't get prompted to ask the user for permission 【发布时间】:2015-03-13 16:15:05 【问题描述】:

当我在 AppDelegate 中设置通知时,尽管我重置了模拟器设置(我知道远程通知在模拟器中不起作用,但我没有带有 ios7 的设备来测试它,但我只是在 iOS8 下请求用户许可)很惊讶它没有要求允许远程通知)。

        if iOS8 
            println("ios 8")
            let userNotificationTypes: UIUserNotificationType = (UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound)
            let settings = UIUserNotificationSettings(forTypes: userNotificationTypes, categories: nil)
            application.registerUserNotificationSettings(settings)
            application.registerForRemoteNotifications()
         else 
            println("ios 7")
            let userNotificationTypes: UIRemoteNotificationType = (UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound)
        application.registerForRemoteNotificationTypes(userNotificationTypes)

        

这就是我检查 ios7 或 8 的方式:

private let iosVersion = NSString(string: Device.systemVersion).doubleValue
let iOS8 = iosVersion >= 8
let iOS7 = iosVersion >= 7 && iosVersion < 8

我也读过这个http://corinnekrych.blogspot.com.es/2014/07/how-to-support-push-notification-for.html

【问题讨论】:

【参考方案1】:

iOS 模拟器不支持推送通知。似乎只有在 iOS 8 之后才会显示此警报(这并不意味着通知适用于模拟器)。 See this SO question

所以你必须找到运行 iOS 7 的设备,但你的代码看起来不错。

【讨论】:

以上是关于ios7 registerForRemoteNotificationTypes 没有提示询问用户权限的主要内容,如果未能解决你的问题,请参考以下文章

iOS7状态栏问题

iOS7 的视图大小和位置

iOS7 和 Apple Watch

ios7之后的一些更改

iOS7隐藏状态栏

在ios7中绘图时出现延迟