设备令牌未在 ios 8.1 中生成

Posted

技术标签:

【中文标题】设备令牌未在 ios 8.1 中生成【英文标题】:Device Token not generating in ios 8.1 【发布时间】:2015-01-28 05:16:58 【问题描述】:

我已经使用以下方法实现了推送通知生成。

    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)];

设备令牌正常生成。但是当关闭声音和徽章应用程序图标并将警报样式设置为无时,(设置 -> 应用程序名称 -> 通知)设备令牌不会生成。此问题仅在 ios 8 设备中出现。在 iOS 7 设备中它可以正常工作。任何人都可以为此提供解决方案。

【问题讨论】:

如果你禁用通知如何获取设备令牌兄弟 没有启用设备令牌。请看图片。 那么,使用方法注册的时候是不是也会出现错误呢?我可能会发现不推荐使用的方法混淆了应用程序的注册过程。请确保(如果您想支持 iOS7 及更早版本)正确注册:if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) @Lepidopteron 当声音和徽章应用程序图标开关打开时它可以正常工作 【参考方案1】:

这更像是iOS7的一个bug。通知有 3 种方式向用户提示:声音/徽章/警报。 如果您禁用声音和徽章,并且如果您将警报样式设置为无(即禁用警报),则无法显示通知。

我认为这是电池优化:如果无法通知用户,为什么要将他注册到远程通知?

【讨论】:

以上是关于设备令牌未在 ios 8.1 中生成的主要内容,如果未能解决你的问题,请参考以下文章

图像未在 iPad Air、iPad 3 等较新的 iPad 设备上显示,但在模拟器 iOS 8.1 上显示

离子推送 - 未在设备上获取令牌

应用程序未在设备设置下列出 --> iOS 7 通知

Android 8.1(API 27) - 重启后键盘未在Kiosk模式应用中显示

在 node.js 中生成的 JWT(JSON Web Token) 未在 java 中验证

API.Swift 文件未在 Apollo GraphQl Swift 中生成