uniapp 接入unipush

1、准备工作

(1)开通UniPush后,需在后台配置“厂商推送设置”,需要在各厂商后台开通推送(自定义基座无法调试离线推送)

(2)ios配置证书参照https://ask.dcloud.net.cn/article/171

2、接入(要区分安卓ios,返回格式不同,且要区分离线、挂起、打开App下推送的不同)

onLaunch: function() {
            console.log('App Launch')
            // #ifdef APP-PLUS  
            //判断客户端
            var clent = uni.getSystemInfoSync().platform
            plus.push.setAutoNotification(true)
            const _self = this;
            //收到透传消息    
            //只有APP在线时,才会触发receive事件,透传消息不会触发系统消息,需要创建本地消息    
            plus.push.addEventListener("receive", function(msg) {
                console.log("receive:" + JSON.stringify(msg));
                if(_self.status){
                    _self.status = false;
                    _self.$app.navUri(msg.payload)
                }
                if (clent == 'ios') { //如果是IOS    
                    //【APP离线】收到消息,但没有提醒(发生在一次收到多个离线消息时,只有一个有提醒,但其他的没有提醒)    
                    //【APP在线】收到消息,不会触发系统消息,需要创建本地消息,但不能重复创建。必须加msg.type验证去除死循环                  
                    if (msg.aps == null && msg.type == "receive" ) {
                        //创建本地消息,发送的本地消息也会被receive方法接收到,但没有type属性,且aps是null    
                        msg.payload = JSON.parse(msg.payload)
                        console.log('msg.payload1' ,msg.payload)
                        msg.payload = {
                            "title":msg.payload[0],
                            "content":msg.payload[1],
                            "url":msg.payload[2],
                        }
                        console.log('msg.payload2' ,msg.payload)
                        plus.push.createMessage(msg.payload.content, JSON.stringify(msg.payload), {
                            title: msg.payload.title
                        });
                    }
                }
              
            }, false);
            //消息点击事件    
            plus.push.addEventListener("click", function(msg) {
                console.log("(click):" + JSON.stringify(msg));
                 if (clent == 'ios') {
                    //ios 删掉进程时redirect跳转页面
                    if(!msg.aps){
                         msg.payload = JSON.parse(msg.payload)
                    }
                    let url  =  msg.payload.url
                    _self.$app.navUri(url)
                 }else{
                     _self.status = true;
                 }
            }, false);
            // #endif  
        },

注:此功能只在小米和ios测试通过,华为推送在数据还有问题,等后台弄完会实时更新

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

给钱,谢谢!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值