我发现获取 deviceToken 必须联网才行,既然要联网,我想了 2 个方案
1 )先等待获取 deviceToken 再将这个字段写到注册接口中,好处是不用单独写一个接口,缺点是,苹果万一出 bug 没给这个东西,我就凉了
2 )直接设计一个接口,拿到这个数据后再请求服务器,缺点是毕竟还是多请求了一遍网络
请问你们是怎么设计这块儿东西的呢?这一块儿还有哪些坑?求大佬告知。
1
icyalala 2021-05-05 20:53:06 +08:00 2
当然是啥时候拿到 Token 啥时候发。。
Push 权限随时会开启或关闭,注册账户也会注销和切换,这些都要处理好。 |
2
Phishion OP @icyalala 那这个有持续更新的必要么?每次都访问一遍接口是不是有点浪费?比如我把它持久化,如果发现数值不一样再提交接口可好?
|
3
GTim 2021-05-05 22:02:50 +08:00
deviceToken 不和用户挂钩,只和 client_id 挂钩..,第二就是变化了就保存。
|
4
Phishion OP @GTim 您好,我没法获取唯一的 client_id 呀,苹果每次删除重装 APP 这些标识符都会变化,我不跟用户绑定该如何推送呢?
|
6
oxromantic 2021-05-06 11:47:04 +08:00 2
不要考虑更新逻辑优化,如果仅仅是冷启动时更新一个 client id 对应的 push token 就产生性能问题,那么服务端程序员可以拉出去祭天了;之所以让每次都更新,是增加一定的容错率,万一服务端自己有 bug,导致 token 被清空,也能及时恢复过来,我相信服务端肯定希望你每次启动不管变没变都要更新
|
7
Phishion OP |