uniapp 消息推送

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

你可能感兴趣的:(uniapp 消息推送)