uni-app unipush1.0 安卓手机离线可收通知但点击无click监听 在线可正常收通知及监听click

uni-app unipush1.0 安卓手机离线可收通知但点击无click监听 在线可正常收通知及监听click

产品分类:

uniapp/App

PC开发环境操作系统:

Windows

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

windows10

HBuilderX类型:

正式

HBuilderX版本号:

3.8.4

手机系统:

Android

手机系统版本号:

Android 12

手机厂商:

小米

手机机型:

小米11

页面类型:

vue

vue版本:

vue2

打包方式:

离线

项目创建方式:

HBuilderX

bug描述:

intent详细参数:intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;package=com.copm.universal.owner;component=com.copm.universal.owner/io.dcloud.PandoraEntry;S.gttask=;S.UP-OL-SU=true;S.title=%E8%AE%A2%E5%8D%95%E9%80%9A%E7%9F%A5;S.content=%E6%9D%8E%E5%84%BF%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%B8%8B%E5%8D%95%E6%88%90%E5%8A%9F%E4%BA%86;S.payload=test;end


更多关于uni-app unipush1.0 安卓手机离线可收通知但点击无click监听 在线可正常收通知及监听click的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

有没有大佬帮忙处理下这个问题,帮忙看看,已经好多个月了。

更多关于uni-app unipush1.0 安卓手机离线可收通知但点击无click监听 在线可正常收通知及监听click的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 UniApp 的 UniPush 1.0 时,如果安卓手机在离线状态下可以收到通知,但点击通知时无法触发 click 监听,而在线状态下可以正常接收通知并触发 click 监听,可能是由于以下几个原因导致的:

1. 离线通知的处理机制

在离线状态下,通知是由手机系统的推送服务(如华为、小米、OPPO等厂商的推送服务)直接处理的,而不是由 UniApp 应用本身处理的。因此,当用户点击离线通知时,系统会直接启动应用,但可能不会触发 UniApp 中的 click 监听。

2. 推送消息的配置

在 UniPush 1.0 中,推送消息的配置可能没有正确处理离线状态下的点击事件。推送消息的 click_actionintent 可能没有正确配置,导致点击通知时无法触发相应的监听。

3. 应用的生命周期

在离线状态下,应用可能没有完全启动或初始化,导致 click 监听无法被触发。在线状态下,应用已经初始化,因此可以正常处理点击事件。

解决方案

1. 检查推送消息的配置

确保在发送推送消息时,正确配置了 click_actionintent。例如,可以指定一个特定的页面或动作,以便在用户点击通知时触发相应的处理逻辑。

2. 在 App.vue 中添加全局监听

App.vue 中添加全局的 onLaunchonShow 监听,以便在应用启动或从后台唤醒时处理通知点击事件。

export default {
  onLaunch(options) {
    // 处理应用启动时的逻辑
    this.handlePushNotification(options);
  },
  onShow(options) {
    // 处理应用从后台唤醒时的逻辑
    this.handlePushNotification(options);
  },
  methods: {
    handlePushNotification(options) {
      if (options && options.query && options.query.pushMessage) {
        // 处理推送消息的逻辑
        const pushMessage = options.query.pushMessage;
        console.log('收到推送消息:', pushMessage);
        // 根据 pushMessage 执行相应的操作
      }
    }
  }
}

3. 使用 plus.push 监听点击事件

在 UniApp 中,可以使用 plus.push 来监听推送消息的点击事件。确保在应用启动时正确初始化 plus.push 并添加事件监听。

export default {
  onLaunch() {
    this.initPush();
  },
  methods: {
    initPush() {
      const push = plus.push;
      if (push) {
        push.addEventListener('click', (msg) => {
          console.log('点击推送消息:', msg);
          // 处理推送消息的逻辑
        }, false);
      }
    }
  }
}
回到顶部