本篇只是为了记录初次使用unipush服务的一些步骤
一、开启uniCloud云开发环境,新建阿里云服务
1、项目右键选择创建uniCload云开发环境,选择阿里云
2、在项目里面新创建的uniCloud文件夹右键选择关联云服务空间或项目,并点击新建
3、在服务空间列表页面,点击新建服务空间
4、在服务空间新建页面,进行服务空间新购,选择套餐进行购买(由于我已经选择了免费套餐,所以选不了免费的套餐)
5、购买成功会返回服务空间列表,这里能看到新建的云服务会自动初始化大概十分钟左右等待阿里云那边接入,到时间可手动刷新
6、服务空间创建好后,返回项目进行以上的第2步 ,选择你刚新建好的云服务
二、配置unipush服务
1、进入uniapp开发者中心,选择需要配置unipush的应用进入其详情,在Android云端证书tab页上点击创建证书,
2、成功后会生成证书内容,点击证书详情可查看证书内容;
3、去应用的各平台信息点击新增(或者从下面的应用子项点击修改),会出现一个填写页面,将证书的信息对应填写即可(包名可随意写,但打自定义基座的时候,其包名需要与此保持一致,所以最好先填写一样的)
4、在左侧菜单栏找到unipush打开侧边栏2.0版本 左上角选择到当前uniapp项目 填写相应的内容;关联服务空间,选择刚才自己创建的云空间即可;
三、unipush服务配置完之后,开始消息推送(通知消息、透传消息...)
以上配置完之后,可再次点击左边菜单消息推送,会出现配置页面;根据你想要的消息推送方式自行配置即可
由于本人需实现的是接收服务器端的信息进行推送通知即可,所以不用进行以上配置
注意:透传消息配置之后,点击预览=》发布(注意需要打基座包)
1、打基座包:发行=》原生app打包=》选择自定义基座
打完包后即可运行测试,如果自定义打包基座运行失败,进行以下配置:
四、项目写入消息推送代码
1、在manifest.json里面配置unipush服务
2、在app.vue写入生成通知栏代码
uni.getPushClientId({success: (res) => {console.log(res.cid)// this.$http.post({// url: `${this.$api.saveClientId}/${res.cid}`,// data:{},// }).then(res=>{// // uni.setStorageSync('unreadCount',res.rows)// })},fail(err) {console.log(err)}})console.log("收到推送消息1111111111111:")// 启动推送事件监听 在线推送点击uni.onPushMessage((res) => {console.log("收到推送消息:",res) //监听推送消息// 收到推送消息之后直接创建本地通知栏if(res.data){console.log(res.data)uni.createPushMessage(res.data)}console.log("收到推送消息:action存在进入首页,不然就进消息详情",res.data.payload,res.data.payload.msgId,res.data.payload.action) //监听推送消息if(res.data.payload.msgId){uni.navigateTo({url:'/pages/messageCenter/detail?id='+res.data.payload.msgId,})}else{uni.navigateTo({url:'/pages/tabbar/home/index',})}})
五、创建云函数(云函数的使用过程中,只要有变动,就需要重新部署(右键点击上传并部署)只改了一个文件时可以单独部署)
1、在unicloud下的cloudfunctions右键新建云函数/云对象;写完云函数名字,然后点击添加公共模块或扩展库依赖=》选择统一推送服务。
2、创建完云函数后,将云函数里面的代码改成以下这样
'use strict';
const uniPush = uniCloud.getPushManager({appId: ""
})
exports.main = async (event) => {let obj = JSON.parse(event.body)console.log(obj);const res = await uniPush.sendMessage({"push_clientid": obj.cids, // 设备id,支持多个以数组的形式指定多个设备,如["cid-1","cid-2"],数组长度不大于1000"title": obj.title, // 标题"content": obj.content, // 内容"payload": obj.payload, // 数据"force_notification": true, // 服务端推送 需要加这一句"request_id": obj.request_id, //请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失"options": obj.options})return res //一定要return回去
};
3、在云函数文件夹上右键选择上传并部署,将云函数部署上去,你即可在你的unicloud服务空间列表中的函数/对象列表看到你刚部署的云函数;点击进入详情修改云函数url的path部分。
注意:用云函数URL化这个能力。把云函数给其他平台、环境的应用当成普通的http
请求来访问。具体看文档!
以上都配置好就可以测试了!!!