uniapp+unipush推送配置

APP推送记录

一、使用框架
Uniapp+unipush推送插件
二、需要提前准备的
1.准备自有证书
可以用这个网站—香蕉云编(用于安卓 ios证书生成)https://www.yunedit.com/update/androidzhengshu/list
安卓证书生成后,下载证书,除了原文件的保留,也要把证书信息记录下来,如 (密钥库密码和密钥密码 密码设置最好设置到一样的)密钥库密码、密钥密码 、证书md5值 、sha256值、 sha1值等保存到那,后续使用。
2.新建uniapp项目
新建项目后,manifest.json文件中设置包名(包名规则:com.你的公司.你的项目)和appId,这2个至关重要,一旦设置最好不要轻易修改
在这里插入图片描述

3.配置unipush
在manifest.json中,你不勾选unipush手动打一次包
在这里插入图片描述

然后在进入manifest页面点击配置就可以跳转到配置网站页面
在这里插入图片描述

进入网站后你就可以看见你的项目了,
点击左边菜单uni-push来设置你的应用信息。
在这里插入图片描述

这样基本信息算设置完成。
接下来,如果你想要app接受离线推送(当app被彻底杀死),那么就需要去进行厂商推送设置,这是一个很麻烦、很漫长的过程。
在这里插入图片描述

接下来你需要去各个厂商申请企业开发者账号,成为开发者(有些厂商不仅需要公司的各种信息还需申请者的身份证还需要对公打款),当这些都申请成功了你以为完了?不,还需要去应用服务那申请应用,去推送服务那申请推送。
1).比如华为:配置推送服务时,必须申请自分类权益
2).比如小米:如果你的应用要上架(需要软著、备案等信息),如果你不上架,那么就需要先提交工单,申请不上架应用,申请通过后,左边菜单才有个企业内部应用,在这个下面去新建应用后还得进行上架申请(准备好app图片、还得打空包等),打空包的文档如下
在这里插入图片描述
在这里插入图片描述

审核通过后,就点击小米平台的推送服务,如上图,刚开始是未启用状态,你得再去申请,当审核通过后状态就会变成已启用。当操作中有应用信息的时候,你就可以点击了,再去消息分类管理/channel列表中申请分类,(https://dev.mi.com/xiaomihyperos/documentation/detail?pId=1655这是分类文档,在申请时需要提前了解)
在这里插入图片描述

当审核成功后,留着通知类别id后面用。
3).比如vivo,这要求应用必须上架,但是你又不想上架又想继续使用vivo的厂商推送通道。你就得去提工单了,告诉他你又不想上架又想继续使用推送服务的原因,并提交盖了公章的承诺函。等审核通过后,他会要求你先进行上架,这下你就得保证你的app包有隐私协议,登录页面有隐私协议询问,app里面有隐私协议入口,隐私协议还可以外网访问。保证这些后就可以上架了,当你调通了后就得马上下架app。
4).比如oppo,当你的应用和推送都申请了,还得去申请工单,提交不上架应用推送服务申请(准备隐私协议测试报告、app包),找到"/channel_id": “填写OPPO平台登记的渠道ID”,“/category”: “填写Opush消息类别category”。
4.返回dcolud配置unpush

当所有厂商申请好了,可以回到这里配置厂商通道了
在这里插入图片描述

三、集成验证

  1. 客户端获取 cid
    假如我要给“张三”打电话,那就需要知道对方的电话标识,即电话号码是多少。 同理,要给某个客户端推送消息,也需要知道该设备的客户端推送标识。
    启动 app 后成功获取 cid 则说明云打包 “在线推送” 成功,支持在线推送。
    先跟着示例代码简单体验,详细的uni.getPushClientId API介绍 详情参考 代码示例:
    // uni-app客户端获取push客户端标记,代码可以实现在App.vue中
    uni.getPushClientId({
    success: (res) => {
    let push_clientid = res.cid
    console.log(‘客户端推送标识cid:’,push_clientid)
    },
    fail(err) {
    console.log(err)
    }
    })
    在这里插入图片描述

1). 校验厂商离线推送是否集成成功
输入上方获取的 cid ,查询到对应的 Device Token 则说明云打包 “离线推送” 成功,同时支持离线推送。
如果未查询到 device token,则只能 “在线推送” 。离线推送想要手机接受到还需要配置云函数js
在这里插入图片描述

