【发布时间】: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