cordova-hot-code-push-plugin npm
安装
1. 命令行工具
npm install -g cordova-hot-code-push-cli
2.安装插件
cordova plugin add cordova-hot-code-push-plugin
3.启用服务
cordova-hcp server
4.用户成功
Running server
Checking: /Cordova/TestProject/www
local_url http://localhost:31284
Warning: .chcpignore does not exist.
Build 2015.09.02-10.17.48 created in /Cordova/TestProject/www
cordova-hcp local server available at: http://localhost:31284
cordova-hcp public server available at: https://5027caf9.ngrok.com
如果在虚拟机上进行开发,应用是可以直接访问到热更新服务器。但是真机开发,需要真机与服务器在同一个局域网内,并在config.xml
配置服务器地址:
<chcp>
<config-file url="https://IP地址/chcp.json"/>
</chcp>
相关配置
<auto-download enabled="false" />
<auto-install enabled="false" />
Defines if plugin is allowed to download updates. Originally update fetching is performed automatically, but you can disable it and do that manually through the JavaScript module.
即时,
注意:
更新流程
[图片上传失败...(image-68ea5d-1527143332164)]
准备:cordova插件有实现activity的生命周期,并会在对应的周期中实现相关业务
initialize -> onStart -> onResume -> onPause -> onStop -> onDestroy
流程详解
1.应用启动会自动实例化插件(HotCodePushPlugin.java 该插件配置的onload = true),解析基本配置并会删除旧版本的更新包
2.onStart 周期中会检测hotcodepush是否初始成功(即,是否将www下的文件复制到codepush下管理,如果没有会进行这个步骤。复制到指定目录下之后会发出 AssetsInstalledEvent
事件)
3.接收到 AssetsInstalledEvent
事件后,会向服务器请求最新版本(fetchUpdate)。服务器返回的版本信息与本地进行比对(更新比对的是打包时间字串,只要字符不相等),如果不相等,则会根据服务器给的地址进行下载
- UpdatesLoader 会进行下载,下载成功后会发出UpdateIsReadyToInstallEvent事件(这里会下载指定的update目录下)
5.接收到 UpdateIsReadyToInstallEvent
事件,会将下载的更新包安装到hotcodepush中。安装成功会发出UpdateInstalledEvent
事件
6.接收到 UpdateInstalledEvent
事件,则立即进行页面刷新redirectToLocalStorageIndexPage();