使用 Swift 2 将不允许 iOS 8 设备注册推送通知

Posted

技术标签:

【中文标题】使用 Swift 2 将不允许 iOS 8 设备注册推送通知【英文标题】:Using Swift 2 won't allow iOS 8 devices to Register for Push Notifications 【发布时间】:2015-11-11 05:42:58 【问题描述】:

我正在使用 Xcode 7 和 Parse 为 ios 配置推送通知。通知在运行 iOS 9 的设备上运行良好。

但是当在 iOS 8 设备上运行应用程序时,我遇到了问题。我无法获得警报视图,用户可以在其中选择“允许来自 App X 的通知”

但是,当用户选择推送通知并且设备正在使用有效的设备令牌成功注册安装对象时,设备令牌注册调用被成功调用。通知也会发送到设备。

如果我进入“设置”->“通知”->“我的应用”并打开或关闭通知,通知仍在发送中并没有什么区别。

这是我用来注册通知的代码:

let settings = UIUserNotificationSettings(forTypes: UIUserNotificationType([.Alert, .Badge, .Sound]), categories: nil)
    application.registerUserNotificationSettings(settings)
    application.registerForRemoteNotifications()

【问题讨论】:

【参考方案1】:

在 *** 上找到了解决方案...通知注册仅在运行版本低于 iOS 9 的设备上发送一次。

这里的另一个用户回答...

“启用推送的应用程序第一次注册推送通知时,iOS 会询问用户是否希望接收该应用程序的通知。一旦用户对此警报做出响应,除非设备恢复或该应用程序已卸载至少一天。”

“如果你想模拟你的应用程序的第一次运行,你可以让应用程序卸载一天。你可以通过将系统时钟提前一天或更长时间来实现后者而无需实际等待一天,转完全关闭设备,然后重新打开设备。”

参考链接:

Push Notification ON or OFF Checking in iOS

https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG42

【讨论】:

以上是关于使用 Swift 2 将不允许 iOS 8 设备注册推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Swift IOS 8 设计元素未在设备上显示

在Swift中旋转设备时iOS 8 uitableviewcell高度发生变化

使用 swift 3 Xcode 8.2.1 在 iOS 上运行预构建的可执行文件

问题 XCode 8,Swift 2.3 存档版本在 IOS 9.2.1 -> IOS 9.0 上启动时崩溃

Realm Swift 2.0:“不允许操作”- 仅在设备上

我如何通过 swift 2.3 项目支持 iOS 版本 10.3