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

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

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

相关文章

每天10个vue面试题(四)

1、简述 mixin、extends 的覆盖逻辑&#xff1f; mixin 和 extends均是用于合并、拓展组件的&#xff0c;两者均通过 mergeOptions 方法实现合并。mixins 接收一个混入对象的数组&#xff0c;其中混入对象可以像正常的实例对象一样包含实例选项&#xff0c;这些选项会被合并到…

zookeeper全系列学习之分布式锁实现

文章目录 前言一、分布式锁的通用实现思路二、ZK实现分布式锁的思路三、ZK实现分布式锁的编码实现1、核心工具类实现2、测试代码编写线程安全问题复现使用上面封装的ZkLockHelper实现的分布式锁 优点缺点 总结 前言 就像上篇文章zookeeper全系列学习之统一配置获取说的&#x…

Uni-App-02

条件编译 条件编译概念 不同的运行平台终归有些专有的特性&#xff0c;无法实现跨平台完全兼容&#xff0c;例如&#xff1a;微信小程序导航栏右上角的关闭图标。 uni-app提供了一种“条件编译”机制&#xff0c;可以针对特定的平台编译执行特定的代码&#xff0c;否则不执行。…

【ArcGISPro】制作简单的ArcGISPro-AI助手

【python】AI Navigator的使用及搭建本机大模型_anaconda ai navigator-CSDN博客 【Python】AI Navigator对话流式输出_ai大模型流式输出效果(打字效果) python-CSDN博客 【C#】调用本机AI大模型流式返回_怎么实现调用本地大模型时实现流式输出-CSDN博客 【ArcGISPro】宣布推…

springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)

刚解决Spring Framework 特定条件下目录遍历漏洞&#xff08;CVE-2024-38816&#xff09;没几天&#xff0c;又来一个新的&#xff0c;真是哭笑不得啊。 springboot 修复 Spring Framework 特定条件下目录遍历漏洞&#xff08;CVE-2024-38816&#xff09;https://blog.csdn.ne…

稳定性排查指令

有无输入指令 adb shell getevent lrt 磁盘信息 adb shell df -h 查看data分区 内存信息 adb shell cat /proc/meminfo | grep MemFree adb shell dumpsys meminfo com.aaaa.systemservice&#xff08;不跟就是所有的pss&#xff0c;rss等分布&#xff09; 堆栈信息代码中 L…

Django后台接口开发

一、设计轮播图ORM模型 设计轮播图的ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;模型&#xff0c;主要是为了在关系型数据库和业务实体对象之间建立一个映射关系。这样&#xff0c;开发者在操作具体的业务对象时&#xff0c;就不需要再编写…

android 10 后台启动activity

摘要&#xff1a;Android 10&#xff08;API 级别 29&#xff09;及更高版本会限制应用何时可以启动 activity 背景。这些限制有助于最大限度地减少对用户的干扰&#xff0c; 让用户能够更好地控制其屏幕上显示的内容。本文以此为出发点&#xff0c;基于展锐平台对系统代码进行…

什么是阻塞队列?阻塞队列的实现原理及使用详解

在现代的多线程编程中&#xff0c;线程之间的协作与同步是提升程序稳定性和并发性能的重要环节。而 阻塞队列&#xff08;Blocking Queue&#xff09; 是 Java 并发包中用于实现线程安全的数据交换的基础工具之一&#xff0c;它广泛用于生产者-消费者模式等多种场景。本文将深入…

职场中同事与你抢功你该怎么说

职场如战场&#xff0c;当你花费心思提出一个好方案&#xff0c;拉到一个大客户&#xff0c;抑或你兢兢业业地工作为公司发展做出了极大的贡献时&#xff0c;同事想把这一切归功于自己&#xff0c;这时你该怎么办&#xff1f;是据理力争&#xff0c;还是自认倒霉&#xff1f;或…

可编辑97页PPT | 制造企业数字化转型战略咨询及IT总体规划方案

