uni-app升级APP,包含apk整包升级和wgt应用资源升级
这里只说安卓的应用,软件包放在自己的服务器中。
三种方式
- apk包整包更新,要下载所有的文件包含权限模块依赖等,大小在20M+
- wgt包应用资源更新,只更新自己写的代码,根据你代码的多少大小在600k左右
- wgtu应用资源差量升级,只更新自己写的代码改变的那一小部分100k左右(实现起来有点复杂这里不讨论)
场景说明
如果你改了App模块配置,权限配置等这些mainifest.json里面的东西,那么就需要apk包整包升级,如果你只是改了代码里的某个地方的bug,或者增减模块这些,那么只需要更新应用资源包就可以了。
apk打包
- 1、代码修改完
- 2、修改manifest.json中的应用版本名称和应用版本号
- 3、发行
- 4、云打包
wgt打包
- 1、代码修改完
- 2、修改manifest.json中的应用版本名称和应用版本号
- 3、发行
- 4、制作应用wgt包
代码
mdLoading是自己写的一个提示
// 获取最新版本信息getVersion() {let that = this;// #ifdef APP-PLUSuni.showLoading({title: '正在获取最新版本信息...'});//这里用setTimeout模拟请求setTimeout(() => {uni.hideLoading();let onLineVersion = 105;//这里通过请求接口判断版本// onLineVersion > plus.runtime.versionCodeif (true) {uni.showModal({title: '发现新版本是否升级?',content: `1、新增个人信息模块2、新增版本信息模块`,success(res) {if (res.confirm) {that.content = '下载中...'that.$refs.mdLoading.show()let downloadTask = uni.downloadFile({// url: 'http://xxxxxx:8081/xxxxxx.wgt',//这个地址是请求后台接口返回的url:'http://xxxxxxxx:8081/xxxxxx.apk',success(downloadResult) {if (downloadResult.statusCode === 200) {that.content = '下载完成,安装中...'plus.runtime.install(downloadResult.tempFilePath,{force: true},function() {that.content = '应用更新完成稍后将重启应用'setTimeout(() => {that.$refs.mdLoading.hide()plus.runtime.restart();}, 1000);},function(e) {uni.showToast({icon: 'none',title: e});});}else{that.content = '应用下载失败'that.$refs.mdLoading.hide()}},fail(e){that.content = esetTimeout(()=>{that.$refs.mdLoading.hide()},1000)}});// 监听下载进度downloadTask.onProgressUpdate((e)=>{that.content = '下载中...'+ e.progress + ' %';})}}});} else {uni.showToast({icon: 'none',title: '当前已经是最新版本'});}}, 1000);// #endif}
mdLoading文件
<template><view><view v-show="visible" class="fy-loading flex justify-center"><view class="box flex flex-column align-center"><view class="loading"><image src="/static/loading.gif"></image></view><view class="content">{{content}}</view></view></view></view></template><script>export default{name:'fy-loading',props:{content:{type:String,default:''}},data() {return {visible: false}},methods:{show(){this.visible = true;},hide(){this.visible = false;}}}
</script><style scoped lang="scss">.fy-loading{position: fixed;left:0;top:0;right:0;bottom:0;width:100vw;height: 100vh;z-index:100;background: rgba(0,0,0,0.6);overflow: hidden;}.box{width:100px;height: 70px;margin-top:30vh;}.content{color:#fff;font-size:14px;text-align:center;margin-top:10px;}.loading{width:40px;height: 40px;}.loading image{width:100%;height: 100%;}
</style>
uni-app升级APP,包含apk整包升级和wgt应用资源升级相关推荐
- uni-app开发APP实现热更新和整包更新
热更新(.wgt):只有前端资源或模块进行调整,整个App结构不发生变化,那只需要更新这一部分资源,避免用户重新下载整个App.通过 HBuilderX 打包 .wgt 包即可 整包更新(.apk): ...
- android 打开h5文件下载,微信h5页面下载app —— 安卓直接下载apk文件包,IOS跳转AppStore的实现代码...
需求:微信h5页面下载app -- 安卓直接下载apk文件包,IOS跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX有合作的应用,否则也不 ...
- 微信h5页面下载app —— 安卓直接下载apk文件包,IOS跳转AppStore的实现代码
需求:微信h5页面下载app -- 安卓直接下载apk文件包,IOS跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX有合作的应用,否则也不 ...
- android差分包和整包的区别,整包升级与差分升级的区别
一.简介: OTA升级有两种类型,每一种类型都有对应的用途和优势.但是,只有一种类型是用户常常能够接触到的.现在我们来一起熟悉他们.如下图: 从上面的曲线图中我们知道,这两种类型分别是:Increme ...
- 当前版本与卡刷包android_miui验证失败版本不一致 升级MIUI8更新包验证失败,有人解决了吗...
小米5稳定版升开发版,安装包验证失败了是怎么回事 MIUI稳定版无法直接升级,是下载开发版安装包卡刷升级,安装包验证失败的原因有,开发版版本比稳定版的低,开发版版本与手机不对应,或者手机原来的系统非官 ...
- apk升级文件服务器,整包(apk/ipa)升级
5+应用可使用以下方式进行升级 - 整包升级:适用于大版本更新,runtime发生变化时(模块.配置.版本等变化)必须使用此更新方法 - 应用资源升级:适用于小版本更新 .runtime不变,前端页面 ...
- 查看apk的包名和启动页activity,adb命令启动app
查看apk的包名和启动页activity: aapt dump badging apk路径 第一个就是包名 launchable-activity对应的是启动页activity,在比较靠下的位置 ...
- Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包
需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...
- 解决APP误报毒 可打包APP可上传APK 自动实现5分钟随机更换包名和签名系统源码
简介: 解决app误报毒 可打包APP可上传APK 自动实现5分钟随机更换包名和签名系统源码 本程序功能介绍: 程序可实现域名自动打包成app 出现误报毒并自动更换包名和签名(*时间一次) 也可以上传 ...
最新文章
- Exception loading sessions from persistent storage
- 打包本地文件, 并使用Winscp上传脚本
- git常用命名行总结
- Veronica博士的研究方向的介绍
- c++类指针赋值表达式必须是可修改的左值_C++进阶教程系列:全面理解C++中的类...
- Eclipse(STS) 初次搭建Spring Cloud项目之声明式REST调用+负载均衡实现Feign(四)
- db设计专用excel_工程师必备:硬件EMC设计规范
- Java预科篇1-学前
- [模板]fhqTreap
- 《关于莉莉周的一切》
- Visual Studio 常用快捷键(一)
- 关于WEB ServiceWCFWebApi实现身份验证之WEB Service篇
- Python 语言创建 Abaqus inp 文件
- 2019 GDUT 新生专题I选集 L题(CodeForces - 1260B)
- 万能获取随机数公式 取1-100的随机数
- 万物智能——百度世界2020”大会
- 爬山法、随机重启爬山法、模拟退火算法对八皇后问题和八数码问题的性能测试...
- Android仿学习强国填空题考试界面
- DDD领域驱动设计(DP、Entity介绍;DDD实现流程;DDD聚合Aggregate;限界上下文(Bounded Context))
- GBASE 8s中loadunload