2013-10-30 74 views
5

我们目前正在实施推送通知(目前仅适用于IOS),并且我们正在计划使用Urban Airship。如果他们安装了我们的应用并启用了推送功能,我们希望向设备发送推送消息,如果没有,则发送短信。我们的用户为通知付费,因此我们希望尽可能确保他们总是收到推送消息或SMS消息。发送推送消息本身工作正常,但我很困惑如何跟踪我们实际上可以发送推送消息的人。使用Urban Airship跟踪活动用户的推送通知

据我所知,真正确定用户是否可以接收推送消息的唯一方法是在发送推送消息之前,对城市飞艇api额外呼叫以检查设备是否存在并且是活性。我宁愿不对每个推送消息进行2次api呼叫,因此另一种方法可以是在本地跟踪城市飞艇中的所有已注册设备,并且每小时左右更新一次该列表。然而,这意味着“有源设备列表”并不总是完全准确,我们必须自己跟踪所有注册的设备,这感觉就像重新实施城市飞艇的一部分。

有没有其他(更好)的方法来做到这一点?据我所知,当我向城市飞艇发送推送消息时,api总是返回,表示它已成功发送,无论设备是否处于活动状态,或者甚至存在。

我无法想象我是唯一有这个问题的人。有没有人有更好的方法来解决它,或者我坚持2我选择了自己的选择?

回答

5

城市飞艇股以下two options

在任何情况下,应用程序应该会妥善处理活动装置 令牌。我们建议开发者要么:

  1. 注册设备令牌每次打开应用程序,就像我们的示例应用程序确实
  2. 经常使用我们的反馈API的时候,在自己的数据库存储灭活设备令牌,并发送注册时设备令牌 再次变为活动状态。

如果您对城市飞艇额外的调用来检查,如果该设备存在并处于活动状态,即使在那时,“有源器件清单”未必完全准确,因为城市飞艇依赖于从定期更新Apple反馈服务:

Apple告诉我们该应用程序已通过我们定期检查的 反馈服务卸载。

还有,千万记得苹果公司已经表示对delivery of Push Notifications

重要:通知的交付是“尽力而为”,不能保证。它不打算将数据传递到您的应用程序,只是为了通知用户有新的可用数据。

+0

所以基本上没有真正的方法来让这项工作以一种很好的方式。这太糟糕了。 – Dennisch

+0

@Dennisch是的,我相信通知的传递是不能保证的。 –

相关问题