uniapp 开启阿里云服务并开启unipush消息推送

本篇只是为了记录初次使用unipush服务的一些步骤

一、开启uniCloud云开发环境,新建阿里云服务

1、项目右键选择创建uniCload云开发环境,选择阿里云

2、在项目里面新创建的uniCloud文件夹右键选择关联云服务空间或项目,并点击新建

3、在服务空间列表页面,点击新建服务空间

4、在服务空间新建页面,进行服务空间新购,选择套餐进行购买(由于我已经选择了免费套餐,所以选不了免费的套餐)

5、购买成功会返回服务空间列表,这里能看到新建的云服务会自动初始化大概十分钟左右等待阿里云那边接入,到时间可手动刷新

6、服务空间创建好后,返回项目进行以上的第2步 ,选择你刚新建好的云服务

二、配置unipush服务

1、进入uniapp开发者中心,选择需要配置unipush的应用进入其详情,在Android云端证书tab页上点击创建证书,

2、成功后会生成证书内容,点击证书详情可查看证书内容;

3、去应用的各平台信息点击新增(或者从下面的应用子项点击修改),会出现一个填写页面,将证书的信息对应填写即可(包名可随意写,但打自定义基座的时候,其包名需要与此保持一致,所以最好先填写一样的)

4、在左侧菜单栏找到unipush打开侧边栏2.0版本 左上角选择到当前uniapp项目 填写相应的内容;关联服务空间,选择刚才自己创建的云空间即可;

三、unipush服务配置完之后,开始消息推送(通知消息、透传消息...)

以上配置完之后,可再次点击左边菜单消息推送,会出现配置页面;根据你想要的消息推送方式自行配置即可

由于本人需实现的是接收服务器端的信息进行推送通知即可,所以不用进行以上配置

注意:透传消息配置之后,点击预览=》发布(注意需要打基座包)

1、打基座包:发行=》原生app打包=》选择自定义基座

打完包后即可运行测试,如果自定义打包基座运行失败,进行以下配置:

四、项目写入消息推送代码

1、在manifest.json里面配置unipush服务

