Ionic1 APP代码热更新
功能描述
APP热更新:不需要重新打包,将更改的代码上传到服务器,打开APP时,APP会自行到服务器检测最新代码以及下载到APP本地实时更新。
前期准备
1.cordova-hcp cli安装
npm install -g cordova-hot-code-push-cli
安装cordova-hcp的目的是为了,打开热更新服务
2.添加插件 cordova-hot-code-push-plugin
cordova plugin add cordova-hot-code-push-plugin
本插件的git地址:https://github.com/nordnet/cordova-hot-code-push
3.添加插件cordova-hot-code-push-local-dev-addon
cordova plugin add cordova-hot-code-push-local-dev-addon
该插件的作用:主要是为了能够本地开发测试,但实际运用中我们都有自己服务器(例如:Tomcat服务),因此此插件可以不必安装。
4.使用如下命令build项目
cordova-hcp build 或者 cordova build
执行完命令后会www目录下生成两个文件:chcp.json(用户配置热更新代码版本设置),chcp.manifest(此为清单文件,将www下的所有文件生成一个文件清单)。
5.输入如下命令打开热更新服务:
cordova-hcp server
打开服务后,每次代码的改动都会更新chcp.json文件。
{
"autogenerated":true,
"release":"2017.09.24-14.10.42",
"content_url":"http://79265082.ngrok.io",
"update":"now"
}
说明:
release为更改时间,
content_url为更新的路径。
update:可取值分别为:
start :app启动时安装更新. 默认值.
resume : app从后台切换过来的时候安装更新.
now :web内容下载完毕即安装更新.
6.打开服务后会在根目录下生成 .chcpenv 文件。
项目配置
1.使用命令打开 cordova-hcp server 热更新服务。
2.更改 .chcpenv 文件(更改内容如下)
{
"content_url": "http://192.168.14.232:8080/app/union_app_update",
"config_url": "http://192.168.14.232:8080/app/union_app_update/chcp.json"
}
说明:
content_url为放置更新代码的根目录路径。
config_url 为检查更新chcp.json文件的路径。
3.在config.xml中添加如下内容:
<chcp>
<config-file url="http://192.168.14.232:8080/app/union_app_update/chcp.json"/>
<chcp>
url 为检查更新chcp.json文件的路径。
4.修改 chcp.json文件
{
"autogenerated":true,
"release":"2017.09.24-14.10.42",
"content_url":"http://192.168.14.232:8080/app/union_app_update",
"update":"now"
}
此时运行将代码运行在APP中,此时APP中的热更新代码相当于生效了(注意此处cordova-hcp server启动的服务可关闭也可以不关闭)。
5.正常更改代码(即正常的写入:js、html或css代码等)。
6.代码工作开发完成后,打开热更新服务cordova-hcp server,此时发现chcp.json 文件有所改动,更改字段 content_url 的值。"content_url":"http://192.168.14.232:8080/app/union_app_update"。
7.将www下的文件全部复制在服务端的union_app_update目录中。(复制完成后可以在地址栏中输入地址:http://192.168.14.232:8080/app/union_app_update/chcp.json 测试是否能打开此文件)
8.结束APP应用,重新打开APP即可看到更新内容。
9.下载APP更新代码可以放在APP启动页面中。