1.创建uniCloud云开发环境 关联云服务空间(没有云空间到官网上创建)步骤如下
2. index.obj.js代码 ,然后上传部署
// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129const uniPush = uniCloud.getPushManager({appId: "__UNI__xxxx"
})
module.exports = {_before: function() { // 通用预处理器},async messageSend(event) {const res = await uniPush.sendMessage({"push_clientid": event.cid, // 设备id,支持多个以数组的形式指定多个设备,如["cid-1","cid-2"],数组长度不大于1000 "title": event.title, // 标题 "content": event.content, // 内容 "payload": event.payload, // 数据 "force_notification": true, // 服务端推送 需要加这一句 "request_id": event.request_id //请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失 必须是string格式"options": obj.options //消息分类,没申请可以不传这个参数 // "push_clientid": "xxxx", //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid // "force_notification": true, //填写true,客户端就会对在线消息自动创建“通知栏消息”。 // "title": "推送标题",// "content": "推送内容哈哈哈哈",// "payload": {// "text": "体验一下uni-push2.0"// }})return res;}
}
3.页面调用
const pushSend = uniCloud.importObject('push')const send = ()=>{
let res = await pushSend.messageSend({cid: "xxx",title:"测试",content:“内容”,payload:{text:“咔咔咔咔”},request_id:'s'+(new Date()).getTime() //必须是string,否则推送报错})console.log(res)
}
注意真机本地调试时候,可能出现以下报错(很难解决,网上找了解决方法不适合我,而且非常麻烦),建议安装云打包的包测试,
无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。
如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。 -
如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试
检查系统防火墙是否拦截了HBuilderX自带的nodejs
连接本地调试服务失败,请检查客户端是否和主机在同一局域网下