解析 - 我可以向具有一个应用但不是另一个应用的设备发送推送通知吗?

时间:2014-09-09 03:13:37

标签: push-notification parse-platform apple-push-notifications

以下是这个场景:我刚刚开始使用Parse.com。我有成对的应用程序,Lite和Full。我想偶尔让Lite应用程序的用户知道Full app是否已被标记下来。但是,如果可能的话,我希望避免向已经安装了完整应用的用户发送此类消息,即使他们的设备上仍然安装了Lite应用。

从数据的角度来看,我认为当我注册远程通知时,我可以将[[UIDevice currentDevice] identifierForVendor]作为附加数据发送到Parse。如果我可以在一个巨大的存储桶中查询我的所有数据(来自两个应用程序),那么我可以过滤出与两个应用程序相关联的相同identityForVendor值的设备。 (在SQL语言中,我会在identifierForVendor上加​​入我的完整应用程序数据,并在连接端排除具有非空值的行。)

但是,当我转到Parse推送消息控制台时,似乎Push消息总是在给定应用程序的上下文中发送 - 因此您处于一个您无法看到的孤岛中或按其他应用的数据过滤。

这仅仅是Parse Web控制台的限制吗?我仍然搂着API,所以也许我可以在那里做到这一点?或者这是Parse本身的限制吗?

编辑:我看到我误解了" app的Parse概念。"它并不一定只涉及一个文字应用程序,但它似乎是一个逻辑分组的应用程序都适合在同一个伞下。我能够让我的Full和Lite测试应用程序在同一逻辑应用程序内分组时接收通知,并且我将identifierForVendor数据与Installation对象相关联。但我没有看到一种方法来执行上面描述的"左连接" -esque查询。这可能吗?

1 个答案:

答案 0 :(得分:0)

我正在尝试做类似的事情(在两个应用程序之间发送推送)。 首先,一个问题:按照你的说法逻辑分组你的两个应用程序,你是怎么做的......你在两个应用程序中使用相同的解析applicationID和clientKey吗?

其次,对于如何将推送仅发送到不同组的问题的潜在答案。这就是我要做的事情:

要仅向已安装Lite版本的用户发送推送,请确保当Lite注册推送Parse时,将其频道设置为Lite。然后使用云代码或Web控制台仅将推送发送到channel = Lite

要仅将推送发送到特定安装或一组安装,请确保在PFInstallation对象上保存一列,以便识别Lite与Full。然后,使用Cloud Code检索所有具有您想要设置的PFInstallation对象(您甚至可以过滤到特定的PFInstallation属性),并将这些PFInstallations发送到Parse push。这应该有效,因为(参见PFPush对云代码/ javascript的API参考),Push将其作为标识符的一组PFInstallation。