2、在app.vue写入生成通知栏代码

    uni.getPushClientId({success: (res) => {console.log(res.cid)// this.$http.post({//   url: `${this.$api.saveClientId}/${res.cid}`,//   data:{},// }).then(res=>{//   // uni.setStorageSync('unreadCount',res.rows)// })},fail(err) {console.log(err)}})console.log("收到推送消息1111111111111:")// 启动推送事件监听  在线推送点击uni.onPushMessage((res) => {console.log("收到推送消息:",res) //监听推送消息// 收到推送消息之后直接创建本地通知栏if(res.data){console.log(res.data)uni.createPushMessage(res.data)}console.log("收到推送消息:action存在进入首页,不然就进消息详情",res.data.payload,res.data.payload.msgId,res.data.payload.action) //监听推送消息if(res.data.payload.msgId){uni.navigateTo({url:'/pages/messageCenter/detail?id='+res.data.payload.msgId,})}else{uni.navigateTo({url:'/pages/tabbar/home/index',})}})

五、创建云函数(云函数的使用过程中,只要有变动,就需要重新部署(右键点击上传并部署)只改了一个文件时可以单独部署)

1、在unicloud下的cloudfunctions右键新建云函数/云对象;写完云函数名字,然后点击添加公共模块或扩展库依赖=》选择统一推送服务。

2、创建完云函数后,将云函数里面的代码改成以下这样

'use strict';
const uniPush = uniCloud.getPushManager({appId: ""
})
exports.main = async (event) => {let obj = JSON.parse(event.body)console.log(obj);const res = await uniPush.sendMessage({"push_clientid": obj.cids, // 设备id,支持多个以数组的形式指定多个设备,如["cid-1","cid-2"],数组长度不大于1000"title": obj.title, // 标题"content": obj.content, // 内容"payload": obj.payload, // 数据"force_notification": true, // 服务端推送 需要加这一句"request_id": obj.request_id, //请求唯一标识号,10-32位之间;如果request_id重复,会导致消息丢失"options": obj.options})return res //一定要return回去
};

3、在云函数文件夹上右键选择上传并部署,将云函数部署上去,你即可在你的unicloud服务空间列表中的函数/对象列表看到你刚部署的云函数;点击进入详情修改云函数url的path部分。

注意:用云函数URL化这个能力。把云函数给其他平台、环境的应用当成普通的http请求来访问。具体看文档!

以上都配置好就可以测试了!!!

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

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

相关文章

深入理解指针(2)

在上一篇深入理解指针(1)中我们已经初步了解指针地址;指针的解引用;指针变量类型作用,指针运算等知识,接下来我们将继续学习指针的相关内容,一起加油吧!!! 1. 数组名的理解 在之前的…

【计算机网络】HTTP协议详解实战抓包分析教程

文章目录 1.HTTP简介2.HTTP报文的结构3.HTTP协议中空行的作用4.uri和url的区别5.HTTP请求5.1 HTTP请求方法5.2 HTTP请求报头 6.HTTP响应6.1 状态码 7.HTTP位于应用层(基于TCP)8.非持久和持久连接8.1 非持久连接8.2 持久连接 1.HTTP简介 HTTP(Hypertext Transfer Pr…

pandas style添加表格边框,或是只添加下边框等自定义边框样式设置

添加表格边框 可以使用如下程序添加表格: import dataframe_image as dfi import pandas as pd import numpy as npdf pd.DataFrame(np.random.random(size(10, 5))) df_style df.style.set_properties(**{text-align: center,border-color: black,border-width…

cubemx配置stm32f407VET6实现USB虚拟串口

背景: 最近做项目需要使用USB,一根数据线连接“mcu的板子”和“电脑”; 电脑上的串口助手通过USB线和mcu的USB通信; 原理图: 1)外围电路2)mcu引脚 软件实现: 1.cubemx配置USB_devic…

流程图用什么软件做?选择这4款,让工作事半功倍

流程图用什么软件做?流程图是一种直观、清晰的图形表示法,它通过节点、箭头和符号等元素,精确地展示出一系列步骤、决策点以及操作过程。这种图形化的呈现方式不仅简化了复杂信息的处理,还使得读者能够迅速把握整体流程&#xff0…

构建第一个ArkTS应用之@LazyForEach:数据懒加载

LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。 接口…

上海交大携手阿里巴巴成立人工智能与系统联合实验室

5 月 8 日,上海交通大学电子信息与电气工程学院(简称电院)与阿里巴巴集团宣布共同成立人工智能与系统联合实验室(后称“联合实验室”),并在上海交大闵行校区举行了揭牌仪式。 上海交大电院副院长王贺升教授…

python实现图片模式转换成素描模式

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 素描,是一种用线条来描绘物体、场景或人物的绘画方式,它可以是简单的线条勾勒,也可以是复杂的光影渲染。这种艺术形式主要依赖线条和明暗关系来表现形态、空

PyTorch进行CIFAR-10图像分类

本节将通过一个实战案例来详细介绍如何使用PyTorch进行深度学习模型的开发。我们将使用CIFAR-10图像数据集来训练一个卷积神经网络。 神经网络训练的一般步骤如图5-3所示。 (1)加载数据集,并做预处理。 (2)预处理后的…

sin^2(x) 的图像

[TOC](sin^2(x) 的图像) 正文 这里记录一下 s i n 2 x sin^2{x} sin2x 的图像。 函数值以正弦的形式在 [0, 1] 区间内波动。 如果大家觉得有用,就点个赞让更多的人看到吧~

嵌入式文件系统

嵌入式文件系统 文件系统简介 在计算机系统中, 需要用到大量的程序和数据, 它们大部分以文件的形式存放在外部存储当中, 根据需要可随时调入内存使用 如果用户直接管理外存文件所面临的问题: 必须熟悉外存的物理特性了解各种存…

英语新概念2-回译法-lesson14

第一次回译 I had a amusing experience. I kept driving to the next town when I left a small village in the south of Franch.A teenager waved to me in the path.I stopped my car, he asked me to give him a lift.As soon as he get my car,I say good morning in Fr…

【Kubernetes】污点、容忍度、亲和性、调度和重启策略

标签、污点、容忍度、亲和性 一、标签1、定义2、给资源打标签【1】给Pod打标签【2】给Service打标签【3】给Node打标签 3、查看资源标签 二、节点选择器1、nodeName2、nodeSelector 三、污点、容忍度、亲和性1、node节点亲和性【1】硬亲和性【2】软亲和性 2、pod节点亲和性【1】…

安泰电子电压放大器应用及示例是什么样的

电压放大器是电子电路中常用的一种器件,用于将输入信号的电压放大至所需的输出电压。它在许多领域中有着重要的应用,包括通信、音频放大、仪器测量等。以下是电压放大器的一些应用及示例: 信号处理:在许多电子系统中,需…

Kasawaki川崎机器人故障维修

在当今的自动化工业领域,川崎工业机器人以其卓越的性能和可靠的工作效率赢得了广泛的赞誉。作为机器人的核心组成部分,伺服电机的作用至关重要。然而,就像所有机械设备一样,也可能会遭遇电机磨损或故障,需要适时的川崎…

vue自定义权限指令

定义v-hasPermi指令 /*** v-hasPermi 操作权限处理*/import useUserStore from /store/modules/userexport default {mounted(el, binding, vnode) {const { value } bindingconst all_permission "*:*:*";const permissions useUserStore().permissions&#xff…

linux - 搭建部署ftp服务器

ftp 服务: 实现ftp功能的一个服务,安装vsftpd软件搭建一台ftp服务器 ftp协议: 文件传输协议 (file transfer protocol),在不同的机器之间实现文件传输功能, 例如 视频文件下载,源代码文件下载 公司内部:弄一个专门的文件服务器,将公司里的文档资料和视频都存放…

基于死区补偿的永磁同步电动机矢量控制系统simulink仿真模型

整理了基于死区补偿的永磁同步电动机矢量控制系统simulink仿真,该模型使用线性死区补偿的PMSM矢量控制算法进行仿真,使用Foc电流双闭环 。 1.模块划分清晰,补偿前后仿真有对比,易于学习; 2.死区补偿算法的线性区区域可调; 3.自…

5.13网络编程

只要在一个电脑中的两个进程之间可以通过网络进行通信那么拥有公网ip的两个计算机的通信是一样的。但是一个局域网中的两台电脑上的虚拟机是不能进行通信的,因为这两个虚拟机在电脑中又有各自的局域网所以通信很难实现。 socket套接字是一种用于网络间进行通信的方…

Python接口自动化测试之动态数据处理

在前面的知识基础上介绍了在接口自动化测试中,如何把数据分离出来,并且找到它的共同点,然后依据这个共同点来找到解决复杂问题的思想。我一直认为,程序是人设计的,它得符合人性,那么自动化测试的&#xff0…