跳到主要内容

uniPush2.0推送

快速接入指南

一、开通uniPush2.0

1.实名认证

登录DCloud开发者中心,通过实名认证

2.进入UniPush控制台
  • HBuilderX中打开项目的manifest.json文件
  • 导航在“App模块配置” → 项的“Push(消息推送)” → “UniPush”下点击配置 或者申请开通。
3.配置应用信息

在UniPush开通界面配置以下信息:

  • Android包名
  • Android应用签名
  • iOS Bundle Id 点击"开通"完成服务启用

详细说明请参考 UniPush开通指南

二、推送服务对接

1. 配置uniCloud服务
  • 开通uniCloud服务(推荐阿里云)
  • 创建云函数,用于处理推送逻辑
  • 详细步骤参考官方文档

2. 添加push模块

设置targetSdkersion(targetSdkersion过高有些手机运行不了)

找到刚刚添加的push模块,创建云函数处理推送请求:

'use strict';
const uniPush = uniCloud.getPushManager({
appId: "__UNI__****"
})
exports.main = async (event) => {
let obj = JSON.parse(event.body)
const res = await uniPush.sendMessage({
"push_clientid": obj.cids, // 设备id,支持多个以数组的形式指定多个设备,如["cid-1","cid-2"],数组长度不大于1000
"title": obj.title, // 标题
"content": obj.content, // 内容
"payload": obj.data, // 数据
"force_notification": true, // 服务端推送 需要加这一句
"request_id": obj.request_id //请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失
})
return res //一定要return回去
};
3.部署云函数

右键点击新建的云函数,选择"上传部署"

4.配置云函数URL化
  • 进入uniCloud控制台
  • 找到已上传的云函数并查看详情
  • 配置云函数url化,设置URL的PATH部分(作用是,后端直接调接口然后进行推送)
  • 完成后获得完整URL用于后端调用

5. 客户端监听处理
onLaunch() {
// #ifdef APP-PLUS
plus.push.addEventListener("click", function(msg) {
console.log(msg);
uni.switchTab({
url:'/pages/user/index'
})
}, false);

uni.getPushClientId({
success: res => {
//这个id要和用户绑定好,推送消息需要使用
console.log(res.cid);
}
})
// #endif
}

参考资料:

6. 构建自定义基座
  • 勾选配置文件(如果要配置离线,请先看下面厂商集成那部分)
  • 打包并运行自定义基座
7.测试验证

运行自定义基座前:

  • 卸载手机中所有相关历史应用
  • 获取并验证 cid 是否正确获取

三、厂商集成

1.勾选集成厂商 参考集成厂商配置指南

2.DCloud工作台配置厂商信息 3.详细集成文档 各厂商具体集成方式参考厂商集成指南

四、后端推送集成

1. yml配置

UniPush配置 云函数 URL 化地址

2. 推送消息
    PushMessageDTO pushMessageDTO = new PushMessageDTO();
pushMessageDTO.setTitle("标题"); //推送标题
pushMessageDTO.setUserIds(Arrays.asList(userIds)); //推送用户
pushMessageDTO.setContent("内容"); //推送内容
//调用推送发放
sysBaseApi.uniPushMsgToUser(pushMessageDTO);

五、常见问题

参考常见问题解答