uniapp对接unipush 1.0 ios/android

简介

实现方法 是uniapp官网推荐的 unipush-v1

文档配置具体看 uni-app官网

配置好了之后
代码实现

前端代码

前端的主要任务是监听 监听到title content 创建消息推送

安卓 可以收到在线消息并且自动弹出消息

IOS 可以监听到在线消息但是需要手动推送

以下代码app初始换完成就可运行

onPushMessage() {uni.onPushMessage(res => { let platform = uni.getSystemInfoSync().platform;let {type,data: {payload = {}}} = res || {};let {title = '',content = '',path = ''} = payload; if (path) {if (platform == 'ios' && type == "receive") {uni.createPushMessage({title,content,payload,success() {console.log("推送成功");},fail() {console.log("推送失败");}})return}uni.navigateTo({url: path,fail() {uni.showToast({title: "跳转失败"})}})} })},

node后端参考代码

const axios = require("axios");
const crypto = require("crypto");
const appData = {appID: "",appKey: "",appSecret: "",masterSecret: "",
};
const baseUrl = "https://restapi.getui.com/v2/eX4SOsJhiqAwaOuODvyDr";
let toAppUrl = `${baseUrl}/push/all`;
let tokenUrl = `${baseUrl}/auth`;
let singleUrl = `${baseUrl}/push/single/cid`;// let token = "";
function getTime() {return new Date().getTime();
}
function hash(text) {const hash = crypto.createHash("sha256");hash.update(text);return hash.digest("hex");
}
function getSign(appkey, timestamp, mastersecret) {return hash(appkey + timestamp + mastersecret);
}
function getToken(url = tokenUrl) {let { appID, appKey, appSecret, masterSecret } = appData;let timestamp = getTime();return new Promise((resolve, reject) => {axios({method: "post",url,data: {sign: getSign(appKey, timestamp, masterSecret),timestamp,appkey: appKey,},}).then((res) => {if (res.data.code == 0) {resolve(res.data.data.token);} else {reject(res);}});});
}
function schedule(taskid, token) {axios({method: "GET",url: `${baseUrl}/task/schedule/${taskid}`,headers: {token: token,},}).then((res) => {console.log("返回结果", res.data);});
}
async function single(url) {let request_id = getTime();let channel_id = getTime();let token = await getToken(tokenUrl);axios({method: "post",url,headers: {token: token,},data: {request_id,settings: {ttl: 7200000,},audience: { // 荣耀 5025894ea89b90b277affc77e3964029// 7327ae82e78a1840d367c4cf1411daeb 华为cid// 我的苹果 dd49a3f62e68d846ba9d8ab88a8a738bcid: [cid]},push_message: {  notification: {title: "提示",body: "通知内容",big_text: "通知内容",channel_id: "Default",channel_name: "Default",channel_level: 4,// click_type: "payload", // click_type: "intent",//intent:"intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=;S.content=测试内容;S.payload={title: '自定义消息内容',path:'/Seting/index/index'};end",click_type: "payload", payload: JSON.stringify({title: "自定义消息内容在线通知",content:"自定义消息内容在线通知内容", path:"/Seting/index/index"})}},push_channel: {android: {ups: {notification: {title: "离线通知标题",body: "厂商通知内容",click_type: "intent",intent:`intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=app包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=;S.content=测试内容;S.payload={title: '自定义消息内容',path:'/Seting/index/index'};end`,},options: {HW: {"/message/android/notification/badge/class":"io.dcloud.PandoraEntry","/message/android/notification/badge/add_num": 1,"/message/android/category": "EXPRESS",},},},},ios: {type: "notify",payload: JSON.stringify({title: "自定义消息内容离线通知",path:"/Seting/index/index" }),aps: {alert: {title: "通知标题",body: "通知内容"},"content-available": 0,sound: "default",category: "ACTIONABLE",},auto_badge: "+1",},},},}).then((res) => {console.log(res.data);});
}
// toApp(toAppUrl);
single(singleUrl);

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

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

相关文章

【WRF-Urban】输入空间分布人为热排放数据的WRF运行全过程总结

目录 数据准备检查新增变量配置(如果有)WPS预处理修改namelist.wpsStep1: geogridStep2: ungribStep3: metgridWRF运行修改namelist.input调试namelist.input运行./real.exe运行./wrf.exe参考WRF模型的基本流程如下: 数据准备 空间分布热排放数据下载及制备可参见另一博客…

JavaSE——绘图入门

一、Java绘图坐标体系 下图说明了Java坐标系,坐标原地位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直…

初学stm32 --- 系统时钟配置

众所周知,时钟系统是 CPU 的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。 STM32 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就可以解决一切。于是有人要问,采用一个系统时钟不是很简单吗?为…

FM-CLIP: Flexible Modal CLIP for Face Anti-Spoofing

“FM-CLIP: Flexible Modal CLIP for Face Anti-Spoofing”由澳门科技大学、中国科学院等单位的Ajian Liu、Hui Ma等人撰写。文章提出了一种名为FM-CLIP的新型灵活模态人脸反欺诈(FAS)方法,通过利用文本特征动态调整视觉特征以实现模态独立性,在多模态数据集上取得了优于现…

进网许可认证、交换路由设备检测项目更新25年1月起

实施时间 2025年1月1日起实施 涉及设备范围 核心路由器、边缘路由器、以太网交换机、三层交换机、宽带网络接入服务器(BNAS) 新增检测依据 GBT41266-2022网络关键设备安全检测方法交换机设备 GBT41267-2022网络关键设备安全技术要求交换机设备 GB/…

lshw学习——简单介绍

文章目录 简介核心结构扫描设备原理scan_abiscan_burnerscan_cdromscan_cpufreqscan_cpuidscan_cpuinfoscan_device_treescan_diskscan_displayscan_dmiscan_fatscan_fbscan_graphicsscan_idescan_ideraidscan_inputscan_isapnpscan_lvmscan_memoryscan_mmcscan_mountsscan_net…

k8s总结

1、k8s是部署、拓展、管理容器的容器编排引擎。可根据负载的变化动态增加或缩减节点保证系统的高可用。 2、ks8s核心组件:node是节点(可以是物理机也可以是虚拟机)、pod最小的调度单位,是容器的抽象,有svc管理容器网络…

白嫖内网穿透之神卓互联Linux安装教程(树莓派)

最近家里有一个树莓派,捣鼓来去不知道干嘛,于是打算作为内网穿透盒子用,于是百度了一下,发现神卓互联还不错,可以让外网请求通过各种复杂的路由和防火墙访问到内网的服务。 以下是在Linux树莓派系统上安装神卓互联客户…

【测试面试篇1】测试开发与开发|selenium实现自动化测试|设计测试用例|常见的测试方法|开发不认可提测试的bug该怎么办

目录 1.选择走测试为什么还要学这么多的开发知识? 2.为什么选择软件测试开发岗位而不是软件开发岗位? 3.个人的职业规划是什么? 4.测试中遇到的问题如何进行解决? 5.对自己的项目做过哪些测试工作? 6.描述selenium…

Ansible 批量管理华为 CE 交换机

注:本文为 “Ansible 管理华为 CE 交换机” 相关文章合辑。 使用 CloudEngine - Ansible 批量管理华为 CE 交换机 wsf535 IP 属地:贵州 2018.02.05 15:26:05 总体介绍 Ansible 是一个开源的自动化运维工具,AnsibleWorks 成立于 2012 年&a…

防火墙(RHCE)

1、什么是防火墙 防火墙:防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包 的进出。 防火墙又可以分为硬件防火墙与软件防火墙。硬件防火墙是由厂商设计好的主机硬件,这台硬件防火墙 的操作系统主要以提…

线性代数基础与应用:基底 (Basis) 与现金流及单期贷款模型(中英双语)

具体请参考:https://web.stanford.edu/~boyd/vmls/ 下面的例子来源于这本书。 线性代数基础与应用:基底 (Basis) 与现金流及单期贷款模型 在线性代数中,基底(Basis)是一个重要的概念,广泛应用于信号处理、…

【安当产品应用案例100集】032-重塑企业SaaS平台的PostgreSQL凭据管理体系

一、案例背景 在本次案例分享中,一家为旅行社提供SaaS服务的技术服务商,其依赖PostgreSQL作为其核心数据存储解决方案,并且在阿里云和内网环境中均部署了相关服务与数据库实例。随着业务的发展和技术团队规模的扩大,当前的数据库…

路径规划之启发式算法之二十:麻雀搜索算法(Sparrow Search Algorithm,SSA)

麻雀搜索算法(Sparrow Search Algorithm,SSA)是一种受麻雀觅食和反捕食行为启发的新型的群智能优化算法,它模拟了麻雀种群的觅食行为和反捕食行为的生物学群体特征。该算法由薛建凯在2020年首次提出,旨在解决全局优化问题,具有求解精度高、效率高等特点。 一、算法原理 S…

Vue 404页面增加宝贝回家公益广告

关于404公益 https://www.dnpw.org/cn/pa-notfound.html 404公益项目主要以寻找走失的孩子为题材(官方demo: https://cdn.dnpw.org/404/v1/demo.html) 只需在网页中插入如下代码,即可加入404公益,为寻找走失的孩子出一份力&…

threejs——无人机概念切割效果

主要技术采用着色器的切割渲染,和之前写的风车可视化的文章不同,这次的切割效果是在着色器的基础上实现的,并新增了很多可调节的变量,兄弟们,走曲儿~ 线上演示地址,点击体验 源码下载地址,点击下载 正文 从图中大概可以看出以下信息,一个由线组成的无人机模型,一个由…

python实现Word转PDF(comtypes、win32com、docx2pdf)

目录 使用 comtypes 或 win32com 使用docx2pdf 使用 comtypes 或 win32com 支持docx和doc格式的文档转PDF,comtypes与win32com底层调用一样,使用方法也一样。保存文件时相当于调用了office中的另存为。只需要修改SaveAs中的FileFormat参数值即可转为对…

双指针---和为s的两个数字

这里写自定义目录标题 题目链接问题分析代码解决执行用时 题目链接 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况,返回任一结果即可。 问题分析 暴⼒解法,会超时 (两层…

整合 Knife4j 于 Spring Cloud 网关:实现跨服务的 API 文档统一展示

🎯导读:本文档概述了构建和配置基于JDK 17、Spring Boot 3.0.7及Spring Cloud 2022.0.3的微服务系统,特别聚焦于集成Knife4j以增强API文档管理和接口测试功能。文中详细介绍了如何在Spring Boot应用中添加Knife4j依赖、配置Swagger UI路径和A…

如何从0构建一个flask项目,直接上实操!!!

项目结构 首先,创建一个项目目录,结构如下: flask_app/ │ ├── app.py # Flask 应用代码 ├── static/ # 存放静态文件(如CSS、JS、图片等) │ └── style.css # 示例…