离线消息uni-app uni.onPushMessage接收不到返回结果

离线消息uni-app uni.onPushMessage接收不到返回结果

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:win10

HBuilderX类型:正式

HBuilderX版本号:4.66

手机系统:Android

手机系统版本号:Android 9.0

手机厂商:OPPO

手机机型:OPPO A8

页面类型:vue

vue版本:vue2

打包方式:云端

示例代码:

export default {
    onLaunch: function() {
        //客户端API unipush2.0获取客户端唯一的推送标识  
        uni.getPushClientId({  
            success: (res) => {  
                console.log('push2-->获取客户端唯一的推送标识成功:', res.cid);  
            },  
            fail(err) {  
                console.log('push2-->获取客户端唯一的推送标识失败:', err)  
            }  
        })  

        uni.onPushMessage((res) => {  
            console.log("收到推送消息:", res) //监听推送消息  
            uni.navigateTo({  
                url: "/pagesB/throughTrain/login",  
            });  
        })  
    },  
    onShow: function() {  
        console.log("App Show");  
    },  
    onHide: function() {  

    },  
};

操作步骤:

根据文档操作。

预期结果:

通过厂商推送实现app收到消息,点击消息根据推送来的消息内容跳转到指定页面。

实际结果:

离线时能收到消息,但是uni.onPushMessage接收不到推送来的消息内容


更多关于离线消息uni-app uni.onPushMessage接收不到返回结果的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

你先根据文档中安卓离线收不到消息自查下 https://ask.dcloud.net.cn/article/40291

更多关于离线消息uni-app uni.onPushMessage接收不到返回结果的实战教程也可以访问 https://www.itying.com/category-93-b0.html


能收到消息,是当点击这个离线消息进入app的时候uni.onPushMessage里边的页面不跳转

回复 9***@qq.com: 看看你的云函数,然后你的uni.onPushMessage是在app.vue里的吧

解决了吗?楼主,我也遇到同样的问题了

在OPPO等Android厂商设备上,离线推送消息的接收处理需要注意几个关键点:

  1. 厂商通道限制:OPPO等厂商通道对离线推送的消息格式有限制,部分自定义字段可能无法透传到客户端。建议检查推送时是否使用了厂商通道要求的特定格式。

  2. 生命周期问题uni.onPushMessage 监听需要在应用启动时注册。如果应用完全退出(非后台运行),点击通知栏消息会先启动应用,此时需要确保监听在 onLaunch 中尽早注册。

  3. 冷启动处理:应用完全退出时点击通知,推送消息会通过启动参数传递。建议在 onLaunchoptions 中检查是否有推送参数:

onLaunch: function(options) {
    if (options.payload) {
        console.log('冷启动推送消息:', options.payload)
        this.handlePushMsg(options.payload)
    }
    // 注册消息监听
    uni.onPushMessage((res) => {
        this.handlePushMsg(res)
    })
}
回到顶部