【问题标题】:Device token getting Nil设备令牌获得 Nil
【发布时间】:2016-03-06 05:32:06
【问题描述】:

我有一个奇怪的问题,我的一些用户正在为Apple Push Notification 返回空白(或空)设备令牌。它只发生在部分用户的身上,而不是所有用户的,

这是我的代码,

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {

   #if !TARGET_IPHONE_SIMULATOR

       [_globalKRData setPreferences:deviceToken withKey:kPushToken]; // Preferences 

       PFInstallation *currentInstallation = [PFInstallation currentInstallation];
       [currentInstallation setDeviceTokenFromData:deviceToken];
currentInstallation.channels = @[@"global"];
       [currentInstallation saveInBackground];

    #endif

}

如果设备是 Jail break 是否有可能这就是我得到 nil 设备令牌的原因?

更新

例如,第一次用户允许推送通知并且它可以正常工作,

现在用户进入设置并禁用来自设置的通知

然后我将无法获得设备令牌这很好,但问题是现在用户卸载应用程序,

然后在再次下载应用程序之后didRegisterForRemoteNotificationsWithDeviceToken 没有被调用所以我得到零设备令牌并且当我检查设置时它会显示通知

【问题讨论】:

  • 不,他们可能根本没有授予权限。
  • @HarikrishnanT 所以这意味着如果设备越狱,那么设备令牌不会生成对吗?
  • 如果您需要设备令牌,用户必须提供接收推送通知的权限。如果他们拒绝许可,将不会收到设备令牌。当您尝试从 defaultPreferences 访问它时,它将返回 null
  • @HarikrishnanT 是的,我知道这件事,但用户可能已经设置了通知但没有获得设备令牌
  • 您在配置推送通知中有临时证书吗?

标签: ios objective-c parse-platform apple-push-notifications ios9


【解决方案1】:

在 iOS8 之前我已经删除了我的应用程序,然后我关闭了 OFF 通知,然后我运行我的应用程序并没有调用注册,然后我再次进入设置发现Allow notification是ON,但是“didRegisterForRemoteNotification”没有接到电话,

然后我将“允许通知”设为OFF,然后再次将其ON,然后我来到我的应用程序,我找到了设备令牌,但之后它工作正常,但用户必须手动关闭它,然后他必须再次打开它,of course its a bug of apple,

它可以在 iOS 9

中正常工作

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多