V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qfdk
V2EX  ›  React

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

  •  
  •   qfdk ·
    qfdk · 2021-07-07 14:54:23 +08:00 · 1299 次点击
    这是一个创建于 1233 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近研究手机 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" }
      ]
    }
    

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

    qfdk
        1
    qfdk  
    OP
       2021-07-08 16:27:41 +08:00
    是不是只有我有这个问题还是各位老哥没有用 expo 推送的?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   982 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.