uni-push2.0 消息推送开启uni.onPushMessage与关闭

uni-push2.0 消息推送

开发前先看开发文档,避免走一些弯路
https://ask.dcloud.net.cn/article/40283 或者 https://www.yuque.com/docs/share/82f5a00d-4c33-4889-96db-09e0c6833e22?#rrJsp

1.当勾选了uni-push2.0后一定要重新打包,不然获取到的cid跟服务端的不匹配,识别不到用户
2.通知消息与透传消息的区别
在这里插入图片描述
通知消息ios系统不支持,透传就是直接发数据,有需要ios跟安卓的直接设置透传消息

3.uni-push2.0无需再写plus.push.addEventListener(“click”)监听(此为1.0的写法),
2.0需要改成uni.onPushMessage获取通知消息

// 直接上代码,避免到处找资料
uni.onPushMessage((res) => {
//获取到通知消息有分为点击与监听
	if(res.type=='click'){
		clearTimeout(timer);
		
		timer = setTimeout(() => {
				// 处理跳转的业务可以写这边
		},1500);
	}else{
		//aps为空说明是在线,aps有值的时候是离线,避免离线点击后再监听会出现两次通知栏
		if(res.data.aps){
			return;
		}
		let platform = uni.getSystemInfoSync().platform;
		let msg=res.data;
		if (platform=='ios') {  //由于IOS 必须要创建本地消息 所以做这个判断
			if (msg.payload&& msg.payload!=null) {
				plus.push.createMessage(msg.content,msg.payload)  //创建本地消息
			}
		}
		if (platform=='android') {
			let options={
				cover:false,
				sound:"system",
				title:msg.title
			}
			plus.push.createMessage(msg.content,msg.payload,options);
		}
		
		
	}
})

根据业务需要,当用户退出账号的时候将不再收到推送,这时候需要手动唤起关闭推送功能,不然只要程序还在运行,依然手机可以收到推送。
按照开发提供的文档
在common/js下添加igenxinTool.js
在这里插入图片描述

function igexinTool() {  
    var isAndorid, PushManager, context, Instance, GeTuiSdk;  
    if(plus.os.name == 'Android') {  
        isAndorid = true;  
    } else {  
        isAndorid = false;  
    }  

    if(isAndorid) {  
        PushManager = plus.android.importClass("com.igexin.sdk.PushManager");  
        context = plus.android.runtimeMainActivity().getContext();  
        Instance = PushManager.getInstance();  
    } else {  
        GeTuiSdk = plus.ios.importClass("GeTuiSdk");  
    }  

    this.bindAlias = function(alias) {  
        if(isAndorid) {  
            Instance.bindAlias(context, alias);  
        } else {  
            GeTuiSdk.bindAliasandSequenceNum(alias, alias);  
        }  
    }  

    this.unbindAlias = function(alias) {  
        if(isAndorid) {  
            Instance.unBindAlias(context, alias, true);  
        } else {  
            GeTuiSdk.unbindAliasandSequenceNumandIsSelf(alias, alias, true);  
        }  
    }  

    this.getVersion = function() {  
        if(isAndorid) {  
            return Instance.getVersion(context);  
        } else {  
            return GeTuiSdk.version;  
        }  
    }  

    //开启推送  
    this.turnOnPush = function() {  
		console.log('开启',plus.os.name)
        if(isAndorid) {  
            Instance.turnOnPush(context);  
        } else {  
            GeTuiSdk.setPushModeForOff(false);  
        }  
    }  

    //关闭推送  
    this.turnOffPush = function() {  
		console.log('关闭',plus.os.name)
        if(isAndorid) {  
            Instance.turnOffPush(context);  
        } else {  
            GeTuiSdk.setPushModeForOff(true);  
        }  
    }  

}
export default {
	igexinTool
}

在退出账号的方法里面加上调用即可
在这里插入图片描述
在这里插入图片描述
在登录之后,调用方法里面的turnOnPush即可收到推送消息
注:uni.offpushmessage关闭不了离线消息

此处我要在此特别感谢个推的技术支持-凡,感谢他很耐心的帮我解决问题,我走的这些弯路希望可以帮助到你们。只是分享,不喜勿喷。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值