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

news2024/11/28 14:45:55

一、引言

      在开发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模块配置

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android自定义view

前言 在Android开发时&#xff0c;我们经常会碰见在很多地方会重复使用相同的布局&#xff0c;或者是需要显示一些非基础组件&#xff0c;这个时候我们第一反应就是去自定义布局。将很多常用的UI业务需求&#xff0c;封装成一个View来操作&#xff0c;可以有效加快我们编码和开…

笔中藏音,非凡录制 — WT2003H录音芯片方案,让每一支笔都成为你的高清录音神器

开发背景&#xff1a; 在数字化时代&#xff0c;录音笔作为记录与传播声音的重要工具&#xff0c;其性能与功能的提升直接关系到用户的使用体验。随着科技的飞速发展&#xff0c;市场对于录音笔的需求不再仅仅局限于基本的录音功能&#xff0c;而是更加注重音质、便携性、耐用…

Java中包的使用

针对在同一个类中使用不同包中的同名类时&#xff0c;这时候我们需要使用全类名。

React学习-jsx语法

jsx语法&#xff0c;浏览器不认识&#xff0c;需要经过babel编译 https://babeljs.io/ 面试题&#xff1a;jsx的作用&#xff1f; 普通回答&#xff1a;可以在js中返回dom&#xff0c;经过babel编译成js认识的代码import { jsx as _jsx, jsxs as _jsxs } from "react/j…

Maven的理解与应用

Maven使用 一、Maven的含义 Maven是一个构建项目的工具&#xff0c;也是一个管理项目的工具 二、Maven的应用 构建项目 管理依赖 做项目的热部署 基于项目做多模块&#xff08;modle&#xff09;的构建 三、Maven的安装 注意&#xff1a;maven本身不需要安装&#xff0c;下…

JVM(十)深入理解JVM类加载模型以及双亲委派模型

本文详细介绍了Java的类加载机制&#xff0c;包括加载、链接和初始化三个阶段。强调了双亲委派模型的重要性&#xff0c;这是一种避免重复加载类并维持Java核心库安全的类加载策略。文章还探讨了Java类加载器的不同类型&#xff0c;包括启动类加载器、扩展类加载器和应用类加载…

Spring Cloud Alibaba 集成分布式定时任务调度功能

作者&#xff1a;千习 背景简介 定时任务是指在约定的时间&#xff0c;或者按照固定频率周期性执行的任务。在企业应用中&#xff0c;非用户行为发起的后台业务&#xff0c;一般都是通过定时任务来实现&#xff0c;常见场景如下&#xff1a; 异步数据处理&#xff1a;比如先…

【gpt生成文本的回复的原理和代码,通俗思路清晰】

首先介绍了贪婪解码 其次为增家多样性&#xff0c;用温度系数和TopK增加采样 真实的采样步骤 1、topk备选tokens 2、用维度系数大于1让概率平衡一下&#xff0c;3.再用softmax&#xff0c;4.根据概率分布采样 1、贪婪解码 # 之前&#xff0c;我们总是使用torch.argmax采样最大…

年薪30万+,TOP大厂月薪10万+....网络安全工程师凭什么?

时代飞速发展&#xff0c;我们的工作、生活乃至整个社会的运转都越来越依赖于网络。也因此&#xff0c;网络的无处不在带来了前所未有的安全风险。 从个人隐私泄露到企业机密被盗&#xff0c;再到国家关键基础设施遭受攻击&#xff0c;网络安全问题无处不在&#xff0c;威胁着…

SQL之使用存储过程循环插入数据

