将推送通知发送到目标设备

时间:2015-11-27 12:50:45

标签: android ios parse-platform push-notification cron

我有一个为在线商店创建的移动应用程序(iOS和Android)。此特定版本的应用仅适用于卖家。其中有一个部分用作帮助台。基本上买家可以打开门票,向卖家发送消息等。所以我想做的是每当买家这样做时,卖家应该在他的设备上收到推送通知。

保留买家,卖家和其他所有内容记录的数据库在单独的服务器上运行。我可以通过某种方式来定期检查买家开设的新案例。我希望使用Parse来处理推送通知。

enter image description here

现在我陷入困境的是如何将我的数据库服务器与Parse相关联。

我目前的计划是这样的。

enter image description here

  1. 该应用已启动且卖家首次登录。 Parse SDK将设备注册到其服务器。除此之外,使用单独的Web服务,我希望保存由Parse生成的唯一ID(在research之后,我发现合适的唯一ID称为安装ID )并且已登录卖家的ID也在我的数据库中。

  2. 当cron作业找到一个打开的案例时,它会检索应该转到的卖家ID。连同它,即安装ID。

  3. 我的服务器发出HTTP请求,使用Parse的REST API向具有该安装ID的设备发布推送通知。

  4. 一个问题。他们没有指定在docs中传递安装ID的方法。

    我想知道这是否可行?或者,如果有更好的方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

非常确定这是可能的。首先,您可以通过installationId获取PFInstallation

PFInstallation.currentInstallation().installationId // swift

[PFInstallation currentInstallation].installationId  // Objective-C

不知道android但可能类似

ParseInstallation.getCurrentInstallation().getInstallationId() // Java

https://parse.com/docs/osx/api/Classes/PFInstallation.html https://parse.com/docs/android/api/com/parse/ParseInstallation.html

发送推送

然后你实际上必须发送推送:看看“使用高级定位”下的Parse REST guide

您可以使用如下的卷曲查询:

curl -X POST -H "X-Parse-Application-Id: %appId%" -H "X-Parse-REST-API-Key: %api key%" -H "Content-Type: application/json" -d '{ "where": { "installationId": "%installationId%" }, "data": { "alert": "The Giants scored a run! The score is now 2-2." } }' https://api.parse.com/1/push

这里的重要部分是{ "where": { "installationId": "%installationId%" },它将推送消息仅发送到与查询匹配的安装 - 恰好是具有给定ID的一个安装。

我刚试过并且只在特定设备上获得推送消息:)