2.服务端推送消息
注意:使用 uni-push 2.0,服务端不支持用个推 api 推送,只能用 dcloud 提供的 服务端(云函数)推送 。

unipush2快速接入指南:

uni-push 2.0 常见问题:https://ask.dcloud.net.cn/article/40291

1).云函数创建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:扩展库依赖 3 张 opendb 表:opendb-tempdata,opendb-device,uni-id-device。公测版 uniCloud,执行扩展库会自动创建。如果你使用的是 uniCloud 正式版需要自己在 uniCloud 的 web控制台 创建这3张表。
示例如下:
在这里插入图片描述
在这里插入图片描述

3.云函数执行
在云函数文件目录右键(或按快捷键ctrl + r)-> 上传并运行云函数,此时你的客户端将收到推送消息(应用关闭时为通知栏消息,在线时代码监听到推送消息)。
云函数中调用uni-cloud-push扩展库的sendMessage方法,向客户端推送消息

// 简单的使用示例  
'use strict';  const uniPush = uniCloud.getPushManager({appId:"__UNI__XXXXXX"}) //注意这里需要传入你的应用appId  
exports.main = async (event, context) => {  return await uniPush.sendMessage({  "push_clientid": "xxx",     //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid  "force_notification":true,  //填写true,客户端就会对在线消息自动创建“通知栏消息”。  "title": "通知栏显示的标题",      "content": "通知栏显示的内容",  "settings": {  //消息有效期设置,单位毫秒,-1表示不设离线。默认是 2 小时,取值范围:-1 ~ 3 * 24 * 3600 * 1000(3天)之间  "ttl":86400000  },  "payload": {  "text":"体验一下uni-push2.0"  },  "category": {  //HarmonyOS NEXT系统(纯血鸿蒙、非安卓鸿蒙)的消息分类,要给鸿蒙设备推送时才必传  "harmony":"MARKETING"  },  "options":{  //这里是需要配置的,之前进行消息分类申请"HW": {      // 值为int 类型。1 表示华为测试消息,华为每个应用每日可发送该测试消息500条。此 target_user_type 参数请勿发布至线上。      "/message/android/target_user_type":1      } ,    "HO": {      //值为int 类型。1 表示测试推送,不填默认为0。荣耀每个应用每日可发送该测试消息1000条。此测试参数请勿发布至线上。  "/android/targetUserType": 1   } ,  "VV": {      //值为int 类型。0 表示正式推送;1 表示测试推送,不填默认为0。此 pushMode 参数请勿发布至线上。  "/pushMode":1      } ,    "XM": {      //新小米消息分类下,私信公信id都必须要传,否则请求小米厂商接口会被拦截  "/extra.channel_id": "填写小米平台申请的渠道id"   }    }  })  
};

注意:非OPPO、VIVO软件商店官方渠道下载的应用,厂商不提供公信消息服务。
vivo、oppo 对接离线推送时,可以暂时发送测试消息,额外需要分别在 vivo 开放平台 、 oppo开放平台 录入测试用户(regid 对应个推cid 绑定的 device token,可以从个推后台的“故障排查”中查询 cid 信息获取)。
在线消息无额度限制。离线推送各厂商的限额(包含 extra.channel_id 如何申请),详见: 厂商通道限额
HarmonyOS NEXT系统(纯血鸿蒙、非安卓鸿蒙)的消息分类,harmony取值参考 云端通知category取值
如果你希望当应用在线时,也通过“通知栏消息”来提醒用户;可以通过以下两种方式实现:
1).监听到消息内容后,根据业务需要自己判断是否要创建“通知栏消息”,需要就调用创建本地消息API uni.createPushMessage手动创建通知栏消息。
2).服务端执行推送时,传递参数force_notification:true,客户端就会自动创建“通知栏消息”(此时你监听不到消息内容),当用户点击通知栏消息后,APP才能监听到消息内容。
先跟着示例代码简单体验,详细的 uniPush.sendMessage API介绍 详情参考
检查确认当前 app 的通知栏权限开启后,则可以开始进行推送测试。
4.测试在线推送,打开 app 在前台时进行推送
在这里插入图片描述

  1. 测试离线推送,关闭 app 进程时进行推送
    在这里插入图片描述

下面是已经用于项目的云函数js配置(其中小米、华为、oppo需要申请,其他的可以通用)