1、已经创建了任务日志表 CREATE TABLE t_task_log (id bigint NOT NULL AUTO_INCREMENT,task_id bigint NOT NULL COMMENT 任务ID,read_time bigint NOT NULL COMMENT 单位秒&#xff0c;读取耗时,write_time bigint NOT NULL COMMENT 单位秒&#xff0c;写入耗时,read_size …

8月13日学习笔记 LVS

一.描述以及工作原理 1. 什么是LVS linux virtural server的简称&#xff0c;也就是linxu虚拟机服务器&#xff0c;这是一个 由章文嵩博士发起的开源项目&#xff0c;官网是 http://www.linuxvirtualserver.org,现在lvs已经是linux内核标 准的一部分&#xff0c;使用lvs可以达…

网络剪枝——network-slimming 项目复现

目录 文章目录 目录网络剪枝——network-slimming 项目复现clone 存储库Baselinevgg训练结果 resnet训练结果 densenet训练结果 Sparsityvgg训练结果 resnet训练结果 densenet训练结果 Prunevgg命令结果 resnet命令结果 densenet命令结果 Fine-tunevgg训练结果 resnet训练结果 …

5个小众宝藏软件看看有没有你喜欢的

冷门APP分享来啦&#xff0c;这5个小众宝藏软件看看有没有你喜欢的吧&#xff01; 1.space登月计划 从地球到月球的大概距离是3.84亿米&#xff0c;而登月得消耗掉大约3.2亿千卡的能量。一个人想单飞登月得花上万年。 但在space上&#xff0c;可以和小伙伴一起合作玩登月游戏…

记录Java使用websocket

实现场景&#xff1a;每在小程序中添加一条数据时&#xff0c;后台将主动推送一个标记给PC端&#xff0c;PC端接收到标记将进行自动播放音频。 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import or…

GitHub 2FA中国认证教程

1. 问题描述 在github上有过代码贡献的账号在登录时需要进行2FA双重身份验证。 这是github官方给出的关于2FA的解释&#xff1a; 官方文章地址&#xff1a;点击进入 这是登录时2FA的验证界面&#xff1a; 我们需要使用扩展程序解析这个二维码拿到2FA验证码&#xff0c;填入二维…

python爬虫滑块验证及各种加密函数(基于ddddocr进行的一层封装)

git链接: https://github.com/JOUUUSKA/spider_toolsbox 这里写目录标题 一.识别验证码1、识别英文&#xff0b;数字验证码2、识别滑块验证码3、识别点选验证码 一.识别验证码 git链接: https://github.com/JOUUUSKA/spider_toolsbox 创作不易记得stars 1、识别英文&#xf…

Arduino控制带编码器的直流电机速度

Arduino DC Motor Speed Control with Encoder, Arduino DC Motor Encoder 作者 How to control dc motor with encoder:DC Motor with Encoder Arduino, Circuit Diagram:Driving the Motor with Encoder and Arduino:Control DC motor using Encoder feedback loop: How …

一文读懂Xinstall专属链接推广,轻松解决App运营痛点!

随着互联网的飞速发展&#xff0c;App推广和运营面临着前所未有的挑战。传统的营销方式已经难以适应多变的市场环境&#xff0c;而Xinstall专属链接推广应运而生&#xff0c;成为解决App获客难题的新利器。本文将深入探讨Xinstall专属链接推广如何帮助推广者触达更多用户&#…

MacOS vue-cli为2.9.6 无法升级的解决方案

背景 今天需要验证plop工具做前端工程化实践&#xff0c;打算使用vue3方式&#xff0c;结果发现vue-cli 2.9.6一直无法升级成功&#xff0c;也无法通过vue-cli生成vue3模板工程&#xff0c;测试了几把后&#xff0c;最终升级vue-cli成功&#xff0c;为了能给出现同样问题的小伙…

上瘾模型与产品激励系统

​产品要增加客户粘性&#xff0c;使产品深入人心就需要让用户对产品上瘾。如何使用户对产品上瘾&#xff1f;对于产品来说&#xff0c;就需要建立产品的激励系统。 产品的激励系统要做的事就是对用户进行激励&#xff0c;就是让用户主动完成产品或服务想要他们做的事情。 那么…