【问题标题】:Push Notification Device Token推送通知设备令牌
【发布时间】:2014-01-21 18:02:40
【问题描述】:

我有一个实时应用。在实现推送通知程序的苹果商店中。众所周知,我与服务器通信以发送和保存设备令牌。

我的服务器正在为某些设备(请求)正确接收设备令牌,并且还为某些其他设备接收空值。

这怎么可能?!

【问题讨论】:

  • 可能对于某些设备,注册失败,而您的应用没有检测到此失败并向您的服务器发送一个空的设备令牌。您应该发布相关的应用程序代码。
  • 能否列出注册失败的原因?
  • 可能是暂时的网络问题(可能是您的应用尝试注册APNS时设备断开了连接)。
  • 问题比单纯的网络问题更常见。 APNs 注册时的网络问题,而不是与我的服务器通信时出现的问题!
  • 嘿@hasan83 我也面临同样的问题,现在没有获得一些设备令牌已经实现了所有代表。那你找到解决办法了吗??

标签: ios apple-push-notifications devicetoken


【解决方案1】:

那么您的代码中存在错误,设备永远不会生成空令牌,或者您未能实现以下委托:

- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err

如果此委托被调用,那么您可以/应该实施重试算法,重试几次以重新注册 APN 令牌。

【讨论】:

  • 我的应用程序会在每次用户登录时重试注册设备。但这似乎不是问题。我会检查的。但是,问题出现的次数不止几次。
  • 这不是我的意思 - 当您调用 registerForRemoteNotificationTypes: 时,设备可能无法为您生成 APN 令牌。您必须实现 didFailToRegisterForRemoteNotificationsWithError 委托来确定是否是这种情况。如果是,则调用 registerForRemoteNotificationTypes:,必要时再调用一次,必要时再调用一次。这就是我所说的重试算法。也许你可以立即再试一次,如果也失败了,然后等待几秒钟再试一次,如果失败等待 30 秒再试一次,等等。
  • 这是我们的客户端设备。我们曾经向他发送带有不允许推送通知的配置文件的应用程序的开发版本。在他安装应用程序时不知何故。从商店应用程序继续使用安装在设备上的配置文件!?解释?
  • 还有,这个问题我现在该怎么办?
  • 当我们使用 Ad-Hoc 分发测试应用程序时,我的应用程序也面临同样的问题,即既不是应用程序获取 APNS 的设备令牌,也不是方法 didFailToRegisterForRemoteNotificationsWithErro 在某些设备上被调用。请帮帮我。
猜你喜欢
  • 2010-11-23
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
相关资源
最近更新 更多