这里只说安卓的应用,软件包放在自己的服务器中。

三种方式

  • 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应用资源升级相关推荐

  1. uni-app开发APP实现热更新和整包更新

    热更新(.wgt):只有前端资源或模块进行调整,整个App结构不发生变化,那只需要更新这一部分资源,避免用户重新下载整个App.通过 HBuilderX 打包 .wgt 包即可 整包更新(.apk): ...

  2. android 打开h5文件下载,微信h5页面下载app —— 安卓直接下载apk文件包,IOS跳转AppStore的实现代码...

    需求:微信h5页面下载app -- 安卓直接下载apk文件包,IOS跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX有合作的应用,否则也不 ...

  3. 微信h5页面下载app —— 安卓直接下载apk文件包,IOS跳转AppStore的实现代码

    需求:微信h5页面下载app -- 安卓直接下载apk文件包,IOS跳转AppStore 分析:微信不支持,在微信中屏蔽了apk文件的下载以及AppStore的跳转(且除非和TX有合作的应用,否则也不 ...

  4. android差分包和整包的区别,整包升级与差分升级的区别

    一.简介: OTA升级有两种类型,每一种类型都有对应的用途和优势.但是,只有一种类型是用户常常能够接触到的.现在我们来一起熟悉他们.如下图: 从上面的曲线图中我们知道,这两种类型分别是:Increme ...

  5. 当前版本与卡刷包android_miui验证失败版本不一致 升级MIUI8更新包验证失败,有人解决了吗...

    小米5稳定版升开发版,安装包验证失败了是怎么回事 MIUI稳定版无法直接升级,是下载开发版安装包卡刷升级,安装包验证失败的原因有,开发版版本比稳定版的低,开发版版本与手机不对应,或者手机原来的系统非官 ...

  6. apk升级文件服务器,整包(apk/ipa)升级

    5+应用可使用以下方式进行升级 - 整包升级:适用于大版本更新,runtime发生变化时(模块.配置.版本等变化)必须使用此更新方法 - 应用资源升级:适用于小版本更新 .runtime不变,前端页面 ...

  7. 查看apk的包名和启动页activity,adb命令启动app

    查看apk的包名和启动页activity: aapt dump badging apk路径 第一个就是包名 launchable-activity对应的是启动页activity,在比较靠下的位置   ...

  8. Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包

    需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...

  9. 解决APP误报毒 可打包APP可上传APK 自动实现5分钟随机更换包名和签名系统源码

    简介: 解决app误报毒 可打包APP可上传APK 自动实现5分钟随机更换包名和签名系统源码 本程序功能介绍: 程序可实现域名自动打包成app 出现误报毒并自动更换包名和签名(*时间一次) 也可以上传 ...

最新文章

  1. Exception loading sessions from persistent storage
  2. 打包本地文件, 并使用Winscp上传脚本
  3. git常用命名行总结
  4. Veronica博士的研究方向的介绍
  5. c++类指针赋值表达式必须是可修改的左值_C++进阶教程系列:全面理解C++中的类...
  6. Eclipse(STS) 初次搭建Spring Cloud项目之声明式REST调用+负载均衡实现Feign(四)
  7. db设计专用excel_工程师必备:硬件EMC设计规范
  8. Java预科篇1-学前
  9. [模板]fhqTreap
  10. 《关于莉莉周的一切》
  11. Visual Studio 常用快捷键(一)
  12. 关于WEB ServiceWCFWebApi实现身份验证之WEB Service篇
  13. Python 语言创建 Abaqus inp 文件
  14. 2019 GDUT 新生专题I选集 L题(CodeForces - 1260B)
  15. 万能获取随机数公式 取1-100的随机数
  16. 万物智能——百度世界2020”大会
  17. 爬山法、随机重启爬山法、模拟退火算法对八皇后问题和八数码问题的性能测试...
  18. Android仿学习强国填空题考试界面
  19. DDD领域驱动设计(DP、Entity介绍;DDD实现流程;DDD聚合Aggregate;限界上下文(Bounded Context))
  20. GBASE 8s中loadunload

热门文章

  1. win7安装Scrapy时报错Failed building wheel for Twisted
  2. Pycharm 找不到对应字体
  3. 民宿预订小程序开发方案
  4. 2020信息系统项目管理师备战2--项目收尾
  5. 多元函数的微分中值定理的推广 (原创)
  6. 计算机视觉面试宝典--深度学习机器学习基础篇(四)
  7. IMEI 和MEID的区别
  8. ZK框架的分析与应用
  9. Substance Painter:常用快捷键
  10. 【135.1】东家电商小程序实操知识文档