使用Urban Airship跟踪活动用户的推送通知

时间:2013-10-30 14:20:44

标签: ios push-notification urbanairship.com

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

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

还有其他(更好)的方法吗?据我所知,当我向城市飞艇发送推送消息时,无论设备是否处于活动状态,或者它是否存在,api始终会返回成功发送的消息。

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

1 个答案:

答案 0 :(得分:5)

Urban Airship分享以下two options

  

在任何情况下,应用程序都应该期望并处理非活动设备   令牌正确。我们建议开发人员:

     
      
  1. 每次打开应用程序时注册设备令牌,就像我们的示例应用程序
  2. 一样   
  3. 定期使用我们的反馈API,在您自己的数据库中存储已停用的设备令牌,并在设备令牌时发送注册   再次变得活跃。
  4.   

如果您再拨打Urban Airship来检查设备是否存在且处于活动状态,那么“有效设备列表”可能并不总是完全准确,因为Urban Airship依赖于Apple Feedback Service的定期更新: / p>

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

另外,请记住Apple对delivery of Push Notifications所说的内容:

  

重要:发送通知是“尽力而为”,无法保证。它不是为了向您的应用提供数据,而是为了通知用户有新数据可用。