当前位置: 首页 > news >正文

uni-app 开发App时调用uni-push 实现在线系统消息推送通知 保姆教程

一、引言

      在开发App时避免不了需要推送系统通知,以提高用户的使用体验。在自己的一个工具型的小app上全流程接入了uni-push2.0的推送能力,做个记录,以防后期需要用到。在阅读本教程前最好先看看官方文档,结合官方文档使用,以防本文有错误或者疏漏的。因为是个人学习功能的小项目,就没适配ios端了,iOS端有需要的还需查看官方文档

二、接入流程

     2.1  申请开通uni-push
       2.1.1 进入开发者中心选择需要开通的应用  

                 

    2.1.2  设置应用信息

 

2.1.3   申请

 

选择一个需要绑定的云服务空间,如果没有,会有一个去开通的按钮,点击去开通 

2.1.4 开通云服务空间 

我这里是自己的工具demo App也是相当于学习用,所以就试用的免费版,学习、测试推荐先用一个月的免费试用,大佬随意 !点击 新建服务空间 创建新的云服务空间。

按需选择需要的云服务商和配置,最后点击购买后创建,创建成功后返回列表就能看到如上图创建的空间。刚创建成功时需要等待10分钟左右,当状态为正常后便可正常使用了

 2.1.5  再次回到消息推送申请页面,绑定好刚才申请的云服务空间后,点击开通应用创建
2.2  为项目添加云开发环境 
 2.2.1  添加云开发环境 选择与你 2.1.4 购买的云服务商一致的云服务商

     

2.2.2 右击 选择关联云服务,弹出弹框,选择之前创建的云空间 

2.2.3 新建云函数 

2.2.4 为云函数添加模块 。右击上一步创建的云函数目录,点击 管理公共模块

添加推送服务

注意:该模块依赖三张表需要自行创建 ,不创建调用云函数会报错,官网地址: uni-push2统一推送 | uni-app官网

三、代码实现 

    3.1 云函数
       3.1.1 云函数的 index.js  文件里编写逻辑

