推送技术是向你的应用程序的用户提供通知的最快方式之一。要接收这些通知,用户不需要执行任何操作,它们是在服务器端发起的,并直接出现在移动设备屏幕上的通知栏。在本课中,我们将了解如何在基于AppMaster 平台的应用程序中实现推送通知。
Send Push 块
为了发送推送通知。 Send Push块被用来对应于目标设备的操作系统(iOS或 Android).
获取Push Token 和Bundle ID
要执行发送,你应该至少指定两个参数。 Push Token和 IOS (Android) Bundle ID.因此,值得从准备部分开始,弄清楚如何获得这些参数。
默认情况下,每个项目的数据库包含一个 Mobile Instance模型,它被链接到 User模型,并包含所需的字段。 push_token和 bundle_id.
让我们为移动应用程序创建一个单独的业务流程,这将形成完整的 Mobile Instance模型。为了获得一个推送令牌,使用 Get Push Token块。
下一步是获取设备的信息。而在这里,根据操作系统的不同,将需要不同的块。因此,为了确定操作系统,你必须使用 Platform Switch块。
根据结果,相应的 IOS Device Info或 Android Device Info块被使用。从这里,你可以得到有关该设备的各种信息,但在我们的例子中,只需要找出 Bundle ID.
收集了所有的数据后,你可以形成一个 Mobile Instance模型,指出它属于哪个操作系统,并把它作为业务流程的一个输出参数传递。
记录关于用户移动设备的信息
下一步是创建一个后端业务流程,用于连接生成的 Mobile Instance与一个特定的用户,并记录到数据库中。这个业务流程需要做到以下几点。
- 使用块找出当前的用户。 Auth: Get current user块。
- 展开生成的内容 Mobile Instance模型的内容。
- 重新组装模型,并使用块向其添加一个用户连接。 Make Mobile Instance块将用户连接添加到模型中。
- 使用该 DB: Create Mobile Instance块并将数据保存在数据库中。
在 POST /Mobile Instance/端点中,你可以用刚刚创建的业务流程替换标准业务流程。
准备工作的最后阶段是决定到底什么时候值得将用户的设备信息写入数据库。合理的解决方案是在应用程序中执行授权时做这件事。要做到这一点,在 Set Auth Token块之后,必须在移动应用程序的用户授权过程中添加两个新的块,这些块都是之前创建的业务流程。第一个块接收并生成必要的信息,第二个块创建与用户的连接并写入数据库。
发送推送通知
准备部分已经完成,你可以开始发送推送通知。要做到这一点,我们将创建一个后台业务流程。想象一下,我们的任务将是向我们应用程序的所有用户发送一个通知。我们将只向装有Android 操作系统的设备发送,而不是向所有用户的设备发送,而只是向最后使用的设备发送。
让我们从输入参数开始。有必要传输通知本身的文本。它由三部分组成:信息的正文 (body),它的标题(title),和副标题(subtitle).
接下来,你需要找到该应用程序的所有用户。要做到这一点,使用 Search User块并设置必要的参数。
- _With = Mobile Instances(你不仅需要得到用户的信息,还需要得到与之相关的移动设备的信息)
- Limit = -1(默认情况下,查询会返回25条记录,指定"-1 "是为了取消这个限制并获得所有用户)
- _mobile_instances_os = Android(根据任务的条件,我们只对Android 设备感兴趣)
对于生成的用户数组,你需要运行一个循环的操作(For each loop块)
对于每个用户从 Expand User块,你需要获得有关移动设备的信息(Mobile Instances).我们需要只向一个设备发送通知,所以我们在 index = 0在 Array Element块中,同时检查数组是否至少包含一个元素(毕竟,一个用户只能有一个iOS 设备)。要做到这一点,我们检查元素的有效性,将有效的索引值传递给 If-Else块,并继续循环,只有当该值是 true.
如果一切正常,并且找到了关于用户设备的信息,那么你需要使用 Expand Mobile Instance块,并将必要的值传递给 Send Push (Android)块。
请注意,在开发和测试一个应用程序时,在 Developer App,你必须设置 Developer Mode = True.
你也可以使用 TTL (Time to live)选项。它定义了发送通知的时间,单位是秒。如果通知不能立即发送,例如,如果用户暂时不在范围内,那么将在规定的时间内重复发送尝试。
在周期结束并向所有可能的用户发送通知时,业务流程的工作也就完成了。
附加参数
另外,值得讨论的是发送块的附加参数。
- Push ID
- Push Class
- Data
它们不影响发送通知的事实或其内容,但可以在用户端处理通知时使用。移动应用程序有特殊的触发器,当收到推送通知或点击时,这些触发器会被触发。
推送通知的触发器包含上述附加文本参数的数据。作为一个例子,我们可以给出一个最简单的过程,当触发器被点击时,将在屏幕上显示一个进一步的通知,其中包含在 Data参数中传递的信息。
触发器的另一个流行的用例是收集关于通知交付的信息。例如,它们可以向服务器发送一条消息,说明一个Push通知确实已经送达,还可以收集统计数据,计算通知的点击次数。