Den*_*sch 5 push-notification urbanairship.com ios
我们目前正在实施推送通知(目前仅适用于IOS),我们正计划使用Urban Airship.如果他们安装了我们的应用并启用了推送,我们希望向设备发送推送消息,如果没有,则发送短信.我们的用户为通知付费,因此我们希望尽可能确保他们始终获得推送消息或短信.发送推送消息本身工作正常,但我很困惑如何跟踪我们实际上可以发送推送消息的人.
据我所知,真正确定用户是否可以接收推送消息的唯一方法是,在发送推送消息之前,另外调用城市飞艇api以检查设备是否存在且处于活动状态.我宁愿不为每个推送消息做2个api呼叫,因此可以选择在本地跟踪城市飞艇中的所有已注册设备,并且每小时左右更新一次该列表.然而,这意味着"有源设备列表"并不总是完全准确,我们必须自己跟踪所有已注册的设备,这就像重新实现城市飞艇的一部分一样.
有没有其他(更好)的方法来做到这一点?据我所知,当我向城市飞艇发送推送消息时,无论设备是否处于活动状态,或者是否存在,api始终会返回成功发送的消息.
我无法想象我是唯一有这个问题的人.有没有人有更好的解决方法,或者我坚持自己想出的2个选项?
Urban Airship分享以下两个选项:
在任何情况下,应用程序都应该期望并正确处理非活动设备令牌.我们建议开发人员:
- 每次打开应用程序时注册设备令牌,就像我们的示例应用程序一样
- 经常使用我们的反馈API,灭活装置凭证存储在自己的数据库,并发送注册时,该设备令牌再次变得活跃.
如果您另外打电话给Urban Airship检查设备是否存在并且是否处于活动状态,那么"有效设备列表"可能并不总是完全准确,因为Urban Airship依赖于Apple Feedback Service的定期更新:
Apple告诉我们已通过反馈服务卸载了该应用程序,我们会定期检查该服务.
重要提示:发送通知是"尽力而为",不能保证.它不是为了向您的应用提供数据,而是为了通知用户有新数据可用.