我吃柠檬
我吃柠檬
  • 发布:2019-04-27 10:48
  • 更新:2021-05-13 10:05
  • 阅读:6018

plus.push.addEventListener('click')点击不执行

分类:uni-app

uni-app的app项目,使用html5+的plus.push.addEventListener('click') 方法监听点击事件不执行,但是点击会执行plus.push.addEventListener('receive')方法,receive不是应用从推送服务器接收到推送消息事件吗,怎么会执行点击事件
https://www.html5plus.org/doc/zh_cn/push.html#plus.push.addEventListener

2019-04-27 10:48 负责人:DCloud_Android_DQQ 分享
已邀请:

最佳回复

9***@qq.com

9***@qq.com

我终于知道为什么我的click监听不到了,原来是因为我离线基座集成的是aps-igexin-release.aar,要集成unipush的aps-unipush-release.aar

4***@qq.com

4***@qq.com

我总结的
//1.在线
// 1.1安卓
// 1.1.1 服务端推送为透传消息,符合标准格式,所以进入通知中心,点击则触发click
// 1.1.2 服务端推送为透传消息,不符合标准格式,不会进入通知中心,receive会接收到消息
// 1.2 IOS
// 1.2.1 IOS在线会进入receive,不会进入click,手动创建本地消息(iOS平台创建本地消息也会触发监听的"receive"事件)
// 1.2.2 IOS点击手动创建的本地消息也会出发 click事件
//2.不在线
// 2.1 安卓不在线收不到任何消息
// 2.1 IOS 不在线会收到APNS系统推送,点击通知栏则会进入click

u***@qq.com

u***@qq.com

请问你解决了吗?我也是这个问题

4***@qq.com

4***@qq.com

一样 不知道怎么回事

1***@qq.com

1***@qq.com

我也碰到这个问题,请问解决了吗

c***@ccfish.net

c***@ccfish.net

连着三个版本都是这个问题。不过我这儿今天更新到最新版后,突然就好使了

  • 4***@qq.com

    我也更新了 10.24号的 还是这样啊?

    2019-11-14 15:56

  • 1***@qq.com

    你更新的是哪个版本

    2020-01-04 11:57

  • 1***@qq.com

    共享一下呗

    2020-01-04 11:58

j***@xgjgas.com

j***@xgjgas.com

我也遇到这个问题了怎么处理啊

9***@qq.com

9***@qq.com

HBuilder X 2.8.13 版本还有这个问题,请问怎么解决

9***@qq.com

9***@qq.com

安卓端:
收到推送的时候receive监听有回调,点击通知的时候receive监听也回调了,全程click监听都没有调用到
由于没上应用市场,所以推送服务暂时没走厂商通道

            /* 安卓、iOS */  
            handlePush: function() {  
                try {  
                    plus.runtime.setBadgeNumber(0);  
                    if (plus.os.name == 'iOS') { //iOS处理  
                        var GeTuiSdk = plus.ios.importClass('GeTuiSdk');  
                        GeTuiSdk.resetBadge();  
                    }  
                } catch (e) {  
                    plus.runtime.setBadgeNumber(0);  
                    console.log('清除角标异常');  
                }  

                //监听系统通知栏消息点击事件   
                plus.push.addEventListener('click', (message) => {  
                    this.onClickPushItem(message);  
                }, false);  

                //监听接收透传消息事件   
                plus.push.addEventListener('receive', (message) => {  
                    if (plus.os.name == 'iOS') { //iOS处理  
                        plus.runtime.setBadgeNumber(0);  
                    } else {  
                        //安卓端不处理消息数据  
                        // this.newsConfirm(message);  
                        plus.runtime.setBadgeNumber(0);  
                    }  
                }, false);  
            },
DCloud_Android_DQQ

DCloud_Android_DQQ

你好。

首先,我尝试复现这个问题,但是在我这里是正常的。
hbx版本: 2.9.7
Android手机:

测试代码

其次。
关于你遇到的问题,你需要具体拆解一下。问题出现在哪个环节。
是真的click没有回调,还是这行代码执行出错了。

 plus.runtime.setBadgeNumber(0);  
  • 9***@qq.com

    你好,

    尝试复现

    我这边用你的代码尝试一下

    2020-11-09 09:41

  • 9***@qq.com

    你好,我使用你提供的代码依然无法执行click回调

    我使用的是离线打包的方式,参考的是 Android平台离线打包推送插件配置

    不知道你那边能否提供一下demo

    2020-11-10 16:09

  • 9***@qq.com

    2020-11-16 17:51:53.211 18803-18935/com.tslm I/console: [LOG]推送信息 click message = {"UUID":"androidPushMsg134621604","title":"XXXX","appid":"UNI4854B5E","content":"哈哈哈","payload":"{\"title\":\"XXXX\",\"content\":\"哈哈哈\"}"} at App.vue:93


    2020-11-16 17:51:53.225 18803-18935/com.tslm I/console: [LOG]推送信息 getAllMessage msg = {"UUID":"androidPushMsg74491384","title":"XXXX","appid":"UNI4854B5E","content":"哈哈哈","payload":"{\"content\":\"哈哈哈\",\"createTime\":1605520302755,\"isRead\":0,\"memberId\":1477,\"messageType\":28,\"sendTime\":1605520302755,\"senderId\":544,\"senderName\":\"wo叫天然呆\",\"tenantId\":2}"} at App.vue:97


    2020-11-16 17:51:53.226 18803-18935/com.tslm I/console: [LOG]推送信息 getAllMessage msg = {"UUID":"androidPushMsg87544514","title":"XXXX","appid":"UNI4854B5E","content":"哈哈哈","payload":"{\"content\":\"哈哈哈\",\"createTime\":1605520302755,\"isRead\":0,\"memberId\":1477,\"messageType\":28,\"sendTime\":1605520302755,\"senderId\":544,\"senderName\":\"wo叫天然呆\",\"tenantId\":2}"} at App.vue:97


    2020-11-16 17:51:53.250 18803-18935/com.tslm I/console: [LOG]推送信息 receive message = {"UUID":"androidPushMsg87544514","title":"xxxx","appid":"UNI4854B5E","content":"哈哈哈","payload":"{\"content\":\"哈哈哈\",\"createTime\":1605520302755,\"isRead\":0,\"memberId\":1477,\"messageType\":28,\"sendTime\":1605520302755,\"senderId\":544,\"senderName\":\"wo叫天然呆\",\"tenantId\":2}"} at App.vue:104


    点击通知的时候先调用了click的回调,然后msg里面的payload数据丢失了,我通过plus.push.getAllMessage()获取到消息列表,发现里面有2条消息,这个也是很奇怪,然后它还会再次调用到receive的回调,这正常么?

    2020-11-16 17:59

2***@qq.com

2***@qq.com

你解决这问题了么

  • 浙江小牛寻宝

    plus.runtime.setBadgeNumber(0); 就是这个代码影响了 注释掉就好了

    2021-07-16 17:22

要回复问题请先登录注册