UniPush使用指南 https://ask.dcloud.net.cn/article/35716
一、先创建一个应用
https://dev.dcloud.net.cn/app/index?type=0
image.png
二、开通Uni Push
注意:在申请开通时,需要确保输入的 Android包名或 iOS Bundle ID 必须与打包时配置的一致,否则可能会导致无法收到推送消息。
image.png
开通后配置ios证书
image.png
这一步完成后就可以打包了
image.png
云打包!后可以推送试一下,如果能收到消息通知说明配置的没有问题
另外想要针对用户推送的话就要使用CID用户推送
在登录app后调接口传给后端
// 手机的唯一标识,相当于人的身份证号
const clientid = plus.push.getClientInfo().clientid
image.png
到这一步推送就完成了(此时安卓离线推送还没实现,但ios可以离线推送了)
会发现app在线时推送安卓手机消息栏会展示收到的推送通知,但IOS消息栏却不展示,这里就是一个坑!!!
image.png
如果是IOS就需要创建一个消息通知展示在通知栏上
在app.vue中
onLaunch() {
this.handlePush()
},
methods: {
// 处理推送消息
handlePush() {
// #ifdef APP-PLUS
const _receivePush = function(message) {
// 获取推送的信息 判断是不是ios
if(uni.getSystemInfoSync().platform== 'ios'){
let { title, content } = message;
plus.push.createMessage(content, title, {
title: title,
// icon: '@/static/images/me/no-head-photo.png'
});
}
}
// 进入到app中某个页面
const _clickPush = function(message) {
// payload(JSON) 可携带自定义信息用于通过路由传参
let { payload } = message;
uni.switchTab({
url: '/pages/message/detail?id='+JSON.parse(payload).id
})
}
// 用户点击消息栏上的消息通知
plus.push.addEventListener('click', _clickPush)
// 收到推送的消息 ios设备app在线的时候需要创建一个消息通知
plus.push.addEventListener('receive', _receivePush)
// #endif
},
}
服务端开发请参考 UniPush使用指南中的 Rest-V2厂商推送示例
到这里安卓离线推送还没有实现,需要去设置各个厂商通道就可以实现啦
image.png
2021.12.26_15.23.01.jpg