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

  • 微信菱形红包什么时候可以发(微信红包有什么花样)

    微信菱形红包什么时候可以发(微信红包有什么花样)

  • 三星手机usb调试在哪里打开(三星手机USB调试功能在哪里)

    三星手机usb调试在哪里打开(三星手机USB调试功能在哪里)

  • 红米10xpro有光学防抖的吗(红米10x有光学防抖吗)

    红米10xpro有光学防抖的吗(红米10x有光学防抖吗)

  • iphone11pro max怎么连拍(iphone11pro max怎么插双卡)

    iphone11pro max怎么连拍(iphone11pro max怎么插双卡)

  • 抖音主播pk是什么回事(抖音中主播pk是什么)

    抖音主播pk是什么回事(抖音中主播pk是什么)

  • 华为荣耀v30黑白模式怎么关闭(华为荣耀v30黑白屏怎么办)

    华为荣耀v30黑白模式怎么关闭(华为荣耀v30黑白屏怎么办)

  • 美图m8手机录屏在哪里(美图手机录制屏幕)

    美图m8手机录屏在哪里(美图手机录制屏幕)

  • 荣耀20为什么拍照不清晰(荣耀20为什么拍照很模糊)

    荣耀20为什么拍照不清晰(荣耀20为什么拍照很模糊)

  • v30pro屏幕刷新率多少(v30 pro刷新率)

    v30pro屏幕刷新率多少(v30 pro刷新率)

  • 取消订单加速包会退吗(购买加速包后取消订单加速包的钱会退吗)

    取消订单加速包会退吗(购买加速包后取消订单加速包的钱会退吗)

  • 红外摄像头原理

    红外摄像头原理

  • 苹果手机为什么系统占那么多内存(苹果手机为什么没信号无服务)

    苹果手机为什么系统占那么多内存(苹果手机为什么没信号无服务)

  • internet功能有哪些(internet有那些功能)

    internet功能有哪些(internet有那些功能)

  • vivox30双模5g什么意思(vivox30双模是什么意思)

    vivox30双模5g什么意思(vivox30双模是什么意思)

  • 您的号码没有开通这项业务是什么意思(您的号码没有开通这项业务怎么解决)

    您的号码没有开通这项业务是什么意思(您的号码没有开通这项业务怎么解决)

  • 荣耀10手机能开空调吗(荣耀10手机开机键坏了怎么开机)

    荣耀10手机能开空调吗(荣耀10手机开机键坏了怎么开机)

  • 苹果怎么拍星星(苹果怎么拍星星更清晰)

    苹果怎么拍星星(苹果怎么拍星星更清晰)

  • 有赞买家怎么删除订单(怎么删除有赞订单购买成功的记录)

    有赞买家怎么删除订单(怎么删除有赞订单购买成功的记录)

  • 腾讯视频电视直播在哪(腾讯视频电视直播怎么看)

    腾讯视频电视直播在哪(腾讯视频电视直播怎么看)

  • qq群成员名片在哪找(qq中群成员名片在哪)

    qq群成员名片在哪找(qq中群成员名片在哪)

  • 苹果mini5多大内存(苹果mini5有多大)

    苹果mini5多大内存(苹果mini5有多大)

  • 苹果id行政区怎么填(苹果手机注册id市级行政区怎么填)

    苹果id行政区怎么填(苹果手机注册id市级行政区怎么填)

  • 怎样关闭QQ坦白说(怎样关闭qq坦白信息)

    怎样关闭QQ坦白说(怎样关闭qq坦白信息)

  • 打印机联机灯不亮原因(打印机联机灯不亮是不是坏了)

    打印机联机灯不亮原因(打印机联机灯不亮是不是坏了)

  • 原本可以打开的网页无法打开(原本可以打开的软件)

    原本可以打开的网页无法打开(原本可以打开的软件)

  • iexplore32.exe进程能删除吗 有什么作用 iexplore32是什么进程(ie浏览器进程)

    iexplore32.exe进程能删除吗 有什么作用 iexplore32是什么进程(ie浏览器进程)

  • pcclient.exe是什么进程 pcclient进程查询(pc应用是什么意思)

    pcclient.exe是什么进程 pcclient进程查询(pc应用是什么意思)

  • 个人所得税账务处理分录
  • 代收的水资源税收入是否计入企业所得税
  • 进项税额转出会影响利润吗
  • 跨区域开票流程怎么走
  • 发票商品类别有哪几种
  • 财务章备案和不备份区别
  • 个税身份证验证不通过已经申报缴税
  • 定期定额户个人所得税怎么申报
  • 公司刚注册之后怎么办
  • 个人开的专票也能抵扣吗
  • 定额备用金制度有哪些
  • 交以前年度所得税怎么算
  • 承兑贴现利息怎么入账
  • 外币资本金使用范围
  • 不动产修理领用原材料账务处理?
  • 金税盘如何红冲已抵扣专票
  • 税控盘证书密码一天可以输几次
  • 发票验旧后可领新发票吗
  • 个税按工资薪金未按时申报的处罚规定
  • 增值税普通发票有什么用
  • 餐饮研发费用确认条件
  • 代扣代缴境外增值税可以抵扣
  • 报表总收入
  • 捐赠固定资产资产处置损益
  • 房地产销售广告是要约还是要约邀请?原因是什么?
  • 电脑重装win7系统后无法连接网络
  • php add
  • 上季度成本多结转了怎么调
  • 公司logo设计费是业务宣传费吗
  • 金融企业呆账核算流程
  • 刚收到的假发怎么处理
  • 委托代建的法律规定
  • 阿尔比恩洞的级别
  • 新准则规定
  • 营改增几个阶段
  • php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
  • phpcurl模拟登录
  • 快速上手:华硕路由器的wireguard服务器
  • yolov3输出是什么
  • web爬虫视频教程
  • 企业资产损失税前扣除管理办法最新
  • python 微信
  • 公司的财务报表能看出什么
  • java集合详解以及底层实现
  • 换货公司是否可信?
  • 增值税季度缴纳时间
  • 代扣职工个人应承担的社保费
  • 个体工商户季度超过9万怎么交税
  • 本年利润和利润分配属于什么账户
  • 购买银行理财产品的几个必须知道
  • 劳动仲裁赔偿款会计分录
  • 公司垫付生育津贴后,社保局未报销给公司
  • 基本户与一般户的区别与联系
  • 让渡资产使用权收入属于收入吗
  • 派发股利政策
  • 损益类科目结转本年利润方向
  • 教育类退费
  • 账务不实与账实不符
  • 商品流通企业如何控成本
  • 物业管理企业应设置代管基金和代收款项账户
  • 如何获取数据库的sid
  • Win7/Win8.1/Win10的UAC对话框“是”点不了的原因及解决方法
  • Win10怎么显示我的电脑
  • solaris 11.4
  • windowsxp我的电脑怎么调出来
  • openssl 用法
  • 可用分区az
  • win7系统运行在哪
  • 安卓域名重定向
  • JavaScript中的NaN代表什么
  • node js并发加载缓慢
  • js获取tbody
  • ubuntu下安装win10
  • js如何使用
  • 青海税务app怎么开票
  • 国家税务总局税务局官网
  • 建筑类的发票
  • 江苏几个地级市几个县级市
  • 农业企业制造费用包括哪些
  • 税务党课主题或党课题目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设