RN 使用 expo 如何保证信息送达 ?

2021-07-07 14:54:23 +08:00
 qfdk

最近研究手机 APP,因为不懂原生开发,选择了 expo.io 来处理,后面丰富的库给开发提供了帮助。还有很多贴心的小组件。

碰到一个推送的问题,expo 需要我们第三方服务器,里面会有用户的设备 token 跟用户 id,来推送不同信息到他们 expo 的服务器。expo 的服务器负责信息分发到 firebase 和 APNs 服务。 我们信息通过后端到他们服务器,会有一个叫做 push tikect 的东西,但是他的返回不会包括我们用户 id (我们没有办法在推送信息中添加), 而是他们生成的 id 。https://docs.expo.io/push-notifications/sending-notifications/ 官方文档 然后根据这个 tikect 集合来轮训 消息是否到达 firebase 或者 APNs 服务。

因为他们的结果返回只包括他们自己的 id,没有办法知道,这个 id 或者这条信息跟本地设备的关系。支付宝回调会返回支付宝的处理 id 跟我们自己加入的 id 。 不知道有没有老哥做过这样的业务。 根据文档提到的 “The requests above will respond with a JSON object with two optional fields, data and errors. data will contain an array of push tickets in the same order in which the messages were sent (or one push ticket object, if you send a single message to a single recipient).” 返回的 数据,跟推送的数据顺序一样,难道要自己重写个算法来确定 消息推送是否成功么?

Push tickets 返回的例子,id 是 expo 生成的。。

{
  "data": [
    { "status": "ok", "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" },
    { "status": "ok", "id": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" },
    { "status": "ok", "id": "ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ" },
    { "status": "ok", "id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" }
  ]
}

我的情景是,如果信息没有送达,就不会继续推送。

1162 次点击
所在节点    React
1 条回复
qfdk
2021-07-08 16:27:41 +08:00
是不是只有我有这个问题还是各位老哥没有用 expo 推送的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/788088

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX