切换别名后,依然会收到切换前别名的推送

jpush
标签: #<Tag:0x00007f83e8ab5ec8>

(Yanma Y) #1

版本信息:
“react-native”: “0.57.1”;
“jcore-react-native”: “^1.3.2”;
“jpush-react-native”: “^2.5.1”;
描述:

  1. 设置别名(test1)
  2. 执行JPushModule.stopPush()停止推送
  3. 在"开发者服务平台“发送推送消息给别名为test1的设备
  4. 通过JPushModule.setAlias(‘test2’,()=>{})切换别名后,执行JPushModule.resumePush()恢复推送
  5. 等待一段时间后依然会收到test1的推送消息

#2

在 2 的基础上操作 4切换别名,是不可能切换成功的。

请注意查看设置别名的回调值


(Yanma Y) #3

嗯嗯,确实,是我描述的顺序不太对,4应该是先执行JPushModule.resumePush()恢复推送,然后 通过JPushModule.setAlias(‘test2’,()=>{})切换别名,这样切换后依然会收到切换前那个别名的推送消息


#4

stoppush 是本地的操作,只是断开了链接,你在 2 后操作 3 ,那么 resumepush 后就是会收到这条消息,他本身就属于这个别名的目标之一

除非你推送消息的时候设置离线保存时间很短,短于你 stoppush -resumepush 的间隔


(Yanma Y) #5

也就是说只要推送消息的时候这个别名存在,在离线保存时间范围内,不管别名有没有删除,当客户端恢复推送的时候还是会接收到消息的;进一步说,别名也就是个“别名”,服务端和客户端通信的时候还是通过类似regID这样的信息来关联的,没看源码,不知道这样理解合适不