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

uniapp推送配置流程

Dcloud

Dcloud注册账号
在这里插入图片描述

个推

了解即可
注册个推账号
在这里插入图片描述

ios配置流程

需配置含有推送的描述文件以及p8证书
配置推送证书
ios证书配置报技术错误(参数错误)
TeamID-苹果开发者账号唯一的ID

安卓需配置多厂商

小米手机需要配置小米厂商
华为手机则需要配置华为厂商
Google FCM则需要海外手机才能测试,国内安卓无法测试,无法获取device-token

故障排查

问题排查

uniapp厂商配置文档

了解即可
个推厂商配置文档

测试推送

注意:此推送仅在app离线状态显示

通知消息

uni.onPushMessage无法获取消息内容
原因:由于 ios 系统的限制,ios app 在线时,只能推送透传消息。

在这里插入图片描述

透传消息

uni.onPushMessage能获取消息内容

在这里插入图片描述
在这里插入图片描述

了解即可
在这里插入图片描述

推送成功展示

在这里插入图片描述

在这里插入图片描述

如何实现在线推送

在App.vue文件添加以下代码

			uni.onPushMessage((res) => {// 监听通知栏消息的点击  if (res.type == 'click') {// 如果需要跳转app内指定页面,则自己实现下方的跳转代码。  // uni.navigateTo({// 	//页面路径示例值:/pages/pushinfo/pushinfo    // 	url: '指定页面路径'// })}// 监听在线推送消息,若云函数设置了 "force_notification":true,则不会触发此 receive。  if (res.type == 'receive') {console.log("接收到的消息内容", res.data);// if (res.data.content) { // 透传、云函数才会拿到内容// 	uni.createPushMessage({// 		content: res.data.content// 	})// }}})// 获取ciduni.getPushClientId({success(res) {},fail(err) {}})

push原生文档
问题集合

在这里插入图片描述
发行打包时,勾选GooglePlay渠道,安卓会打包成aab格式,上架Google Play 商店需要此安装包格式。
安卓手机不能直接安卓aab格式的安装包,需从Google Play 商店进行下载(Google Play 商店会根据用户设备筛选出合适apk供用户下载)

开发测试:可以通过bundletool工具进行aab装换成apk进行测试安装。

利用bundletool将aab格式转换成apks
bundletool将aab格式转换成apks原地址

注意bundletool-all-1.17.1.jar,此jar包jdk8版本会失败,使用jdk17版本即可

java -jar <bundletool.jar的路径> build-apks --bundle=<.aab文件的路径> --output=<输出.apks的路径> --ks=<打包使用的证书文件的路径> --ks-pass=pass:<证书密码> --ks-key-alias=<证书别名> --key-pass=pass:<证书别名密码,通常与证书密码一致>// 例子
java -jar D:\...\bundletool-all-1.17.1.jar build-apks --bundle=D:\...\myApp.aab --output=D:\...\myApp.apks --ks=D:\...\myKey.keystore --ks-pass=pass:123456 --ks-key-alias=myKey_gci --key-pass=pass:123456

输出的myApp.apks将后缀apks修改成zip,在进行压缩包解压,解压会看到以下目录
解压目录
点开splits或者standalones目录会看到一堆apk文件,根据手机配置进行选择即可(不建议,并不通用)
apk文件
apk目录

指定配置文件输出apk

使用 extract-apks 命令从现有的 APK 集合中提取指定设备配置的 APK 子集

java -jar D:\...\bundletool-all-1.17.1.jar extract-apks --apks=D:\...\xxx.apks --device-spec=D:\...\device_config.json --output-dir=D:\...\apk-list

device_config.json

{"supportedAbis": ["arm64-v8a", "armeabi-v7a"],"supportedLocales": ["zh-Hans"],"screenDensity": 480,"sdkVersion": 31}

如何选择
如何选择

连接usb,针对设备生成专用的json文件

java -jar D:\...\bundletool-all-1.17.1.jar get-device-spec --output=D:\...\device_config.json

设备规范 JSON 文件

{"supportedAbis": ["arm64-v8a", "armeabi-v7a", "armeabi"], // CPU 架构类型"supportedLocales": ["zh-CN"], // 指定了应用支持语言// "deviceFeatures": [], // 设备支持的各种硬件或系统特性。这些特性可以包括触摸屏、GPS、摄像头、传感器等多种硬件功能// "glExtensions": [], // OpenGL 扩展"screenDensity": 440, // 设备屏幕的像素密度"sdkVersion": 34, // 指定设备运行sdk版本"sdkRuntime": {"supported": true // 用户在安装应用时,只有主模块会被下载,而其他特性模块则可以根据需要在后续时间动态下载}//...
}

屏幕的像素密度

根据设备的屏幕密度选择合适的资源,例如图像和字体文件,以确保应用在该设备上的显示效果最佳。

  • ldpi (low) - 120 dpi
  • mdpi (medium) - 160 dpi
  • hdpi (high) - 240 dpi
  • xhdpi (extra-high) - 320 dpi
  • xxhdpi (extra-extra-high) - 480 dpi
  • xxxhdpi (extra-extra-extra-high) - 640 dpi

题外话:什么是apks?

APKS 文件中的每个单独的 APK 文件都是根据设备的各个方面生成的。这些包括架构、语言、屏幕密度和其他设备功能。
当 Android App Bundle (AAB) 准备就绪时,可以测试其在 Google Play 商店中的行为以部署到设备。为此,可以从 AAB 文件生成 APKS 文件,并使用 Google 的 Android bundletool 将其安装在测试设备上。
standalone-arm64_v8a_hdpi.apk

standalone
CPU类型 : arm64_v8a or armeabi_v7a
Android设备上不同屏幕密度的分类 : hdpi、ldpi、mdpi、tvdpi、xhdpi、xxhdpi、xxxhdpi

Android Debug Bridge (ADB)工具使用

是连接Android手机与PC端的桥梁
下载地址
下载后解压,找到adb.exe的目录位置,配置环境变量即可
adb.exe
查看版本

adb version

版本
安装完成!
adb常用命令

adb devices #查看当前连接的设备,已连接的设备会显示出来
adb get-serialno #也可以查看设备号
adb root
adb -s <设备号> shell #指定一个设备号进行连接 exit #退出
adb install
adn uninstall

疑点:
fcm需要安卓手机内置谷歌服务,并开启,国内安卓大部分不会内置谷歌服务,所以无法推送成功(因为被墙了)
在这里插入图片描述

在这里插入图片描述

uni-push 2.0 快速接入指南
uni-push2.0 常见问题
FCM

相关文章:

uniapp推送配置流程

Dcloud Dcloud注册账号 个推 了解即可 注册个推账号 ios配置流程 需配置含有推送的描述文件以及p8证书 配置推送证书 ios证书配置报技术错误&#xff08;参数错误&#xff09; TeamID-苹果开发者账号唯一的ID 安卓需配置多厂商 小米手机需要配置小米厂商 华为手机则需…...

qt QPicture详解

1、概述 QPicture类是Qt框架中的一个重要图形类&#xff0c;它主要用于记录和回放QPainter的绘图指令。这个类能够跨平台、无分辨率依赖地绘制图形&#xff0c;非常适合用于实现打印预览和图像操作等场景。QPicture可以将绘图操作序列化为一种独立于平台的格式&#xff0c;保存…...

ScheduledFuture Source Code Analysis

ScheduledFuture Overview is a delayed result-bearing action, 可以被cancel.通常是在ScheduledExecutorService里面schedule一个task, 然后ScheduledFuture是其task执行接受后的返回结果。 Code Analysis 继承于两个接口&#xff1a; extends Delayed, Future一些继承ch…...

【CSS】CSS 样式重置 (normalize.css 和 reset.css) 和通用样式配置

一般来说&#xff0c;每一个项目初始化阶段都需要样式重置和样式定制化。样式重置最常用的就是 normalize.css 和 reset.css 这两个文件。 他们的区别&#xff1a; Normalize.css更加注重保留有用的浏览器默认样式&#xff0c;仅修复浏览器之间的不一致性&#xff0c;适用于需…...

自动化机器学习(AutoML)详解

自动化机器学习&#xff08;AutoML&#xff09;详解 引言 在数据驱动的时代&#xff0c;将庞大的数据集转化为有价值的洞察和预测模型是众多组织的首要任务。然而&#xff0c;传统的机器学习流程复杂且耗时&#xff0c;包括数据预处理、特征选择、模型选择、调参以及模型评估…...

Linux: network:erspan0

文章目录 问题介绍生成时间:代码Linux引入后面NONE是怎么生成的问题 最近看到一个网卡是erspan0,不知道是做什么用的: # ip -d link show erspan0 7: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN mode DEFAULT group default qlen 10000...

第11课 计算思维

从二级考试开始&#xff0c;计算思维基本上以编程题的形式考察。为了避免一看就会&#xff0c;一写就废的情况&#xff0c;需要我们加强编程练习&#xff0c;把学到的知识&#xff0c;通过实战练习&#xff0c;变成自己的本领。 同一道题&#xff0c;一般会有多种解决方法&…...

ACL, ACL Workshop, ACL Findings 解释

ACL&#xff08;Annual Conference of the Association for Computational Linguistics&#xff09;是自然语言处理&#xff08;NLP&#xff09;领域的顶级会议之一&#xff0c;但确实有多个与ACL相关的会议和出版物&#xff0c;具体如下&#xff1a; ACL Main Conference&…...

《使用Gin框架构建分布式应用》阅读笔记:p272-p306

《用Gin框架构建分布式应用》学习第15天&#xff0c;p272-p306总结&#xff0c;总35页。 一、技术总结 1.TDD(test-driven development) 虽然经常看到TDD这个属于&#xff0c;从本人的工作经历看&#xff0c;实际开发中用得相对较少。 2.unitest(单元测试) go语言开发中&a…...

【搜索引擎】俄罗斯搜索引擎yandex

俄罗斯搜索引擎yandex 1997年&#xff0c;俄罗斯搜索引擎Yandex&#xff08;俄语意为&#xff1a;语言目录&#xff09;首次上线&#xff0c;已发展成为全球第四大搜索引擎和第二大非英语搜索引擎 https://yandex.com/...

加密源代码|html代码如何加密保护?3分钟学会4种源代码加密妙招,代码人必看

你是否曾担心过自己的源代码被轻易复制或篡改&#xff1f; 在这个开源和共享盛行的时代&#xff0c;如何加密源代码&#xff0c;成为了每个开发者不得不面对的问题。 古人云&#xff1a;“工欲善其事&#xff0c;必先利其器。”今天&#xff0c;我们就来探讨一下如何加密保护你…...

Jetson Orin NX平台自研载板 IMX477相机掉线问题调试记录

1. 前言 平台: NVIDIA Orin NX 硬件: 自研载板 相机: 3个IMX477树莓派HQ摄像头通过CSI接口连接 版本: L4T 35.4.1(我们也在35.5.0上测试了一些东西) 参数: 30fps,4032x3040 问题描述: 其中一个IMX477相机在录制过程中出现可变时间后退出 短则10秒,长则5小时,…...

spring-boot(整合mybatisplus、及常见注解)

介绍 在日常开发中单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是MybatisPlus. MyBatisPlus是针对于Mybatis框架的增强,即合…...

深度学习:yolov3的使用--建立模型

使用argparse模块来定义和解析命令行参数 创建一个ArgumentParser对象 parser argparse.ArgumentParser() 训练的轮数&#xff0c;每批图像的大小&#xff0c;更新模型参数之前累积梯度的次数,模型定义文件的路径。 parser.add_argument("--epochs", typeint, d…...

关于我、重生到500年前凭借C语言改变世界科技vlog.13——深入理解指针(3)

文章目录 1.字符指针变量2.数组指针变量3.函数指针变量4.函数指针数组5.二维数组传参本质6.拓展补充希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本章节接着学习常见的指针变量类型 1.字符指针变量 字符指针变量&#xff0c;顾名思义就是字…...

每日算法一练:剑指offer——数组篇(6)

1.点名 某班级 n 位同学的学号为 0 ~ n-1。点名结果记录于升序数组 records。假定仅有一位同学缺席&#xff0c;请返回他的学号。 示例 1: 输入: records [0,1,2,3,5] 输出: 4示例 2: 输入: records [0, 1, 2, 3, 4, 5, 6, 8] 输出: 7提示&#xff1a; 1 < records.le…...

【环境搭建】Apache ZooKeeper 3.8.4 Stable

软件环境 Ubuntu 20.04 、OpenJDK 11 OpenJDK 11&#xff08;如果已经安装&#xff0c;可以跳过这一步&#xff09; 安装OpenJDK 11&#xff1a; $ sudo apt-get update$ sudo apt-get install -y openjdk-11-jdk 设置 JAVA_HOME 环境变量&#xff1a; $ sudo gedit ~/.bash…...

算法练习——双指针

前言&#xff1a;大佬写博客给别人看&#xff0c;菜鸟写博客给自己看&#xff0c;我是菜鸟。 学前须知&#xff08;对自己&#xff09;&#xff1a;这里的指针不一定指地址&#xff01;也可能是数组下标。 1&#xff1a;移动零(双指针) 题目要求&#xff1a; 解题思路&#x…...

vue中el-table显示文本过长提示

1.el-table设置轻提示:show-overflow-tooltip“true“&#xff0c;改变轻提示宽度...

JS 字符串拼接并去重

1、includes 循环数组将某个字段拼接成新的字符串并去重&#xff08;数组里面包含的一个对象&#xff0c;或者其他都OK&#xff09; // 定义一个数组 let arr[.......] // 定义拼接的字符串 let a //循环数组将里面某个字段拼接在一起并去重 arr.forEach(item > {if(!a.in…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...