荐言分享&#xff1a;制造企业数字化转型是当前市场环境下的必然趋势&#xff0c;旨在通过引入先进的信息技术&#xff0c;优化业务流程&#xff0c;提升运营效率&#xff0c;增强客户体验&#xff0c;实现可持续发展。这一转型过程涉及多个方面&#xff0c;需要综合考虑企业战…

计算机网络的数据链路层

计算机网络的数据链路层 数据链路层是OSI参考模型中的第二层&#xff0c;它位于物理层之上&#xff0c;网络层之下。数据链路层的主要功能是在物理层提供的服务的基础上向网络层提供服务&#xff0c;其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。…

计算机视觉中的点算子:从零开始构建

Hey小伙伴们&#xff01;今天我们要聊的是一个非常基础但极其重要的计算机视觉技术——点算子&#xff08;Point Operators&#xff09;。点算子主要用于对图像的每个像素进行独立的处理&#xff0c;比如亮度调整、对比度增强、灰度化等。通过这些简单的操作&#xff0c;我们可…

001-Kotlin界面开发之Jetpack Compose Desktop学习路径

Compose Desktop学习之路 学习过程 理解Kotlin的基本语法 Compose Desktop采用Kotlin构建&#xff0c;因此对Kotlin的基本语法有很好的理解是必不可少的。你可以从官方的Kotlin文档开始。 用一句话概括&#xff0c;Kotlin是一种现代的、静态类型的编程语言&#xff0c;它结合…

小金标认证的头戴式蓝牙,QCY H3 Pro耳机,平价高音质的新选择

我发现如今市面上百元级的头戴式无线耳机都有非常出色的音质表现了&#xff0c;这其中国产品牌的表现尤为亮眼&#xff0c;与入耳式耳机相比&#xff0c;头戴式耳机拥有更大的发音单元和更包裹耳朵的耳罩设计&#xff0c;提供了更舒适稳固的佩戴体验&#xff0c;在音质和降噪效…

方法+数组

1. 方法 1. 什么是方法 方法定义&#xff1a; // []表示可写可不写[public] [static] type name ( [type formal , type formal , ...]){方法体&#xff1b;[return value ;] }[修饰符] 返回值类型 方法名称([参数类型 形参 , 参数类型 形参 ...]){方法体代码;[return 返回值…

基于Android13源码分析Launcher启动

AMS被SystemServer启动之后&#xff0c;SystemServer会通过AMS调用startHomeActivity启动Launcher. Launcher其实就是个Activity&#xff0c;学习Launcher的启动后&#xff0c;再去看Activity启动&#xff0c;会容易很多。 Launcher的启动分2个阶段&#xff1a; 第一阶段是st…

机器学习-理论学习

系统学习机器学习理论知识需要你从基础的数学和统计原理开始&#xff0c;逐步深入了解各类算法和模型&#xff0c;最后掌握高级技术和应用领域。以下是机器学习全面的理论知识指南&#xff0c;内容较长&#xff0c;以满足你对知识深度的需求。 1. 数学和统计基础 机器学习的许…

螺旋式开发是不是就是敏捷开发?

螺旋式开发并不是敏捷开发。虽然它们都是软件开发过程中的一种模型或方法&#xff0c;但两者在核心理念、实施方式和适用场景上存在显著差异。 螺旋式开发是一种结合了瀑布式开发和迭代式开发的软件开发过程。它强调风险分析和质量保证&#xff0c;在每个螺旋周期中都包括需求…

大语言模型(LLM)入门级选手初学教程 II

模型架构 5.1 输入编码&#xff1a; i. 词元序列编码 Input Embedding Module ii. 位置编码&#xff08;Position Embedding, PE)&#xff0c;Transformer 的编码器结构本身无法识别序列中元素的顺序。 &#x1d499;&#x1d461; &#x1d497;&#x1d461; &#x1d491…