uni 您所在的位置:网站首页 安卓退出软件收不到通知 uni

uni

2024-01-14 09:44| 来源: 网络整理| 查看: 265

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关闭不了离线消息

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有