之前用h5+写的APP,在发送透传消息的时候,payload咋写都行,现在换了uniapp,发现一个坑人的地方。
第一个坑:
同样是发送透传消息,
payload格式必须是:{title:标题,content:内容,payload:{t:1}}
透传数据必须带TITLE才能正常接收到,否则就算显示发送成功了,客户端也无法接收到消息,走receive也没用。
而H5+的随便写都能收到。
第二个坑:
发送通知消息,在里面选附加消息,此时发送的透传数据不需要加TITLE发送后,客户端也能接收成功!
第三个坑:
用个推V2版,发送透传消息,无论加不加TITLE,只要是JSON格式都能收到。
所以问题来了,咱们能不能把unipush后台推送的透传数据payload的格式改成统一的?或者咋写都行的方式?
随便我把payload写成字符串或啥的都能接收到?
2 个回复
DCloud_Android_DQQ
已与开发者沟通确认。
1 消息有正常接收。
2 透传消息格式问题
unipush的推送协议 与 个推sdk v1版本一致。 如果要自动弹出通知消息,需要按照 title content等固定文本配置,否则需要手动。
个推v2版本不需要按照此要求设置。 稍后unipush 会考虑升级个推v2.
DCloud_Android_DQQ
先说第一个坑。我没看懂。
你贴一段可以复现问题的内容 或者操作步骤。 我尝试复现一下
有问 (作者)
就是在Uni推送后台,我创建透传消息,如果payload里不加title和content字段,我的APP就收不到消息,虽然后台显示发出了也下发了,但我还是收不到消息,不能通过监听receive创建本地消息,监听无效。
但是我在uni推送后台创建通知消息,里面改成附加消息,即使附加消息里不加title字段,我的APP也能通过监听receive创建本地消息。
所以这个就是格式没有统一,有的必须加title和content有的不需要加。
但是我用个推V2SDK直接发送消息,即使payload里不加title和content也能通过监听receive创建本地消息。
代码就是receive的监听和透传的监听代码,和DEMO里的一致,代码没有问题,测试是uni推送后台发送通知消息和透传消息,以及个推V2 SDK独立推送消息,会因为payload字段不统一造成有的渠道收不到消息。
在以前用H5+做的APP,我在unipush推送后台,即使把payload字段=2,3,3这种字符串形式,一样能推送成功,个推旧版SDK也可以,这个是统一的。就是uniapp的推送格式没有统一。
2021-04-13 15:54
DCloud_Android_DQQ
回复 有问: 你发一下 有问题的消息体。 我试一下。 就是你说的 包含payload的json。 你加我qq 643833712
2021-04-14 14:39