位置: IT常识 - 正文

uniapp APP消息推送方案(uniapp 信息推送)

编辑:rootadmin
uniapp APP消息推送方案

推荐整理分享uniapp APP消息推送方案(uniapp 信息推送),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniappapp消息推送,uniapp APP消息推送方案,uni-app消息推送,uniappapp消息推送,uni app推送,uniapp定时推送提醒消息,uni-app消息推送,uniapp APP消息推送方案,内容如对您有帮助,希望把文章链接给更多的朋友!

提示:本文实例消息推送使用uniapp官方的unipush推送:

项目场景:该项目是uniapp + uniCloud 项目,APP端的消息推送使用 html+ 与原生实现交互

1.开通推送消息

– uniapp 中的manifest.json文件中找到App模块配置,勾选push消息推送模块 – dcloud开发者中心后台开通unipush功能及各种配置项 – 安卓离线消息推送是需要配置各大厂商,IOS离线不需要,但需要推送证书

2.判断手机权限uniapp APP消息推送方案(uniapp 信息推送)

- 需求:判断是否开启通知权限,跳转对应设置页

/** * 设置手机通知权限 */ setPermissionsInform() { // #ifdef APP-PLUS if (plus.os.name == 'Android') { // 判断是Android var main = plus.android.runtimeMainActivity(); var pkName = main.getPackageName(); var uid = main.getApplicationInfo().plusGetAttribute("uid"); var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat"); //android.support.v4升级为androidx if (NotificationManagerCompat == null) { NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat"); } var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled(); // 未开通‘允许通知’权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置 if (!areNotificationsEnabled) { uni.showModal({ title: '通知权限开启提醒', content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!', showCancel: false, confirmText: '去设置', success: function(res) { if (res.confirm) { var Intent = plus.android.importClass('android.content.Intent'); var Build = plus.android.importClass("android.os.Build"); //android 8.0引导 if (Build.VERSION.SDK_INT >= 26) { var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS'); intent.putExtra('android.provider.extra.APP_PACKAGE', pkName); } else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0 var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS'); intent.putExtra("app_package", pkName); intent.putExtra("app_uid", uid); } else { //(<21)其他--跳转到该应用管理的详情页 intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); var uri = Uri.fromParts("package", mainActivity.getPackageName(), null); intent.setData(uri); } // 跳转到该应用的系统通知设置页 main.startActivity(intent); } } }); } } else if (plus.os.name == 'iOS') { // 判断是ISO var isOn = undefined; var types = 0; var app = plus.ios.invoke('UIApplication', 'sharedApplication'); var settings = plus.ios.invoke(app, 'currentUserNotificationSettings'); if (settings) { types = settings.plusGetAttribute('types'); plus.ios.deleteObject(settings); } else { types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes'); } plus.ios.deleteObject(app); isOn = (0 != types); if (isOn == false) { uni.showModal({ title: '通知权限开启提醒', content: '您还没有开启通知权限,无法接受到消息通知,请前往设置!', showCancel: false, confirmText: '去设置', success: function(res) { if (res.confirm) { var app = plus.ios.invoke('UIApplication', 'sharedApplication'); var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:'); plus.ios.invoke(app, 'openURL:', setting); plus.ios.deleteObject(setting); plus.ios.deleteObject(app); } } }); } } // #endif } , /**可以将该方法放在APP.vue文件的onShow生命周期或是消息中心的onShow中去判断用户是否开启通知权限

-- Android跳转系统设置Settings的各个界面_Chandler丶的博客-CSDN博客

3.推送消息到手机APP:

需求:当有消息推送时,推送到手机状态栏中

3.1 获取客户端推送标识信息 cid// 必须要获取到cid后才能接收推送信息 const cid = plus.push.getClientInfo() console.log(cid);3.2 创建推送消息//plus.push.createMessage( content, payload, option );//在本地直接创建推送消息,并添加到系统消息中心。content: ( String ) 必选消息显示的内容,在系统通知中心中显示的文本内容。payload: ( String | Object ) 可选消息承载的数据,可根据业务逻辑自定义数据格式。options: ( MessageOptions ) 可选创建消息的额外参数,参考https://www.html5plus.org/doc/zh_cn/push.html#plus.push.MessageOptionsplus.push.createMessage('我是你爸爸!'); // 创建本地推送plus.runtime.setBadgeNumber(1) // 设置角标3.3 消息事件

- 实现手机状态栏推送功能逻辑,在APP.vue中添加推送消息事件监听器 ,监听到有新消息时,使用createMessage API创建消息,添加点击事件 点击后进行不同操作

对于安卓的在线和离线消息以及IOS的离线消息都是走的click监听事件。也就是说可以直接将消息推送到手机通知栏中,然后点击消息的时候,可以触发应用监听的点击事件,跳转到对应页面。receive事件,可以监听到后端推送过来的消息,触发相应的回调,使用createMessage在本地创建消息// 添加推送消息事件监听器 clickplus.push.addEventListener("click",(msg)=>{ console.log('msg............',msg); if(msg.payload){ // 点击跳转对应页面 uni.navigateTo({ url:msg.payload }) }},false)// 添加推送消息事件监听器 receiveplus.push.addEventListener("receive",(msg)=>{ if("LocalMSG" == msg.payload){ }else{ if(msg.type=='receive'){ var options = {cover:false,title:msg.title}; // 创建本地推送 plus.push.createMessage(msg.content, msg.payload, options ); } }},false)4. 消息页面的数据及数字角标

- 需求:当有消息推送时,要更新消息中心页面的数据和数字角标

1.在项目中定义请求消息列表的方法,将响应的数据存储到vuex中,供消息中心页面使用

// 消息页面的数据async getMsgData(){ let res = await this.$callFunction("userContent/getMsgType") this.$u.vuex("msgData", res.result.data); let msgCount = 0 // 数字角标 res.result.data.map((item)=>{ if(item._id!=5){ msgCount+=item.no_read_total } }) // 给tabbar的角标赋值 let tabbar_data = JSON.parse(JSON.stringify(this.TabbarList)) tabbar_data[3].count = msgCount this.$u.vuex("TabbarList", tabbar_data);

2.监听消息的推送,如果接收到消息就更新消息列表数据和角标数字

// --------监听推送的状态----------plus.push.addEventListener("receive", (msg) => { console.log(getApp().globalData.followCount); if(msg.payload.data.msg_type==501){ uni.$emit('followUpdate','update'); } let {content, payload, options} = msgCreate(msg) plus.push.createMessage(content, payload, options); this.getMsgData()}, false)该功能的实现,主要重点在于数据的全局的传值,以及监听数据的变化,实时更新数据可以使用vuex或globalData来存储数据nuve页面中可以使用$emit $on 进行全局监听
本文链接地址:https://www.jiuchutong.com/zhishi/289771.html 转载请保留说明!

上一篇:微信小程序实现分享至朋友圈的功能(微信小程序实现支付功能)

下一篇:JS如何监听一个变量改变?(js监听hover)

  • 华为Mate10支持光学防抖吗(华为mate10pro支持光学防抖吗)

    华为Mate10支持光学防抖吗(华为mate10pro支持光学防抖吗)

  • fd开头苹果手机是哪里生产的(fd开头的苹果手机是哪里生产的)

    fd开头苹果手机是哪里生产的(fd开头的苹果手机是哪里生产的)

  • 微信朋友圈文字怎么显示全文不折叠(微信朋友圈文字修改在哪里)

    微信朋友圈文字怎么显示全文不折叠(微信朋友圈文字修改在哪里)

  • 电源风扇朝上还是下(电源风扇朝上还是朝下转)

    电源风扇朝上还是下(电源风扇朝上还是朝下转)

  • 卡贴激活sim卡无效(卡贴激活显示无sim卡)

    卡贴激活sim卡无效(卡贴激活显示无sim卡)

  • 相机ai功能是什么意思(相机ai有什么用)

    相机ai功能是什么意思(相机ai有什么用)

  • 华为手机nfc连接失败(华为手机NFC连接电脑没反应)

    华为手机nfc连接失败(华为手机NFC连接电脑没反应)

  • 苹果怎么删除所有照片(苹果怎么删除所有数据)

    苹果怎么删除所有照片(苹果怎么删除所有数据)

  • 红米note8pro充电速度(红米note8pro充电器参数)

    红米note8pro充电速度(红米note8pro充电器参数)

  • 卫星电话不能定位吗(卫星电话查不到位置吧)

    卫星电话不能定位吗(卫星电话查不到位置吧)

  • 手机电池不耐用怎么办(手机电池不耐用可以修复吗)

    手机电池不耐用怎么办(手机电池不耐用可以修复吗)

  • 赣服通怎么注册(赣服通怎么注册小孩子的)

    赣服通怎么注册(赣服通怎么注册小孩子的)

  • 苹果xr3dtouch怎么设置

    苹果xr3dtouch怎么设置

  • 华为hry aloot是什么型号(hry一aloota华为手机)

    华为hry aloot是什么型号(hry一aloota华为手机)

  • 什么叫手机分辨率(什么是手机分辨率?)

    什么叫手机分辨率(什么是手机分辨率?)

  • 安检会损坏x光片吗(安检会损坏x光机吗)

    安检会损坏x光片吗(安检会损坏x光机吗)

  • 手机一直关机怎么找人(手机一直关机怎么给别人交代)

    手机一直关机怎么找人(手机一直关机怎么给别人交代)

  • uiisii耳机是啥牌子(uiisii耳机是啥牌子应耳机怎么样)

    uiisii耳机是啥牌子(uiisii耳机是啥牌子应耳机怎么样)

  • 不让别人拉我进群怎么设置(不让别人拉我进群怎么设置qq)

    不让别人拉我进群怎么设置(不让别人拉我进群怎么设置qq)

  • oppoa9x上市时间(oppo a9x什么时候生产的)

    oppoa9x上市时间(oppo a9x什么时候生产的)

  • wps如何自动填充序号(wps如何自动填充连续数字)

    wps如何自动填充序号(wps如何自动填充连续数字)

  • 嘀嗒出行如何接单(嘀嗒出行如何接单才好赚)

    嘀嗒出行如何接单(嘀嗒出行如何接单才好赚)

  • win7加快网速的方法是什么呢?(win7上网提速)

    win7加快网速的方法是什么呢?(win7上网提速)

  • 重楼的功效与作用(图文)(重楼的功效与作用价格)

    重楼的功效与作用(图文)(重楼的功效与作用价格)

  • 后台管理系统权限管理详解

    后台管理系统权限管理详解

  • 软考-软件设计师 知识点整理(一篇就过了 建议收藏)(软考软件设计师考试时间)

    软考-软件设计师 知识点整理(一篇就过了 建议收藏)(软考软件设计师考试时间)

  • 财税新闻稿
  • 工业企业取得土地收益
  • 高校报销需要增值税专用发票吗
  • 科目余额表解析
  • 企业会计准则颁布部门
  • 劳务报酬现金 过账
  • 免征增值税还要交印花税么
  • 小规模纳税人季度不超45万免增值税
  • 增值税附加税由买方承担如何计算
  • 公司购车预计净残值率怎么计算
  • 境外机构在境内发行的人民币债券
  • 稿酬收入怎么算
  • 偶然所得个税怎么计算公式
  • 专用发票不抵扣怎么做分录
  • 第三方佣金及成本还是费用
  • 预收保费属于什么会计科目类别
  • 辅助生产车间最后结转到哪里
  • 企业增值税年底怎么结转
  • 净现值为什么要除以它的折现率
  • 资源税是否需要计提?
  • 营改增后企业缴税种类
  • 会计明细账簿包括哪些
  • 弥补以前年度亏损从哪里取数
  • 四种存款账户的定义
  • 企业发生的亏损不一定会导致所有者权益减少
  • 支付境外特许权许可使用费资料
  • 哪些情况下可以终止心肺复苏
  • 购买原材料折扣做什么会计科目
  • 交易性金融资产属于什么科目
  • 加入申请理由怎么写
  • 房产置换是什么
  • PQIMountSvc.exe是什么进程 PQIMountSvc进程查询
  • 小孩不爱吃蔬菜怎么办?
  • 集团公司对子公司如何进行资金管理
  • 资产负债表要点
  • PHP:imagefilledellipse()的用法_GD库图像处理函数
  • 移动加权平均法例题
  • 社保退工伤保险怎样做分录
  • 请假扣款怎么做账
  • 营业收入为什么不包括营业外收入
  • 报税金额和开票统计不一致
  • 普通发票的后续怎么开
  • 持有至到期投资减值准备
  • 固定资产一次计提折旧
  • 营业外收入是损益类账户吗
  • 销售货物并提供安装服务是混合销售吗
  • 公司购买的商品质量问题能用12315投诉吗
  • 增值税发票红冲和作废的区别
  • 旅行社代订的机票可以抵扣吗
  • 接受其他企业现金捐赠会计分录
  • 暂估入账后费用怎么做账
  • 财务软件服务费合同印花税
  • 公司增资认缴
  • 剩余股利政策发放股利后的年末未分配利润
  • 有存货的公司
  • sql必会知识
  • xp系统没有安装好,请重新运行安装程序
  • windows vista(service pack1)
  • windows server 2008 r2激活密钥
  • kvm虚拟机是什么
  • 电脑被攻击了怎么修复
  • 系统 启动速度慢怎么办
  • windows10mode
  • linux tcpping
  • mac用chrome
  • linux计划任务不生效
  • linux useradd -m
  • vue router 传参
  • linux 消息队列 系统参数
  • js鼠标点击事件监听
  • 无法加载odbc驱动程序
  • jquery鼠标点击事件怎么写
  • javascript教程
  • 安卓白屏问题有哪些
  • django框架详解
  • 怎样下载金税盘
  • 税务局有哪些职务名称
  • 贵州开票软件怎么下载安装
  • 消费税是单一环节征税吗
  • 河北电子税务局社保缴费流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设