宏天软件
宏天软件
  • 发布:2020-11-24 17:28
  • 更新:2021-01-11 15:28
  • 阅读:1224

uniapp unipush 'receive'事件会进入两次

分类:uni-app
plus.push.addEventListener('receive', function(msg) { plus.nativeUI.toast("这里同一条消息进入了两次:"+JSON.stringify(msg));},false);
2020-11-24 17:28 负责人:无 分享
已邀请:
DCloud_uniCloud_JSON

DCloud_uniCloud_JSON

是不是自己调用了创建本地消息的api

  • 宏天软件 (作者)

    是的,会进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

dasdd

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是数据已经读取过了,然后一直循环这个方法,我这样写是不是,代码有问题,需求是,语音循环播报。

该问题目前已经被锁定, 无法添加新回复