Apple Push通知didRegisterForRemoteNotificationsWithDeviceToken未调用已注册的设备

时间:2015-03-06 14:21:08

标签: ios apple-push-notifications

我不得不更改APNS提供商,当然我为新提供商生成了新证书。

如果APNS注册的设备是Apple的新手

,事情进展顺利

问题发生在我从Apple的角度来看已经注册的设备,因为回调方法: - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

未被调用,我无法向新提供商注册令牌。

我正在寻找一个解决方案来重置Apple知道的所有令牌,这样每个设备都将作为新设备进行管理,最后调用didRegisterForRemoteNotificationsWithDeviceToken(前一个原始令牌并不重要)

有人可以告诉我这是否可行或如何解决问题?

由于

的Dario

1 个答案:

答案 0 :(得分:0)

这个问题与我的代码有关。 这个问题可以删除。 感谢

回复Sofie

嗨索菲, 这是一个非常古老的问题,我试着记住。

可能我们是在iOS8时间......当你读到的时候,我在我的代码中犯了一个错误。

当我收到来自Apple的令牌注册(didRegisterForRemoteNotificationsWithDevice)时,我使用类似于handleNewDeviceToken的函数将值存储在UsersDefaults中:deviceToken

在该功能中,为了避免无用的网络活动,我只是在收到的令牌与已经存储在UserDefaults中的令牌不同时调用了APN服务提供商 - 当时是UrbanAirShip(这是我的错误!)

出于不同的原因,我不得不将服务提供商从UrbanAirship更改为Parse。

检查正确的迁移我发现只有新设备能够在(新服务提供商)数据库中注册,但当然,在调查结束时,这是正常的,因为旧设备没有调用该服务提供商注册,因为存储在用户默认值中的令牌已经存在(因此已经在"旧"服务提供商数据库中注册)

实际上,函数didRegisterForRemoteNotificationsWithDevice当然只在启动应用程序时被调用...。

我删除了userDefaults的令牌比较,每次在服务提供商处注册令牌并重建" new"数据库中。

我希望已经清楚,当然我希望能帮到你。

的Dario

相关问题