'use strict';const { log } = require("console");const uniPush = uniCloud.getPushManager({appId:"__UNI__00000000"}) //注意这里需要传入你的应用appId,用于指定接收消息的客户端
exports.main = async (event, context) => {console.log('event',event);console.log('context',context); return await uniPush.sendMessage({"push_clientid": event.queryStringParameters.cid, 	//填写上一步在uni-app客户端获取到的客户端推送标识push_clientid"title": "打卡提醒",	"content": "下班了别忘了打卡!","payload": {"text":"体验一下uni-push2.0" }})
};
3.2 项目代码实现
   3.2.1 在 App.vue 获取设备的clientId 用于消息推送,将cid全局保存,方便后面精准推送,监听消息的推送 
<script>export default {onLaunch: function() {console.log('App Launch')uni.getPushClientId({success: (res) => {console.log(res.cid);},fail(err) {console.log(err)}});uni.onPushMessage((res) => {console.log("收到推送消息:",res) //监听推送消息if(res.data){console.log(res.data)uni.createPushMessage(res.data)  //收到消息推送,创建系统状态栏及锁屏通 知}})},onShow: function() {console.log('App Show')},onHide: function() {console.log('App Hide')}}
</script><style>/*每个页面公共css */
</style>
 3.2.2 这里偷了个懒,没有开发接口处理逻辑从后端发送 通知,而是尝试了下直接在前台代码里调用 发送的通知的接口,没想到成功了,就直接用了
yourFuntion () {   //你的处理逻辑的函数 ......uni.request({url: 'https://xxxxxxxxxxxxxxxx/clockPush?cid='+that.clientId, //云函数地址data: {},method:'post',success(result) {console.log('发送通知',result);},fail({errMsg}) {console.log('request fail', errMsg)}})......
}
 3.2.3 云函数调用url化

    将开发好的云函数右击,上传部署,在进到云空间的管理端 ,选择刚刚上传的云函数

填写一个调用接口名 确认保存即可,现在你就能通过url 调用的创建的云函数了

四、打包发布

   4.1 打包前需勾选push模块配置

     

相关文章:

uni-app 开发App时调用uni-push 实现在线系统消息推送通知 保姆教程

一、引言 在开发App时避免不了需要推送系统通知&#xff0c;以提高用户的使用体验。在自己的一个工具型的小app上全流程接入了uni-push2.0的推送能力&#xff0c;做个记录&#xff0c;以防后期需要用到。在阅读本教程前最好先看看官方文档&#xff0c;结合官方文档使用&#xf…...

13.StringRedisTemplete使用

上一篇说到改变了RedisTemplate的默认序列化器后&#xff0c;在redis中存入Java对象后&#xff0c;在redis中的呈现是&#xff1a;会记录类的字节码 这也是代码中可以强制装换为对应的java对象的原因&#xff1a; Test void testStudent() {redisTemplate.opsForValue().set(&q…...

[工具]-gitee+pycharm-配置

安装git ​ 查看git是否安装设置成功&#xff1a; ​ git config user.name ​ git config user.email ​ 码云账号设置邮箱 pycharm设置gitee 打开 PyCharm&#xff0c;在 Settings - Plugins 里面&#xff0c;搜索 Gitee 插件&#xff0c;安装后重启 PyCharm。 pychar…...

中间件是一种在客户端和服务器之间进行通信和处理的软件组件或服务

中间件是一种在客户端和服务器之间进行通信和处理的软件组件或服务。中间件位于应用程序和操作系统之间&#xff0c;可以提供一些功能&#xff0c;如请求转发、数据转换、安全性和身份验证、日志记录等。 中间件的主要作用是将应用程序与底层基础设施解耦&#xff0c;提供了一…...

RCE-eval长度限制突破技巧

目录 一、长度17的限制绕过 1、最简单的绕过 &#xff08;一&#xff09;绕过 &#xff08;二&#xff09;编写一句话木马 2、文件包含的利用 &#xff08;一&#xff09;远程文件包含的利用 &#xff08;二&#xff09;本地文件包含的利用 3、usort绕过 &#xff08…...

【黑马】MyBatis

目录 MyBatis简介JDBC缺点&#xff1a;MyBatis针对于JDBC进行简化&#xff0c;简化思路&#xff1a; MyBatis快速入门具体构建步骤解决SQL映射文件的警告提示 Mapper代理开发案例&#xff1a;使用Mapper代理方式完成案例具体步骤详解&#xff1a;Mapper代理方式 Mapper核心配置…...

oracle创建dblink使得数据库A能够访问数据库B表LMEAS_MFG_FM的数据

1、给数据库A普通用户CMRONLINE相应的权限&#xff0c;在sys用户下执行以下语句 GRANT CREATE DATABASE LINK TO CMRONLINE; GRANT DROP PUBLIC DATABASE LINK TO CMRONLINE; GRANT CREATE PUBLIC DATABASE LINK TO CMRONLINE; 2、在数据库A用户 CMRONLINE下执行创建语句&…...

git config 如何配置用户账户

Git配置用户账户主要涉及设置用户名和邮箱地址&#xff0c;这是Git进行版本控制时用于标识提交者身份的重要信息。以下是如何配置Git用户账户的详细步骤&#xff1a; 1. 打开命令行工具 首先&#xff0c;需要打开命令行工具&#xff08;如CMD、Terminal或Git Bash等&#xff…...

SpringBoot基础(二):配置文件详解

SpringBoot基础系列文章 SpringBoot基础(一)&#xff1a;快速入门 SpringBoot基础(二)&#xff1a;配置文件详解 目录 一、配置文件分类二、配置文件优先级1、不同版本优先级2、不同位置优先级 三、配置文件格式1、yml和yaml格式1.1、字符串1.2、布尔类型1.3、整数型1.4、浮点…...

Web安全(一)-靶场搭建过程-基于docker

今天来复习一下web方面的知识 1.1 sqliab环境搭建 基于Centos 和Docker 1.1.1 Vmware环境安装 这个就略去了吧 博主使用的是vmware17pro 具体的密钥什么的大家懂的都懂 这里就不提供了 接下来 将带大家安装centos7的镜像 为了方便操作 这里选择 centos7_minimal 地址如下:…...

【JavaEE】单例模式和阻塞队列

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 &#x1f56f;️一.设计模式 ​ 在Java中&#xff0c;设计模式&#xff08;Design Patterns&#xff09;是指在软件工程和面向对象编程中&#xff0c;针对特定…...

RCE绕过技巧

目录 EVAL长度限制突破技巧 1.使用反引号 2.file_put_contents写入文件 3.php5.6变长参数usort回调后门 命令长度限制突破技巧 1.拼接文件名 无字母数字的webshell命令执行 1.取反码 2.上传临时文件 EVAL长度限制突破技巧 分析代码&#xff1a;首先传递一个param参数&…...

Spring源码解析(31)之事务配置文件解析以及核心对象创建过程

一、前言 首先我们先准备一下spring 事务的配置文件&#xff0c;具体内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/20…...

win11安装docker报错记录

报错一&#xff1a; Docker Desktop - Unexpected WSL error An unexpected error occurred while executing a WSL command. Either shut down WSL down with wsl --shutdown, and/or reboot your machine. You can also try reinstalling WSL and/or Docker Desktop. If t…...

【vulnhub】CLAMP 1.0.1靶机

信息收集 靶机发现 端口扫描 页面访问&#xff0c;并查看源码 访问 /nt4stopc/,下面有一些问题&#xff0c;提示必须收集答案 一些判断题&#xff0c;对与错对应1与0&#xff0c;最后结果为0110111001&#xff0c;拼接访问 点击图中位置&#xff0c;发现存在参数&#xff0c;p…...

GPS跟踪环路MATLAB之——数字锁相环

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 GPS跟踪环路MATLAB之——数字锁相环 前言为什么要锁相环科斯塔斯环锁相环的一些基本概念1、捕获、锁定与跟踪的概念2、捕获时间和稳态相差3、相位捕获和频率捕获4、捕获带和同…...

docker开发环境搭建-关于数据库的IP是什么

故事的背景是这样的&#xff1a; 我在本地的ubuntu系统上安装了docker&#xff0c;并创建了一个mysql容器&#xff0c;但是在使用DBeaver连接该数据库时&#xff0c;需要填写数据库的ip&#xff0c;填写127.0.0.1&#xff0c;工具提示找不到这个库&#xff0c;然后使用ip addr…...

loginApi

import request from "/utils/request"; import { AxiosPromise } from "axios"; import { CaptchaResult, LoginData, LoginResult } from "./types";/*** 登录API** param data {LoginData}* returns*/ export function loginApi(data: LoginD…...

【RAG检索增强生成】Ollama+AnythingLLM本地搭建RAG大模型私有知识库

目录 前言一、Ollama&#xff1a;革新性的本地LLM服务工具1.核心优势2.技术亮点 二、AnythingLLM 概览1.核心特性2.技术生态支持 三、搭建本地智能知识库1. Ollama的安装启航2. AnythingLLM的安装对接3. AnythingLLM的配置精调4. 工作区与文档管理5. 聊天与检索的智能交互 四、…...

【wiki知识库】08.添加用户登录功能--前端Vue部分修改

&#x1f34a; 编程有易不绕弯&#xff0c;成长之路不孤单&#xff01; 目录 &#x1f34a; 编程有易不绕弯&#xff0c;成长之路不孤单&#xff01; 一、今日目标 二、前端Vue模块的修改 2.1 the-header组件 2.2 store工具 2.3 router路由配置修改 一、今日目标 上篇文章…...

【ArduPilot之旅#1】多旋翼油门控制数据流程解析

ArduPilot 多旋翼油门控制数据流程解析摘要&#xff1a;本文基于 ArduCopter 源码&#xff0c;梳理从遥控器油门通道输入到 ESC/PWM 输出的完整数据链路&#xff0c;涵盖 RC 读取、飞行模式、姿态控制器与 AP_Motors 混控输出&#xff0c;便于二次开发或排障时快速定位模块。关…...

番茄小说下载器:Rust重铸的跨平台离线阅读神器

番茄小说下载器&#xff1a;Rust重铸的跨平台离线阅读神器 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾在地铁上读到精彩处突然断网&#xff1f;是否想在长途旅行中…...

Windows Android子系统全栈指南:从技术原理到实战应用

Windows Android子系统全栈指南&#xff1a;从技术原理到实战应用 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 价值定位&#xff1a;打破系统边界的跨平台…...

OpenClaw异常处理设计:Qwen3.5-9B图片任务失败自动恢复方案

OpenClaw异常处理设计&#xff1a;Qwen3.5-9B图片任务失败自动恢复方案 1. 为什么需要异常处理机制&#xff1f; 上周我尝试用OpenClawQwen3.5-9B实现证件照自动裁剪时&#xff0c;遇到了典型的"三连击"问题&#xff1a;网络波动导致图片上传中断、模型响应超时、输…...

seo外包公司如何提高网站的用户体验_seo外包公司有哪些常见的优化方法

seo外包公司如何提高网站的用户体验 在当前的数字化时代&#xff0c;网站的用户体验&#xff08;User Experience, UX&#xff09;已经成为网站成功的关键因素之一。优秀的用户体验不仅能提升网站的流量&#xff0c;还能增加用户的黏性和转化率。对于那些选择了外包SEO服务的企…...

PS软件自动化:利用SenseVoice-Small语音指令批量处理图片

PS软件自动化&#xff1a;利用SenseVoice-Small语音指令批量处理图片 你是不是也厌倦了在Photoshop里一遍又一遍地重复那些机械性的操作&#xff1f;给几十张图片统一调整尺寸、批量添加水印、或者对一组照片执行同样的滤镜效果。这些工作既枯燥又耗时&#xff0c;还容易因为手…...

上拉电阻选型避坑指南:为什么你的3.3V电平总差那么一点?

上拉电阻选型避坑指南&#xff1a;为什么你的3.3V电平总差那么一点&#xff1f; 调试数字电路时&#xff0c;你是否遇到过这样的场景&#xff1a;明明按照手册选择了标准阻值的上拉电阻&#xff0c;实测高电平却始终达不到预期的3.3V&#xff1f;特别是在IC、SPI等高速总线通信…...

软件工程导论简答题速查手册:高频考点+避坑指南(附PDF下载)

软件工程导论高频考点精粹&#xff1a;命题陷阱破解与记忆强化指南 面对软件工程导论考试中纷繁复杂的简答题&#xff0c;许多考生常陷入"知识点背了却不会答题"的困境。这份手册从历年真题大数据中提炼出最高频出现的50个核心考点&#xff0c;采用"命题视角记忆…...

标准、规范、规程有何区别与联系

标准、规范、规程有何区别与联系什么是标准&#xff1a;标准作为标准化的核心&#xff0c;其定义和解释也经历了一个较长的发展时期&#xff0c;最有影响的有三个&#xff1a;一是1934年盖拉德在其《工业标准化原理与应用》一书中对标准所作的定义&#xff0c;这也是世界上最早…...

RPA流程进阶:在Uibot中集成Python插件实现复杂数据处理

1. 为什么要在Uibot中集成Python插件&#xff1f; 很多刚开始接触RPA的朋友可能会有疑问&#xff1a;Uibot本身已经提供了丰富的自动化命令&#xff0c;为什么还要折腾Python插件&#xff1f;这个问题我在三年前第一次用Uibot处理Excel报表时就深有体会。当时需要合并20多个分公…...