android app 自动更新,app升级项目,新增强制更新(可静默),支持热更新(wgt),可支持高版本安卓系统...
pure-updater
一个可以用的自动更新方案
经测试可支持 Android 9.0
已支持热更新
已支持静默的强制更新
如果您觉得还可以的话那就点个五星吧!谢谢!
已测试
android 8.0 (AVD) 正常可安装更新
android 9.0 (真机) 正常可安装更新
作者
PurePeace
大一在读,编程水平有限,有问题欢迎指正
Version: 1.0.3
用到的模拟的接口:
1.检查版本号(静默强制更新) getVersionID
2.检查版本号(正常更新) getVersionID
注:默认使用#1.检查版本号(静默强制更新)#接口,若要改为正常更新,请手动于common/checkUpdater.js中修改第一个request的url
测试静默强制更新还需将main.js中currentVersion的id改为1003,因为插件下载来默认是1004最新版本的
2019.03.27 更新
支持静默强制更新,详情看说明
支持苹果wgt热更新,但因无相关环境,未测试
修复1.0.2版本bug:热更新判断中的错别字,导致.apk被判断为.wgt
2019.03.24 更新
下拉刷新更新信息
支持热更新,详情请看说明
真正的版本号是main.js的currentVersion中的id(默认1004,目前最新1004)
说明
支持wgt格式热更新,能自动判断所下载更新包的文件后缀
支持安装更新后,app再次启动时删除更新安装包
监控用户是否有完成更新安装
静默强制更新已安排上
静默强制更新:三步走
要进行强制更新的测试,请先将main.js的currentVersion中的id改为1003(服务器最新版本为1004,当前的版本id改低以触发更新)
且common/checkUpdater.js中第一个request的url需使用上文提到的该接口:1.检查版本号(静默强制更新)
第一次启动:应用载入时获取更新信息,如果request取得的信息中,method内容为force,则直接在后台下载更新资源,并写入缓存
第二次启动:应用载入时安装上次下载的更新资源,并提示用户重启应用(实际上这里已经安装完毕,重启是刷新应用)
第三次启动:应用载入时删除更新包释放空间,整个静默强制更新过程完成
注:
1.静默强制更新一般适用于.wgt热更新包,并未加入其它格式更新包的支持
2.苹果官方禁止这种更新方式,所以请灵活使用
3.如果iosLink不是wgt的下载链接,即便请求更新id时的method内容为force也不会进行静默强制更新
热更新:请于HBuilderX菜单栏 - 发行 - 制作移动App资源升级包,打包成wgt格式的更新包并上传到服务器,即可进行热更新(大型更新还请使用apk整包更新)
当前的HBuilderX中没有REQUEST_INSTALL_PACKAGES权限,请手动(json源码视图)在manifest.json中添加权限
如果使用HBuilderX修改(勾选)过其它的permissions项,会让REQUEST_INSTALL_PACKAGES权限消失,请再次手动添加
高版本安卓一定要手动设置targetSdkVersion和REQUEST_INSTALL_PACKAGES权限,否则不能正常安装
要进行强制更新的测试,请先将main.js的currentVersion中的id改为1003(服务器最新版本为1004,当前的版本id改低以触发更新)
且common/checkUpdater.js中第一个request的url需使用上文提到的该接口:1.检查版本号(静默强制更新)
以下页面
App.vue
在 app 加载时检测更新
main.js
在 prototype 里面放了currentVersion,全局可获取当前的版本信息
for Android >= 8.0
manifest.json
在 permissions 中加入了权限 以适配 Android9.0
同时修改了 targetSdkVersion 为 26 以适配 Android 9.0
嗯?
更新页面,我下载好了安装包,也点击安装了,但是一回到app就会显示Modal:安装被取消?
这是因为真正的更新应该是覆盖安装的,你不可能直接回到app,除非你进行的不是覆盖安装
用这个逻辑判断用户是否在安装包下载完成后安装了更新
为什么我在调试过程中每次(刷新)启动应用都触发了更新?
为了演示静默强制热更新,服务器端返回的的最新版本id为1004,而本插件的版本id为1003,所以会触发更新
如果不想触发更新,可以在main.jscurrentVersion中的id改为1004
下载1.0.2版本的朋友请下载1.0.3,因为在1.0.2版本上有个bug……
应该,没什么了,吧
2019年3月27日 - PurePeace
android app 自动更新,app升级项目,新增强制更新(可静默),支持热更新(wgt),可支持高版本安卓系统...相关推荐
- 前端程序升级linux方案,开源:AspNetCore 应用程序热更新升级工具(全网第一份公开的解决方案)...
1:下载.开源.使用教程 使用教程: 解压AspNetCoreUpdater.rar,得到两个压缩包,分别对应用Window和Linux. A.使用教程:For Window IIS 1.解压AspN ...
- android版微信什么时候更新版本的,微信6.6版本安卓系统更新时间
近日苹果版微信已经更新至6.6.0版本,加入了网友最期待的更改微信号功能,那么微信6.6.0安卓版什么时候更新?下面请看小编为大家带来的微信6.6版本安卓系统更新时间. 因为同期安卓版微信更新6.5. ...
- flutter不支持热更新_Flutter 在安卓上可以实现热更新了
本文由 句号君 授权投稿 原文链接:https://blog.csdn.net/qizewei123/article/details/102963340 Flutter 官方在 GitHub 上声明是 ...
- 修改html时webpack热更新,webpack学习之路(二)webpack-dev-server实现热更新
上一章对webpack的配置有了简单的认识. 这一章,我需要学习的是webpack热更新,因为在开发过程中,不希望当文件更改时,人肉去编译文件,刷新浏览器. webpack热更新 webpack-de ...
- Vue.js 安装及其环境搭建,webpack-simple支持热更新
1.先安装node.js 安装官网最新的即可 版本应该要大于6.0版本 nodejs的官网:https://nodejs.org/en/ 2.安装git Git的官网:https://git-scm. ...
- android 汽车版本,安卓系统不断推陈出新 为何安卓车机仍固守2.3版本?
说到安卓,提的最多的无外乎是稳定性.兼容性以及差异性优化,而对于安卓车机,除了这三点之外,还会考虑成本问题,小编今天就将从这四个方面来尝试回答上面提出的问题. 一.稳定性 低版本的系统在车机应用上具有 ...
- android 使用系统下载并更新版本,安卓系统更新升级的种方法
最近有网友问小编"安卓系统怎么升级?",针对该问题,笔者也在网上查找了下相关资料,不过并没有找到什么有价值的相关介绍,多数都是介绍如何自动升级.或者下载升级版包等等方法,对于一些常 ...
- android安卓手机升级版本,安卓系统怎么更新升级
安卓系统怎么更新升级 安卓系统怎么升级?针对该问题,其实安卓系统升级的方法有很多,以下就来与大家介绍下.目前安卓手机主要采用以下几种方式升级: 1.使用手机自带的系统更新功能 在安卓手机的设置--关于 ...
- flutter不支持热更新_在iOS原生项目中使用Flutter,热更新
前言: Flutter 因其自建的渲染引擎,背靠谷歌的支持,近来俘获了不少的开发小伙伴,越来越多的开发者尝试使用Flutter进行开发,在原生项目中嵌入Flutter来完成复杂度不高的页面成为了一个不 ...
最新文章
- 特征工程:特征生成,特征选择(三)
- 什么是MySQL锁?有哪些锁类型?如何使用?
- 基于JSP实现校园二手交易平台
- ClassNotFoundException: org.apache.catalina.loader.DevLoader 自己摸索,丰衣足食
- UVa1339 - Ancient Cipher
- [转载]C#流,字节数组,字符串
- tencent intern learning
- python计算最大回撤_Python做量化投资评价策略风险 如何计算最大回撤?
- 一种页面数据错误输入提示方法 【转】
- 10-10-010-简介-官网-官网翻译
- 摄影灵感|轮廓趋势,剪影以一种主要的方式回来了。
- Visual Studio 2019 16.6 Preview 2 发布
- 企业网站+Axure企业官网通用模板+公司官网通用模板+web端高保真原型+门户官网+物流企业+门户网站+服务中心+产品中心+新闻中心+帮助中心+企业官网+公司官网+公司网站+登录注册+高保真交互
- python写入日志文件时日志内容重复写入
- ASP.NET 高级编程基础第十二篇—服务器控件
- 二元二次拟合 matlab函数
- 破解电视盒 运营商送的,各种型号。通用 TTL 破解电视盒,更新华为悦盒
- 模拟频率f、模拟角频率Ω 、数字频率ω之间的关系
- JavaScript 实现页面内时间实时倒计时 计时器内附完整文件欢迎调用(可用于抢购倒计时,记录恋爱纪念日总时长等)输出对应的天数小时分钟秒数
- 男 女 java 枚举_献给我老公 - Java枚举类型
热门文章
- 用批处理命令批量ping一个网段的IP
- stm8l051 halt之后外部中断唤醒问题
- 【鱼眼】M4/3用户对鱼眼镜头的误解(7.5mm的鱼眼镜头的等效焦距是12mm或15mm,但是依然是鱼眼镜头而不是广角镜头)
- SAP PS 第7节 物资采购类别、wbs bom及第三方采购
- java过滤器修改响应,在过滤器中实现修改http请求体和响应体
- 乖离 暗机器人_乖离性百万亚瑟王黑暗机器人打法技巧 暗马桶攻略
- 密码学--Diffie-Hellman密钥交换
- tanh函数图像以及求导
- 毕业设计-基于机器学习的短期负荷预测算法
- 初识Python爬虫----如何爬取网络数据