位置: 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)

  • 富有哲理的励志小故事(富有哲理的励志短句)

    富有哲理的励志小故事(富有哲理的励志短句)

  • 2021款ipadpro电池多少毫安(2021款ipadpro电池休眠)

    2021款ipadpro电池多少毫安(2021款ipadpro电池休眠)

  • 红米note11pro有红外吗(红米note11pro有红外遥控吗)

    红米note11pro有红外吗(红米note11pro有红外遥控吗)

  • icloud关闭有影响吗(icloud关闭还会同步数据吗)

    icloud关闭有影响吗(icloud关闭还会同步数据吗)

  • 华为mate40的屏幕尺寸是多大(华为mate40pro屏幕多少钱)

    华为mate40的屏幕尺寸是多大(华为mate40pro屏幕多少钱)

  • dmov是什么指令(plc基础知识指令27个)

    dmov是什么指令(plc基础知识指令27个)

  • 电脑上的谷歌浏览器为什么打不开网址(电脑上的谷歌浏览器)

    电脑上的谷歌浏览器为什么打不开网址(电脑上的谷歌浏览器)

  • 荣耀v30原装充电器型号(荣耀v30原装充电器线图片)

    荣耀v30原装充电器型号(荣耀v30原装充电器线图片)

  • 拍抖音怎么上热门(拍的抖音怎么上热门?发布时要注意这3点!)

    拍抖音怎么上热门(拍的抖音怎么上热门?发布时要注意这3点!)

  • 屏幕摔黑屏了有绿色线条(屏幕摔到黑屏)

    屏幕摔黑屏了有绿色线条(屏幕摔到黑屏)

  • 描述文件会盗取信息吗(描述文件会盗取数据吗)

    描述文件会盗取信息吗(描述文件会盗取数据吗)

  • 淘宝宝贝描述灰色和红色有什么区别(淘宝里的宝贝描述评分为什么是灰色)

    淘宝宝贝描述灰色和红色有什么区别(淘宝里的宝贝描述评分为什么是灰色)

  • 计算机中操作系统是什么的接口(计算机中操作系统的分类)

    计算机中操作系统是什么的接口(计算机中操作系统的分类)

  • ipad哪一款可以插手机卡(ipad哪一款可以开90帧)

    ipad哪一款可以插手机卡(ipad哪一款可以开90帧)

  • 微信怎么调深色模式(微信怎么调深色模式苹果)

    微信怎么调深色模式(微信怎么调深色模式苹果)

  • vt怎么开启windows10(vt怎么开启windows7)

    vt怎么开启windows10(vt怎么开启windows7)

  • 抖音音浪10000提现多少(抖音音浪10000提成多少)

    抖音音浪10000提现多少(抖音音浪10000提成多少)

  • 移动路由器怎么改密码(移动路由器怎么连接另一个路由器)

    移动路由器怎么改密码(移动路由器怎么连接另一个路由器)

  • 苹果xsmax屏幕是不是2k(苹果xsmax是什么屏幕)

    苹果xsmax屏幕是不是2k(苹果xsmax是什么屏幕)

  • 闲鱼被骗投诉有用吗(闲鱼如果被骗了 举报官方会受理吗)

    闲鱼被骗投诉有用吗(闲鱼如果被骗了 举报官方会受理吗)

  • 相机快门速度怎么调节(相机快门速度怎么调快)

    相机快门速度怎么调节(相机快门速度怎么调快)

  • 会声会影如何制作画中画视频(会声会影如何制作字幕)

    会声会影如何制作画中画视频(会声会影如何制作字幕)

  • spss怎么用(spss怎么用卡方检验)

    spss怎么用(spss怎么用卡方检验)

  • 怎么更改deepin20系统主题? deepin20终端主题设置方法(怎么更改定位位置信息)

    怎么更改deepin20系统主题? deepin20终端主题设置方法(怎么更改定位位置信息)

  • windows11关机键怎么弄出来(windows11关机键怎么设置经典菜单)

    windows11关机键怎么弄出来(windows11关机键怎么设置经典菜单)

  • Vue页面生成PDF的方法(vue 页面生成pdf)

    Vue页面生成PDF的方法(vue 页面生成pdf)

  • 帝国cms如何投稿(帝国cms怎么上传图片)

    帝国cms如何投稿(帝国cms怎么上传图片)

  • 增值税纳税人是委托方还是受托方
  • 哪些情况需要提高警惕小心毒品
  • 个税手续费发给个人怎么做账
  • 大行建筑有限公司分公司
  • 提完折旧的车卖掉划算吗
  • 建筑企业施工管理人员
  • 股东向企业借款属于关联交易吗
  • 出纳人员怎么核酸检测
  • 研发支出费用化支出每个月都要结转吗
  • 关税现金流量表项目
  • 打官司败诉承担的费用
  • 实收资本属于会计科目吗
  • 自营方式建造固定资产增值税
  • 小规模纳税人印花税怎样计算
  • 建筑企业预交增值税税务筹划案例
  • 社保和个税怎么个对应法
  • 非居民企业从居民企业取得分红
  • 预缴的税款可以互抵吗
  • 我的初级备考经验--付出才有回报
  • 公司章程出资时间怎么填写
  • 征信费用会计分录
  • 打开我的电脑出现找不到应用程序
  • 公司注册资金抽逃
  • 系统升级为win11
  • window10与CentOS双系统安装详细教程
  • 共用水电无法取水怎么办
  • 税盘进项税额怎么做
  • RunClubSanDisk.exe是什么程序? 闪迪U盘广告推介程序
  • 企业与政府所签的合同
  • 增值税专用发票怎么开
  • 航空业燃油附加率是多少
  • CSS: overflow-anchor 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容
  • 我国消费税的特点
  • 阿里巴巴达摩院ai
  • 研发 专利
  • 收到承兑汇票怎么操作
  • sqlite时间戳转时间语句(时间转时间戳)
  • 查财务报表的网站有哪些
  • 缴纳文化事业建设费
  • 会计六大类会计科目
  • access speed
  • 分组计数什么意思
  • 应交增值税为负数是什么意思
  • 应收账款收不回来了应怎么做会计分录
  • 企业转让专利需要交什么税
  • 以前年度管理费用
  • 股东分红的会计分录怎么做
  • 不合格品的处理方式一般包括哪些
  • 库存商品品种太多如何算成本
  • mysql 5.7.5 m15 winx64安装配置方法图文教程
  • Linux下MySQL5.7.18二进制包安装教程(无默认配置文件my_default.cnf)
  • window10系统电脑配置
  • xp系统注册表空白怎么办
  • centos安装类型选择
  • 电脑xp系统运行速度慢
  • 系统占用90g怎么删
  • mac输入特殊字符
  • live updater
  • Win10 Mobile/PC/HoloLens一周年更新14389曝光
  • Android游戏开发实践指南
  • Android SQLite总结(一)
  • 批处理for命令详解
  • 获取文件内容
  • cls方法可以清除
  • javascript声明变量的语句
  • unity3d导出fbx文件
  • javascript编程技术
  • js中dom的用法
  • jquery返回顶部
  • javascript 继承
  • jquery隐藏和显示div
  • jquery点击事件写法
  • python 变参
  • python访问oracle
  • Python的SQLalchemy模块连接与操作MySQL的基础示例
  • jquery给按钮添加事件
  • 减免所得税额怎样计算
  • 开电子发票流程步骤
  • 个人所得税没申报会退吗
  • 财税专业全称叫什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设