找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

532

积分

0

好友

70

主题
发表于 21 小时前 | 查看: 2| 回复: 0

在移动应用中,推送通知是提升用户活跃度与留存率的关键能力。无论是新消息提醒、活动通知还是系统公告,它都能让你的应用持续为用户提供服务。

UniApp 支持的推送方案对比

推送类型 支持端 特点 推荐指数
UniPush 2.0 App 官方推荐、稳定、功能全 ⭐⭐⭐⭐⭐
UniCloud 云函数消息 App + 小程序 可在服务端后台主动触发 ⭐⭐⭐⭐⭐
微信小程序订阅消息 微信小程序 限制较多,需用户订阅 ⭐⭐⭐
支付宝小程序消息 支付宝小程序 限制更多 ⭐⭐
H5 Web Push H5(支持环境) 需 HTTPS 支持 ⭐⭐⭐

UniPush 2.0 作为官方方案,配置相对简单,开发者只需在 UniApp 开发者后台根据指引完成相关厂商密钥的申请与配置即可使用。

UniPush配置示意

App 推送全流程实现

1. 获取客户端设备标识

推送的第一步是获取设备的唯一标识(CID),并将其与您的用户系统进行绑定。

uni.getPushClientId({
  success: (res) => {
    // 设备唯一标识 CID
    console.log('ClientID:', res.cid);
    // 将此 cid 与当前登录用户进行关联,存储至您的服务器或[数据库](https://yunpan.plus/f/23-1)
  },
  fail(err) {
    console.log('获取ClientID失败:', err)
  }
})
2. 监听并处理推送消息

在应用启动时(如 App.vueonLaunch 生命周期中),监听推送消息的到达和点击事件。

onLaunch() {
  // 监听推送消息
  uni.onPushMessage((res) => {
    console.log('收到推送消息:', res);
    // 判断消息类型,例如用户点击了通知
    if (res.type === 'click') {
      // 解析自定义数据 payload,并跳转到对应页面
      uni.navigateTo({ url: '/pages/message/detail?id=' + res.data.id });
    }
  });
}

使用云函数主动触发推送

通过云函数,您可以在服务端任意业务逻辑中主动向指定设备发送推送,这为后端主动通知提供了强大支持。这通常构建在Node.js环境中。

常规推送云函数示例

以下是一个完整的云函数示例,用于接收参数并向指定设备发送推送。

'use strict';
/**
 * 推送消息云函数
 * @param {Object} event - 参数对象
 * @param {String} event.token   - 目标设备的 push_token
 * @param {String} event.title   - 推送标题
 * @param {String} event.content - 推送内容
 * @param {Object} event.payload - 自定义数据,供客户端点击时使用
 * @param {Object} context - 上下文
 */
exports.main = async (event, context) => {
  // 获取推送管理器实例
  const push = uniCloud.getPushManager({ appId: "__UNI__xxxxxxx" }); // 替换为你的 AppID

  const { token, title, content, payload } = event;

  // 调用 UniPush 发送接口
  const res = await push.sendMessage({
    "push_token": token,
    "title": title,
    "content": content,
    "payload": payload || {}, // 自定义数据
    "force_notification": true // 确保以通知形式显示
  });

  // 返回推送结果
  return res;
};
平台特定配置(以小米为例)

对于某些安卓厂商通道(如小米),可能需要进行额外配置以确保离线推送等功能正常。

const pushManager = uniCloud.getPushManager({ "appId": "__UNI__DEMO123" });
return await pushManager.sendMessage({
  title: "消息标题",
  content: "消息内容",
  options: {
    android: {
      "XM": { // 小米通道特定配置
        "/extra.sound_uri": "小米后台申请的自定义 sound_url 地址",
        "/extra.channel_id": "小米后台申请的通知类别id",
        "/extra.app_version": "v3.3.0" // 可选:按应用版本筛选
      }
    }
  }
});

至此,您已经掌握了在 UniApp 中使用 UniPush 2.0 实现从客户端监听、设备注册到服务端(云函数)主动触发推送的核心流程。基于Vue的跨端开发框架结合云函数,为消息推送提供了高效、可靠的解决方案。




上一篇:Windows x64 PE文件异常表深度解析:SEH机制与逆向分析实战
下一篇:TRAE SOLO实战:一夜重构AI视频面试模拟系统的架构设计与技术选型
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-8 23:42 , Processed in 1.107705 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表