我应该如何将推送通知仅发送到活动设备?

问题描述:

我有一个Rails后端(和前端)的iOS应用程序。我正在使用Parse推送通知。我应该如何将推送通知仅发送到活动设备?

我想找出最好的方式来发送推送通知,将收到;也就是说,我想避免它们发送到:

谁只能使用Web应用程序,并没有iOS应用
  • 用户谁的iOS应用,但然后卸载它
    • 用户

    解析推送API的工作方式是我可以在某个频道上广播通知,任何正在收听该频道的设备都将收到通知。因此,我打算为每个用户制作单独的频道。

    很显然,我将需要储存某种信息,关于谁是运行在iOS应用程序的服务器端。我很好奇,有没有人有解决这样的问题的经验,并能提供任何智慧。谢谢!

  • 解析已存储关于谁在运行iOS和Android应用程序的信息。检查数据浏览器,有一个带有deviceType字段的安装表。

    让iOS应用程序注册一个唯一的(每个用户)频道。如果您只在用户频道上发送推送通知,则只会将其发送给安装了iOS应用的用户。

    对于拥有iOS应用程序但已卸载它的用户,您可以做的不多。 Apple没有提供应用程序在卸载之前运行任何代码的方法,因此您无法使用Parse取消注册设备。我不确定Parse是否会这样做,但Urban Airship会轮询APNS服务器,并删除在一定天数后卸载该应用程序的设备。