> 技术文档 > unipush推送离线消息点击事件_uniapp unipush 离线推送 小米 java

unipush推送离线消息点击事件_uniapp unipush 离线推送 小米 java

在uni-app中处理uniPush离线消息点击事件的完整实现方案如下:

一、基础监听配置

  1. 全局事件监听
    在App.vue的onLaunch生命周期中添加点击事件监听,需使用plus.push原生API‌28:

    javascriptCopy Code

    plus.push.addEventListener(\'click\', (msg) => { console.log(\'点击消息内容:\', msg); if(msg.payload) { uni.navigateTo({ url: JSON.parse(msg.payload).pagePath }); }});
  2. 厂商通道兼容
    Android需在manifest.json配置华为/小米等厂商参数,确保离线消息能触发系统级通知点击‌37。

二、关键处理逻辑

  1. payload格式规范
    服务端推送时需包含标准payload结构,建议使用JSON格式传递跳转路径‌1112:

    jsonCopy Code

    { \"title\": \"订单提醒\", \"content\": \"您有新订单\", \"payload\": \"{\\\"pagePath\\\":\\\"/pages/order/detail?id=123\\\"}\"}
  2. iOS特殊处理
    iOS平台需通过APNs证书下发消息,payload需符合苹果规范且包含click_type字段‌35。

三、完整代码示例

App.vue

export default { onLaunch() { // #ifdef APP-PLUS plus.push.addEventListener(\'click\', (msg) => { try { const payload = JSON.parse(msg.payload); if(payload.pagePath) { uni.navigateTo({ url: payload.pagePath }); } } catch(e) { console.error(\'payload解析失败\', e); } }); // #endif }}

已完成

此代码需配合自定义基座测试,正式发布需配置厂商通道证书‌610。

四、注意事项

  • Android Intent格式‌:vivo/OPPO等厂商要求payload包含完整的intent协议字符串‌39
  • 角标处理‌:iOS可通过badge字段设置应用角标数‌411
  • 权限检测‌:建议调用plus.android.requestPermissions检查通知权限‌612

具体厂商通道配置参考uniPush2.0官方文档‌