检索已获取的推送通知令牌

时间:2011-12-12 12:40:36

标签: ios push-notification token

我们正在开发一款可以接收推送通知的应用。在我们的测试设备上,当系统提示我们发送通知时,我们点击了确定,但未能存储我们收到的令牌。 (我们对服务器的请求未得到妥善处理,令牌未被我们存储在其他地方)。

我们已尝试以下方法再次触发函数didRegisterForRemoteNotificationsWithDeviceToken(无效):

  • 完全删除该应用并重新安装
  • 在iPhone设置中关闭我们应用的通知

然而,我们不能让它再次“提示”我们,并且APN开发服务器似乎已经注册了所以我假设这就是为什么didRegisterForRemoteNotificationsWithDeviceToken不会再次触发。

最后我们无法获得新令牌,我不知道如何检索已注册的令牌。有谁知道如何检索已注册的令牌?

2 个答案:

答案 0 :(得分:7)

  1. 如果你每次启动应用程序时调用registerForRemoteNotificationTypes:UIApplication的方法,应用程序:didRegisterForRemoteNotificationsWithDeviceToken:delegate方法也会每次调用。首次注册时,iOS会询问用户是否需要接收通知,iOS会将Apple Notification Service连接到注册并获取设备令牌。之后,registerForRemoteNotificationTypes:方法调用既不会询问用户也不会连接APN,iOS会立即使用已注册的令牌调用委托方法。

  2. 如果您希望应用程序启动再次询问用户,请调用unregisterForRemoteNotifications,然后再次调用registerForRemoteNotificationTypes:方法。

  3. 相关的一些详细信息:iOS Application Client Side Device Token Management With Apple Push Notification

答案 1 :(得分:0)

我发现当应用程序完全关闭并再次启动时,应用程序将始终调用didRegisterForRemoteTrigger,这将为您提供已注册的令牌。我不确定为什么当我第一次尝试恢复令牌时它没有调用此方法,但这似乎是解决方案。