uniapp:3分钟搞定在线推送uni.createPushMessage,uni.onPushMessage

news/2025/3/15 3:36:21/

安卓端 在线推送功能演示:

1、dcloud后台申请开通uniPush

dcloud后台

(1):找到我的应用
在这里插入图片描述
(2):点进去后,各平台信息,点击新增
在这里插入图片描述
(3):填写包名,签名等信息
在这里插入图片描述
包名:就是你原生APP-云打包 时的Android包名
SHA1和SHA256:参考我的另一篇文章,详细介绍了如何生成证书,和获取证书信息链接地址
MD5:上一篇文章中使用JDK获取到SHA1和SHA256,获取不到MD5,找找资料发现说是因为JDK版本过高,降低版本后也无法解决这个问题,后来从官网了解到,获取安装包的签名,每2位中间间隔一个冒号就是md5。
所以这里参考另一篇文章,如何获取APP签名
这里需要注意:你的APP必须安装到手机中之后,在使用这个工具,才能获取到签名
在这里插入图片描述
获取到的签名每2位字母中间间隔一个 :就可以了。
(4):选择uniPush2.0,选择对应的项目,平台选择安卓,Android包名就是上一步填写的包名信息,会自动生成到下边2个框内
在这里插入图片描述
(5):添加云服务空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试阶段,我们就选免费试用一个月。并确认开通。(完成后需要等待10分钟左右)10分钟后,返回(4)关联云空间,并开通应用。
(6):以上内容全部完成后,消息推送 即可手动推送消息。
在这里插入图片描述
写到这里 uniPush 的申请开通教程已完成

2、配置manifest.json

该项目仅供测试,所以没有做离线推送(离线推送牵扯到应用上架等内容。等以后做这块内容的再来更新)
在这里插入图片描述

3、app.vue

(1):首先要保证我们用到的通知管理权限要开启。permission.js

import permision from "@/js_sdk/wa-permission/permission.js"
export default {onLaunch: function() {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升级为androidxif (NotificationManagerCompat == null) {NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");}var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();// 未开通‘允许通知’权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置if (!areNotificationsEnabled) {console.log('请开启权限:通知管理-允许通知')uni.showModal({title: '权限提示',content: '请前往 通知管理 开启权限',confirmColor: '#7287EA',success: function(res) {if (res.confirm) {permision.gotoAppPermissionSetting() // 跳转到APP设置,用户手动开启通知权限} else if (res.cancel) {console.log('用户点击取消');}}});}}
}

(2):开始创建通知栏uni.createPushMessage
为了能够及时收到用户发来的消息,所以需要在主进程中写一个轮询,查到有新消息就创建系统通知栏

setInterval(() => {let session_id = uni.getStorageSync('session_id') ? uni.getStorageSync('session_id') : '';// console.log(session_id)this.$http.post("/api/Chat/msgNotify", {id: session_id,}).then(res => {if (res.code == 1) {if(session_id == data.session_id){// 这里为什么要判断:因为当A--B进行会话,我肯定不希望B发送的消息也创建系统通知栏,// 进入会话页面要向本地存储session_id,离开会话页面就清除本地的session_id// 所以要判断,如果当前的会话id == 接口返回的会话id 则不提醒。return}else{uni.createPushMessage({icon:require('./static/logo58.png'),title:title,content:content,payload:{// 这里地方你可以随意组合你想要的数据,uni.onPushMessage会监听到你组合的数据。session_id:res.data.session_id,page:'/pages/index/index?id='+res.data.session_id},success:(res=>{console.log('成功创建')}),})}}})
}, 4000);

(3):监听通知栏被点击,当通知栏被点击后会打开APP,可以拿到上一步自己组合的数据,进行一些操作

uni.onPushMessage((res) => {uni.removeStorageSync('session_id');let url = res.data.payload.page;console.log('监听推送消息-----' + res)setTimeout(() => {this.$goBack(2, url)//OK=== 跳转到聊天页面}, 1000)
})

以上内容已完成。有什么不理解欢迎给我留言-.-


http://www.ppmy.cn/news/29104.html

相关文章

2.单例模式

基本概念 单例模式:保证一个类只有一个实例,并提供一个访问该实例的全局访问点 常见应用场景 读取配置文件的类一般设计为单例模式网站计数器应用程序的日志应用,因为共享日志文件一直处于打开状态,只能有一个实例去操作Spring…

Android TV UI开发常用知识

导入依赖 Google官方为Android TV的UI开发提供了一系列的规范组件,在leanback的依赖库中,这里介绍一些常用的组件,使用前需要导入leanback库。 implementation androidx.leanback:leanback:$version常用的页面 这些Fragment有设计好的样式&…

JavaEE进阶第六课:SpringBoot配置文件

上篇文章介绍了SpringBoot的创建和使用,这篇文章我们将会介绍SpringBoot配置文件 目录1.配置文件的作用2.配置文件的格式2.1 .properties语法2.1.1.properties的缺点2.2 .yml语法2.2.1优点分析2.2.2配置与读取对象2.2.3配置与读取集合2.2.4补充说明3.设置不同环境的…

GPU会变得更便宜吗?GPU 定价更新

在英伟达和AMD发布了一段时间的一致显卡之后,事情在二月份已经降温。没有新的GPU可以谈论,没有特别惊人的交易或任何东西,但仍然值得看看市场现在的表现如何,因为它已经稳定下来,以及我们在未来几个月可以期待什么。过…

2022 年江西省职业院校技能大赛高职组“信息安全管理与评估”赛项样题

2022 年江西省职业院校技能大赛高职组 “信息安全管理与评估”赛项样题 一、 赛项信息 第一场比赛: 竞赛阶段 任务阶 段 竞赛任务 竞赛时 间 分值 第一阶段 任务 1 网络平台搭建 90 平台搭建与安全 任务 2 网络安全设备配置与防护 210 设备配置防护…

分享一种实用redis原子锁的方式

1. setnx(lockkey, 当前时间过期超时时间) ,如果返回1,则获取锁成功;如果返回0则没有获取到锁,转向2。2. get(lockkey)获取值oldExpireTime ,并将这个value值与当前的系统时间进行比较,如果小于当前系统时间…

【RSA】HTTPS中SSL/TLS握手时RSA前后端加密流程

SSL/TLS层的位置 SSL/TLS层在网络模型的位置,它属于应用层协议。接管应用层的数据加解密,并通过网络层发送给对方。 SSL/TLS协议分握手协议和记录协议,握手协议用来协商会话参数(比如会话密钥、应用层协议等等)&…

NVIDIA CUDA初级教程视频学习笔记1

周斌老师 课程链接: 目录第一课内容生态环境第一课 CPU体系架构的概述什么是CPU指令存储器架构CPU内部的并行性第一课 预修课程: Cuda c programming guide 参考内容 1,2,3查找一下。 内容 CPU体系架构概述 并行程序设计概述 CUDA开发环境…