更新记录
1.0.3(2023-01-07) 下载此版本
已过时
1.0.4(2023-01-07) 下载此版本
nothing
平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
× | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
【已过时,项目最后更新于2019】
pure-updater
一个可以用的app更新模板
经测试可支持 Android 9.0 已支持热更新 已支持静默的强制更新
已测试
- android 8.0 (AVD) 正常可安装更新
- android 9.0 (真机) 正常可安装更新
Version: 1.0.3
模拟请求数据来自 Easy Mock
用到的模拟的接口:
1.检查版本号(静默强制更新) getVersionID
2.检查版本号(正常更新) getVersionID
3.拉取版本信息 getVersionInfo
-
注:默认使用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 更新
- 下拉刷新更新信息
- 支持热更新,详情请看说明
说明
-
支持wgt格式热更新,能自动判断所下载更新包的文件后缀
-
支持安装更新后,app再次启动时删除更新安装包
-
监控用户是否有完成更新安装
-
静默强制更新已安排上
静默强制更新:三步走
1.要进行强制更新的测试,请先将main.js的currentVersion中的id改为1003(服务器最新版本为1004,当前的版本id改低以触发更新) 2.且common/checkUpdater.js中第一个request的url需使用上文提到的该接口:1.检查版本号(静默强制更新)
-
第一次启动:应用载入时获取更新信息,如果request取得的信息中,method内容为force,则直接在后台下载更新资源,并写入缓存
-
第二次启动:应用载入时安装上次下载的更新资源,并提示用户重启应用(实际上这里已经安装完毕,重启是刷新应用)
-
第三次启动:应用载入时删除更新包释放空间,整个静默强制更新过程完成
注
1.静默强制更新一般适用于.wgt热更新包,并未加入其它格式更新包的支持 2.苹果官方禁止这种更新方式,所以请灵活使用 3.如果iosLink不是wgt的下载链接,即便force标记为true也不会进行静默强制更新
热更新:请于HBuilderX菜单栏 - 发行 - 制作移动App资源升级包,打包成wgt格式的更新包并上传到服务器,即可进行热更新(大型更新还请使用apk整包更新)
1.当前的HBuilderX中没有REQUEST_INSTALL_PACKAGES权限,请手动(json源码视图)在manifest.json中添加权限 2.如果使用HBuilderX修改(勾选)过其它的permissions项,会让REQUEST_INSTALL_PACKAGES权限消失,请再次手动添加 3.高版本安卓一定要手动设置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 中加入了权限<uses-permissionandroid:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/> 以适配 Android9.0
- 同时修改了 targetSdkVersion 为 26 以适配 Android 9.0
嗯?
- 更新页面,我下载好了安装包,也点击安装了,但是一回到app就会显示Modal:安装被取消?
- 这是因为真正的更新应该是覆盖安装的,你不可能直接回到app,除非你进行的不是覆盖安装
- 用这个逻辑判断用户是否在安装包下载完成后安装了更新
- 为什么我在调试过程中每次(刷新)启动应用都触发了更新?
- 为了演示静默强制热更新,服务器端返回的的最新版本id为1004,而本插件的版本id为1003,所以会触发更新
- 如果不想触发更新,可以在main.jscurrentVersion中的id改为1004