当前位置: 首页 > 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

http://www.lryc.cn/news/474029.html

相关文章:

  • qt QPicture详解
  • ScheduledFuture Source Code Analysis
  • 【CSS】CSS 样式重置 (normalize.css 和 reset.css) 和通用样式配置
  • 自动化机器学习(AutoML)详解
  • Linux: network:erspan0
  • 第11课 计算思维
  • ACL, ACL Workshop, ACL Findings 解释
  • 《使用Gin框架构建分布式应用》阅读笔记:p272-p306
  • 【搜索引擎】俄罗斯搜索引擎yandex
  • 加密源代码|html代码如何加密保护?3分钟学会4种源代码加密妙招,代码人必看
  • Jetson Orin NX平台自研载板 IMX477相机掉线问题调试记录
  • spring-boot(整合mybatisplus、及常见注解)
  • 深度学习:yolov3的使用--建立模型
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.13——深入理解指针(3)
  • 每日算法一练:剑指offer——数组篇(6)
  • 【环境搭建】Apache ZooKeeper 3.8.4 Stable
  • 算法练习——双指针
  • vue中el-table显示文本过长提示
  • JS 字符串拼接并去重
  • opencv 图像预处理
  • SAP B1 功能模块字段介绍 - 价格清单(下)
  • 传智杯 第六届-复赛-D
  • Java - 数组实现大顶堆
  • ifuse挂载后,在python代码中访问iOS沙盒目录获取app日志
  • Windows WSL环境下安装 pytorch +ROCM 支持AMD显卡
  • uniapp中skymap.html(8100端口)提示未登录的排查与解决方法
  • 训练模型时梯度出现NAN或者INF(禁用amp的不同level)
  • Maven核心概念
  • Sonatype Nexus 部署手册
  • TLV320AIC3104IRHBR 数据手册 一款低功耗立体声音频编解码器 立体声耳机放大器芯片麦克风