uni-app unipush2.0离线消息点击后打开APP无法监听到点击事件

uni-app unipush2.0离线消息点击后打开APP无法监听到点击事件

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 windows11
HBuilderX 正式
HBuilderX版本号 4.87
手机系统 Android
手机系统版本号 Android 13
手机厂商 小米
手机机型 小米10S
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

<script>
export default {
data() {
return {  
    }
},  
onLaunch() {  
    uni.onPushMessage((res) => {  
        console.log("收到推送消息:",res) //监听推送消息  

        if(res.type == 'receive'){  
            uni.createPushMessage({  
                title: '测试的创建通知标题',  
                content: '消息显示的内容,在系统通知中心中显示的文本内容。',  
                complete(com){  
                    console.log('创建通知栏', com);  
                }  
            })  
        }else if(res.type == 'click'){  
            console.log('用户通过点击消息进入APP', res);  
        }  
    })  

    uni.getPushClientId({  
        success(res) {  
            console.log('客户端推送标识cid:', res.cid);  
        },  
        fail(err) {  
            console.log('获取pushID失败', err);  
        }  
    })  

    console.log('App Launch')  
},  
onShow() {},  
methods: {},  
};
</script>

操作步骤:

  • APP.vue中onLaunch生命周期执行uni.onPushMessage()

预期结果:

  • 小米点击系统消息,打开APP,并执行uni.onPushMessage回调

实际结果:

  • 小米点击系统消息,打开APP,未执行uni.onPushMessage回调

bug描述:

推送离线消息以后,小米可以正常收到离线消息,点击消息也可以正常打开APP,但是打开后监听不到点击事件,走不了回调。在IOS中一切正常,打开APP以后回调正常执行


更多关于uni-app unipush2.0离线消息点击后打开APP无法监听到点击事件的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该bug反馈内容基本完整但存在关键缺失:描述了小米设备点击离线通知后无法触发uni.onPushMessage的click事件,提供了环境信息(HBuilderX 4.87/Android 13/Vue2)和代码示例,但未说明是否进行云打包及manifest.json中推送配置情况。复现步骤过于简略,未包含厂商通道配置验证环节。
根据知识库分析,此问题大概率非框架bug:

知识库明确指出【Android应用进入后台后点击通知无法拉起App,需检查设备"后台弹出界面"权限】(小米/OPPO/vivo常见),路径为:设置-应用管理-权限管理-后台弹出界面
离线推送必须经云打包才能生效,标准HBuilder运行基座不支持
小米厂商通道需单独配置回执,否则影响消息传递

用户可能遗漏两点:①未开启小米设备后台弹出权限 ②未通过云打包生成正式包测试。建议先检查设备权限设置,确认云打包流程,并参考离线推送说明验证配置完整性。若仍异常,需提供云打包后的manifest.json推送配置片段进一步排查。 内容为 AI 生成,仅供参考

更多关于uni-app unipush2.0离线消息点击后打开APP无法监听到点击事件的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你的描述,这是一个典型的Android平台下UniPush2.0离线消息点击事件监听问题。以下是关键分析和解决方案:

核心问题: 在Android平台,当APP完全退出(进程被杀)时,点击离线推送消息启动APP,uni.onPushMessage的监听可能尚未建立,导致无法捕获click事件。

解决方案:

  1. 使用plus.push.addEventListener替代(推荐)onLaunch中同时使用原生plus事件监听,确保能捕获启动时的点击事件:
    onLaunch() {
        // 原有uni.onPushMessage保留
        uni.onPushMessage((res) => {
            console.log("uni收到推送消息:", res);
        });
        
        // 添加plus事件监听
        if (plus.push) {
            plus.push.addEventListener('click', (msg) => {
                console.log('plus监听到点击事件:', msg);
                // 处理点击逻辑
            }, false);
            
            plus.push.addEventListener('receive', (msg) => {
                console.log('plus监收到消息:', msg);
            }, false);
        }
    }
回到顶部