"HW": {"/message/android/category": 'DEVICE_REMINDER', //设备提醒
},
"HO": {
"/android/notification/importance": "NORMAL" //importance字段值为LOW:资讯营销类消息 ;importance字段值为NORMAL:服务与通讯类消息
},
"VV": {
"/category":'DEVICE_REMINDER',//系统消息-设备消息
},
"XM": {
"/extra.channel_id": "", // 小米通知渠道ID 需要在消息分类管理-channel列表进行申请
},
"OPPO": {// "/channel_id": "填写OPPO平台登记的渠道ID",// "/category": "填写Opush消息类别category",
},
"MZ": {"/noticeMsgType": 1 //魅族 请填写整数类型的消息分类(0:公信;1:私信)
}

四、文档地址
Doclud地址:https://dev.dcloud.net.cn/pages/app/push2/thirdparty
unipush2快速接入指南:
uni-push 2.0 常见问题:https://ask.dcloud.net.cn/article/40291
消息分类文档:https://docs.getui.com/getui/server/rest_v2/third_party/?id=doc-title-28
离线配置文档:
https://docs.getui.com/getui/mobile/vendor/qps/
厂商应用开通指南:
https://docs.getui.com/getui/mobile/vendor/vendor_open/
Vivo消息分类文档:https://push.baidu.com/doc/guide/vivo_category

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

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

相关文章

CentOS系统哪些版本?分别适用于那些业务或网站类型?

CentOS(Community ENTerprise Operating System)是一款开源的企业级 Linux 操作系统,因其稳定性、安全性和长期支持周期,广泛应用于服务器环境。以下是 CentOS 的主要版本及其适用场景的详细介绍。1. CentOS 主要版本CentOS 的版本…

【前端】【Iconify图标库】【vben3】createIconifyIcon 实现图标组件的自动封装

🧩 Vue 图标管理全攻略:Iconify createIconifyIcon 封装最佳实践 在前端项目中,图标无处不在。按钮需要图标,导航需要图标,提示信息也少不了图标。如何优雅、高效地使用图标,是每个中大型 Vue 项目不可回…

数据可视化全流程设计指南

