i***@fjskec.com
i***@fjskec.com
  • 发布:2025-08-06 11:25
  • 更新:2025-08-14 15:08
  • 阅读:108

【报Bug】 uniapp接入unipush2.0 离线打包后,可以收到个​推消息(app在线状态)(通知栏消息),但是点击消息进不了push回调事件

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.75

手机系统: Android

手机系统版本号: Android 15

手机厂商: 华为

手机机型: 华为畅享60

页面类型: vue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
   // 设备推送  
    devicePush() {  
      // #ifdef APP-PLUS  
      plus.runtime.setBadgeNumber(0);  
      plus.push.addEventListener(  
        'click',  
         (res) => {  
          console.log('plus.push.addEventListener-click----', JSON.stringify(res))  
          uni.showToast({  
              title: 'click:' + JSON.stringify(res),  
              icon: 'none',  
          })  
          let path = `/pages/task/index`;  
            if (res.data.payload && res.data.payload.route) {  
              path = res.data.payload.route;  
            }  
            this.goPage(path);  
          },  
            false  
      );  
      plus.push.addEventListener(  
        'receive',  
         (res) => {  
          console.log('plus.push.addEventListener-receive----', JSON.stringify(res))  
          uni.showToast({  
              title: 'receive:' + JSON.stringify(res),  
              icon: 'none',  
          })  
          let path = `/pages/task/index`;  
          if (res.data.payload && res.data.payload.route) {  
            path = res.data.payload.route;  
          }  
          this.goPage(path);  
        },  
        false  
      );  
      uni.onPush(res => {  
        console.log('uni.onPush收到推送消息onPush:---', JSON.stringify(res))  
        uni.showToast({  
            title: '收到推送消息onPush:' + JSON.stringify(res),  
            icon: 'none',  
        })  
        if (res.type === 'receive') {  
          // 前台收到消息  
          console.log('应用在前台接收到推送:', res.data);  
        } else if (res.type === 'click') {  
          // 用户点击通知栏  
          console.log('用户点击了通知栏:', res.data);  
        }  
      });  
      uni.onPushMessage(res => {  
        console.log('uni.onPushMessage收到推送消息onPushMessage:---', JSON.stringify(res))  
      uni.showToast({  
          title: '收到推送消息onPushMessage:' + JSON.stringify(res),  
          icon: 'none',  
      })  
          let path = `/pages/task/index`;  
          if (res.data.payload && res.data.payload.route) {  
            path = res.data.payload.route;  
          }  
          this.goPage(path);  
        });  
      // #endif  
    },  

操作步骤:

uniapp离线打包后,本地资源放在安卓离线工程在线运行或者打包apk后,运行app,在前台或者切换到后台, 个推推送消息。手机收到通知栏信息,点击后打开app,没有进入回调事件

预期结果:

能够触发 plus.push.addEventListener事件和 uni.onPushMessage事件

实际结果:

没有触发监听事件

bug描述:

uniapp 接入了unipush2.0 推送。 离线打包后,可以收到个​推消息(有通知栏),但是点击消息进不了push回调事件。 使用hbuilderX在线调试是正常的。离线打包后后不正常。

2025-08-06 11:25 负责人:DCloud_Android_THB 分享
已邀请:
DCloud_Android_THB

DCloud_Android_THB

你是离线消息还是透传

  • i***@fjskec.com (作者)

    你好, 是透传,在线消息

    2025-08-12 13:40

  • DCloud_Android_THB

    回复 i***@fjskec.com: 透传 force_notification ?

    2025-08-12 15:20

  • i***@fjskec.com (作者)

    回复 DCloud_Android_THB: 有的,在云函数里面的推送方法有传参


    // 发送消息 最大一次推送数据为500

    async function sendMessage(obj) {

    const res = await uniPush.sendMessage({

    // "push_clientid": obj.cids, // 设备id,支持多个以数组的形式指定多个设备,如["cid-1","cid-2"],数组长度不大于1000

    "getui_alias": obj.deviceData.getuiAlias, // 个推自定义客户端别名,指定消息接收者。支持多个以数组的形式指定多个设备,如["getui_alias-1","getui_alias-2"],数组长度不大于1000

    "title": obj.deviceData.title, // 标题

    "content": obj.deviceData.content, // 内容

    "payload": obj.deviceData.payload, // 数据

    "force_notification": true, // 服务端推送 需要加这一句

    "request_id": obj.deviceData.requestId, //请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失

    "options": {

    // 额外选项,例如设置透传消息

    // 透传消息内容(可选),如果设置,则会在应用前台时直接收到此消息(触发receive事件)

    "transmission": {

    "transmission_type": true, // 是否启用透传

    "transmission_content": obj.deviceData.payload // 可以是字符串或对象(需JSON.stringify)

    }

    }

    })

    return res //一定要return回去

    }

    2025-08-13 10:34

  • DCloud_Android_THB

    回复 i***@fjskec.com: 麻烦发下appid,我看看你的配置

    2025-08-13 16:56

  • i***@fjskec.com (作者)

    回复 DCloud_Android_THB: "UNI80EA941" “UNI”前后分别有两个下划线“__”

    2025-08-13 17:44

  • DCloud_Android_THB

    回复 i***@fjskec.com: 你再打一次包,我这搜不到你的打包记录

    2025-08-14 11:29

  • i***@fjskec.com (作者)

    回复 DCloud_Android_THB: 好的。已打包,我打包方式为:发行-》 App-android/ios-本地打包

    2025-08-14 15:07

  • DCloud_Android_THB

    回复 i***@fjskec.com: 你得云打包啊,要不我怎么能在后台看到?

    2025-08-15 10:53

  • i***@fjskec.com (作者)

    回复 DCloud_Android_THB: 好的,已云打包

    2025-08-15 18:49

  • DCloud_Android_THB

    回复 i***@fjskec.com: 还是没查到, 你再打一次 im联系我也行

    2025-08-18 11:34

i***@fjskec.com

i***@fjskec.com (作者)

这个是appId截图

要回复问题请先登录注册