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

请问你们会为了更新 iOS deviceToken 单独设计一个接口么?

  •  
  •   Phishion · 2021-05-05 20:27:45 +08:00 · 1375 次点击
    这是一个创建于 1291 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我发现获取 deviceToken 必须联网才行,既然要联网,我想了 2 个方案

    1 )先等待获取 deviceToken 再将这个字段写到注册接口中,好处是不用单独写一个接口,缺点是,苹果万一出 bug 没给这个东西,我就凉了

    2 )直接设计一个接口,拿到这个数据后再请求服务器,缺点是毕竟还是多请求了一遍网络

    请问你们是怎么设计这块儿东西的呢?这一块儿还有哪些坑?求大佬告知。

    7 条回复    2021-05-06 12:03:40 +08:00
    icyalala
        1
    icyalala  
       2021-05-05 20:53:06 +08:00   ❤️ 2
    当然是啥时候拿到 Token 啥时候发。。
    Push 权限随时会开启或关闭,注册账户也会注销和切换,这些都要处理好。
    Phishion
        2
    Phishion  
    OP
       2021-05-05 21:11:08 +08:00
    @icyalala 那这个有持续更新的必要么?每次都访问一遍接口是不是有点浪费?比如我把它持久化,如果发现数值不一样再提交接口可好?
    GTim
        3
    GTim  
       2021-05-05 22:02:50 +08:00
    deviceToken 不和用户挂钩,只和 client_id 挂钩..,第二就是变化了就保存。
    Phishion
        4
    Phishion  
    OP
       2021-05-05 23:24:18 +08:00
    @GTim 您好,我没法获取唯一的 client_id 呀,苹果每次删除重装 APP 这些标识符都会变化,我不跟用户绑定该如何推送呢?
    GTim
        5
    GTim  
       2021-05-06 08:41:42 +08:00   ❤️ 1
    @Phishion 每次重装就重新来一个啊。反正客户端生成,如果删除重装,deviceToken 也会变啊
    oxromantic
        6
    oxromantic  
       2021-05-06 11:47:04 +08:00   ❤️ 2
    不要考虑更新逻辑优化,如果仅仅是冷启动时更新一个 client id 对应的 push token 就产生性能问题,那么服务端程序员可以拉出去祭天了;之所以让每次都更新,是增加一定的容错率,万一服务端自己有 bug,导致 token 被清空,也能及时恢复过来,我相信服务端肯定希望你每次启动不管变没变都要更新
    Phishion
        7
    Phishion  
    OP
       2021-05-06 12:03:40 +08:00
    @oxromantic
    @GTim
    @icyalala

    好的,谢谢大佬
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:01 · PVG 22:01 · LAX 06:01 · JFK 09:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.