一、需求定义阶段1. 明确核心目标回答关键问题:2. 确定数据特性import pandas as pd data pd.read_csv(your_data.csv) print(f""" 数据概览: - 维度: {data.shape[1]}列 {data.shape[0]}行 - 类型分布: {data.dtypes.value_counts()} - 缺失值: …

Llama系列:Llama1, Llama2,Llama3内容概述

前言 参考视频:大模型修炼之道(三): Llama系列讲解 Llama1,Llama2, Llama3_哔哩哔哩_bilibili 本博客是基于视频的学习笔记,以及相关知识点的扩充 Llama1 1. 动机 使用完全开源数据,性能媲美GPT3研究开源,禁止商用…

Docker 搭建本地Harbor私有镜像仓库

Docker 搭建本地Harbor私有镜像仓库 一、Harbor 核心价值与企业级特性解析 在容器化技术普及的背景下,镜像仓库作为容器生命周期的核心组件,其可靠性直接影响开发效率与生产稳定性。Docker 官方的 Registry 虽能实现基础镜像存储,但存在明显短…

AI 助力:如何批量提取 Word 表格字段并导出至 Excel

在日常办公中,我们经常需要处理大量的 Word 文档中的表格数据,如学生登记表、客户信息表、报名表等。然而这些表格往往格式各异、字段命名不统一(如“姓名”“名字”“Name”),甚至含有合并单元格或多余空白行&#xf…

在 Azure Linux 上安装 RustFS

本文分享在 Azure Linux 上安装并使用对象存储 RustFS 的过程。 关于 RustFS RustFS 是一款用 Rust 语言编写的分布式存储系统,兼容 S3 协议,是 MinIO 的国产化平替。详情可以前往 RustFS 官网。目前,RustFS 支持二进制、Docker 安装方式&am…

实现在线预览pdf功能,后台下载PDF

<!-- PDF预览模态框 --><n-modalv-model:show"pdfModalVisible"title"投诉统计报告预览":closable"false":mask-closable"false"positive-click"closePdfModal"positive-text"关闭":width"900"…

华为VS格行VS中兴VS波导随身WIFI6怎么选?流量卡OR随身WIFI,长期使用到底谁更香?

在移动互联时代&#xff0c;流量焦虑成为现代人的通病。面对"办流量卡还是随身WiFi"的抉择&#xff0c;许多人陷入两难。本文从实际需求出发&#xff0c;用数据和场景帮你精准决策&#xff0c;尤其这五类人群建议直接选择正规随身WiFi。一、这五类人&#xff0c;随身…

AI网络搜索

作为AI应用程序开发人员在了解函数调用&#xff08;Function Calling&#xff09;特性调用本地函数时可能注意到列表型参数tools中每一个元素都携带有一个type值。而在大多数函数调用示例程序中&#xff0c;这个type值一直被设定为“function”&#xff0c;这意味着它还可能存在…

39.Sentinel微服务流量控制组件

雪崩问题 微服务调用链路中某个服务故障,引起整个链路中的所有微服务都不可用。 解决方案 1.超时处理:设置一个超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止的等待。(只能起到缓解作用,并不能从根本上解决问题) 2.舱壁模式:限定每个业务能使用的线程…

基于hadoop的竞赛网站日志数据分析与可视化(下)

【基于hadoop的竞赛网站日志数据分析与可视化&#xff08;上&#xff09;】讲解了如何用hadoop对数据进行初步处理&#xff0c;本篇主要讲解用python对结果数据进行可视化分析。 ------------------------------------------------------------------------------------------…

Python爬虫打怪升级:数据获取疑难全解析

一、引言 **​​​ 在大数据时代,数据就是价值的源泉。而 Python 爬虫,作为数据获取的得力助手,凭借 Python 简洁的语法和丰富强大的库,在众多领域发挥着重要作用。无论是电商领域的价格监测、市场调研中的数据收集,还是学术研究里的文献获取,Python 爬虫都能大显身手。…

基于R语言的极值统计学及其在相关领域中的实践技术应用

极值统计学就是专门研究自然界和人类社会中很少发生&#xff0c;然而发生之后有着巨大影响的极端现象的统计建模及分析方法&#xff1b;在水文、气象、环境、生态、保险和金融等领域都有着广泛的应用。一&#xff1a;独立假设下的极值统计建模 1.广义极值模型. 2.极小值的处理.…

前端面试十一之TS

TS 是 TypeScript 的缩写&#xff0c;是一种由微软开发的开源编程语言&#xff0c;它是 JavaScript 的一个超集&#xff0c;为 JavaScript 添加了类型系统和对 ES6 的支持。以下是关于 TypeScript 的详细介绍&#xff1a;一、特点类型系统&#xff1a;TypeScript 引入了类型注解…

Excel快捷键

Excel快捷键可以快速提高使用Excel的效率&#xff0c;下面将Excel快捷键进行整理汇总以备不时之需 标注颜色的为需要经常使用并可以显著提高效率的快捷键 Ctrl相关快捷键【Ctrl】【1】 显示【单元格格式】设置窗口,可以设置选中的格式【Ctrl】【2】 应用或取消加粗…

Windows 10/11安装WSL、Ubuntu、Docker Desktop

WSL&#xff0c;Windows Subsystem for Linux&#xff0c;是微软开发的轻量级虚拟机环境&#xff0c;允许用户在 Windows上运行完整的Linux内核和用户空间&#xff0c;适用于Windows的Linux子系统。能实现&#xff1a; 运行原生的Linux命令和程序&#xff08;如apt&#xff0c…

React之旅-06 Ref

当你想让一个组件“记住”一些信息&#xff0c;但又不想这些信息触发新的渲染时&#xff0c;你可以使用 ref。使用 Ref 前&#xff0c;需要导入useRef&#xff0c;代码如下&#xff1a;import { useRef } from react;在您的组件内部&#xff0c;调用 useRef 并将您想要引用的初…

stm32-Modbus主机移植程序理解以及实战

目录一、背景二、代码理解&#xff08;一&#xff09;main()函数例程代码功能遇到的问题解决方式分析&#xff08;二&#xff09;eMBMasterPoll( void )函数例程代码1. 变量声明2. 协议栈状态检查3. 获取事件4. 事件处理&#xff08;switch-case&#xff09;4.1 EV_MASTER_READ…

c++判断文件或目录是否存在

#include<sys/stat.h>#include<fstream>#include<string>#include<stdio.h>#include<stdlib.h>#include<vector>#include<io.h>#include<iostream>bool IsFileGood(string strFileName, book bFile){if(bFile) \\文件{ifstrea…