UniApp常见问题
URL
date
Jul 1, 2022
slug
uniapp
status
Published
tags
UniApp
Android
summary
uniapp项目的一些问题和总结
type
Post
UniApp开发App使用热更UniApp项目中App 使用pdf.js 预览pdfAndroid 自动打包思路自动打包的思路1. 更改项目为脚手架2. CentOS安装Android SDK3. 安装JDK4. 配置uniapp提供的sdk5. js使用minio上传Jemter压测
UniApp开发App使用热更
前端代码实现ci/cd,自动打包apk和wgt文件,上传到数据库中做记录,App启动获取当前平台(platform)、版本号(versionName)、打包号(versionCode),携带参数向后台发送接口,后台来判断是否是最新版本,是否需要更新
前端代码ci/cd:
数据库设计表 //todo
服务接口 //todo
- 根据输入版本号查询,是否是最新版本,如果不是最新版本,则返回最新版本url(当前逻辑为:查询数据库中标记的最新版本,并与当前传回的版本号比对是否一致,存在有旧版本标记为最新,逆更新的情况)
- wgt上传接口,
上传wgt文件和版本号可以省略,后端可以解析wgt中的文件,并读取文件中的版本号和打包版本
UniApp项目中App 使用pdf.js
预览pdf
使用
pdf.js
做预览 目前最高支持版本
`
pdfjs-2.6.347
`
老版本,这个打完包的体积会比较小,新版本打完包巨大
在
uniapp
的src下创建路径 hybrid/html/pdf
,并放入 build
web
两个文件夹file origin does not match viewer’s,
注释
viewer.js
的代码:创建
preview-pdf.vue
,参考https://github.com/Eveveen/uni-app-pdf使用跳转就可以预览了
Android 自动打包思路
版本选择
UniApp
2.0.1-33920220208001
uView
1.8.4
通过git分支的概念 把不同的环境切出不同的分支,进行代码的隔离
需定义好每个分支的环境,并在每次升级版本(合并分支代码)的时候增加分支对应的版本
tag
记录代码管理
dev
分支为开发环境的代码test
分支为测试环境的代码main
分支为生产环境的代码自动打包的思路
- 先把项目改成脚手架
- 将uniapp提供到Android sdk项目加入到前端代码中
- 服务器安装打包环境Android SDK和JDK
- 前端代码提交时,GitLab-CI 执行build,把打包文件放到指定位置,然后执行android打包命令
- 使用nodejs上传apk到minio http://docs.minio.org.cn/docs/master/javascript-client-quickstart-guide
1. 更改项目为脚手架
uniapp cli方式,实现方式,可参考官方文档https://uniapp.dcloud.net.cn/quickstart-cli
- 环境安装,全局安装,
npm install -g @vue/cli
- 使用正式版,
vue create -p dcloudio/uni-preset-vue my-project
- 把uview的项目拖入到src里面,启动即可
- 为了避免sass和less报错,package.json中添加以下代码
在
vue.config.js
只增加2. CentOS安装Android SDK
- 下载 Android SDK https://developer.android.google.cn/studio/#downloads
- 安装
sdkmanager
下载linux版本,并解压unzip xxxx.zip
放到/opt/android-sdk
路径下
- 更改
/opt/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager
为/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager
- 配置环境变量
vim /etc/profiles
,并重启环境变量source /etc/profiles
- 列出列表
sdkmanager --list
- 安装软件
sdkmanager "platform-tools" "platforms;android-30" "build-tools;30.0.2"
(这三个安装包可以分开安装,这边是偷懒的写法,即一次性安装了三个)
3. 安装JDK
- 安装jdk
yum install -y java-1.8.0-openjdk*
4. 配置uniapp提供的sdk
- 报错找不到sdk
在根路径下添加文件
local.properties
添加如下代码。指定sdk位置
Mac下是
sdk.dir=/Users/wangjiahao/Library/Android/sdk
Centos下是
sdk.dir=/opt/android-sdk
这个就是安装sdk的位置- 删除
app/src/main/AndroidManifest.xml:30
中的android:debuggable="false"
- app打包命令,查看打包位置
app/build/outputs/apk/release
5. js使用minio上传
npm install -g minio
touch file-uploader.js
执行命令
node file-uploader.js
nodejs
yargs
minimist
\
经过反复测试,发现yargs也无法解析换行,目前还未找到解决方案
Jemter压测
see Jemter压测