plus.push.addEventListener('receive', function(msg) { plus.nativeUI.toast("这里同一条消息进入了两次:"+JSON.stringify(msg));},false);

宏天软件
- 发布:2020-11-24 17:28
- 更新:2021-01-11 15:28
- 阅读:1364
uniapp unipush 'receive'事件会进入两次
分类:uni-app

dasdd - 31232321
你好,
uniapp unipush 'receive'事件
//这是创建本地语音播报的api
import Voice from '@/js_sdk/QuShe-baiduYY/QS-baiduyy/QS-baiduyy.js'
export default {
onLaunch: function() {
// 个推消息推送监听
console.log('App Launch')
console.log("测试语音播报=====================")
var t2 = setInterval(function() {
plus.push.addEventListener('receive', function(message) {
console.log(message)
console.log("播放消息.............");
Voice(message.content);
})
},15000)
}
}
这个t2 定时器,为什么不是每隔15秒后播报,而是一直在播报消息,为什么,我搜一下资料,plus.push是数据已经读取过了,然后一直循环这个方法,我这样写是不是,代码有问题,需求是,语音循环播报。
宏天软件 (作者)
是的,会进receive 事件2次,两次的消息内容是一样的
2020-11-24 18:22
DCloud_uniCloud_JSON
回复 宏天软件: 根据经验,估计你是接收到消息的时候系统自动创建了一个,然后你有有一个api生动创建一个。观察一下两次的json详细内容理论上还是有区别的。发现区别后自己用逻辑判断一下
2020-11-24 18:30
宏天软件 (作者)
回复 DCloud_uniCloud_JSON: 刚看了下,两个完全一样的。。。
2020-11-24 18:34
宏天软件 (作者)
回复 DCloud_uniCloud_JSON: 但是在receive里面如果不创建的话,消息栏就不会产生消息
2020-11-24 18:35
DCloud_uniCloud_JSON
回复 宏天软件: 请提供完整示例代码
2020-11-24 18:40
宏天软件 (作者)
回复 DCloud_uniCloud_JSON: 解决了,发现是vue实例化了2个,感谢支持~~
2020-11-24 19:01