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

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

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

在此处输入图像描述

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

我目前的计划是这样的。

在此处输入图像描述

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

  2. 当cron作业找到一个打开的案例时,它会检索应该转到的卖家ID。 随之而来的是那个安装ID。

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

一个问题。 他们没有指定在其文档中传递安装ID的方法。

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

很确定这是可能的。 首先,您可以通过PFInstallation获取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指南 。

您可以使用如下的curl查询:

 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的一个安装。

我只是尝试并只在特定设备上获得推送消息:)