一、实现思路
热更新的实现主要就是app在启动的时候去服务器检查有没有更新,有则把更新下到本地,这样就实现了热更新。
二、实现步骤
1、安装热更新插件,通过命令:
npm install -g cordova-hot-code-push-cli
2、添加插件到项目中
cordova plugin add cordova-hot-code-push-plugin
cordova plugin add cordova-hot-code-push-local-dev-addon
3、生成配置文件
cordova-hcp server
这时会在www目录下生成2个文件chcp.json和chcp.mainfest;chcp主要是插件的配置信息,chcp.mainfest是我们要更新文件的hash值对照表,如果app发现hash值表改变就会下载对应的文件来更新。
chcp.json需要修改成配置,配置如下
{
"autogenerated": true,
"release": "2017.08.20-08.54.01",
"content_url": "http://www.yourserver.com/test/www",//更新远程库路径
"update": "start"
}
4、定制chcp.json
因为每次执行cordova-hcp build 都会重新生成chcp.json,为了避免每次都需要修改此文件,我们可以在app目录下新建cordova-hcp.json,内容如下:
{
"autogenerated": true,
"content_url": "http://www.yourserver.com/test/www",
"update": "start"
}
这样每次执行cordova-hcp build的时候都会用这个文件去生成www下的chcp.json,免去每次都要修改的麻烦。
5、修改app的启动文件
将项目中的.chcpenv的地址配置信息修改为你的服务器地址:
{
"content_url": "http://www.yourserver.com/test/www",
"config_url": "http://www.yourserver.com/test/www/chcp.json"
}
在config.xml文件的widget节点加入:
<chcp>
<config-file url="http://www.yourserver.com/test/www/chcp.json" />
</chcp>
6、打包apk文件安装到手机
ionic cordova build android --prod
prod模式可以不生成不必要的map文件,以优化app的打包大小。
7、修改src目录下的文件,然后重新生成更新文件:
ionic build --prod
8、更新配置文件
cordova-hcp build
9、上传www目录到服务器。
10、重新进入app,可以看到我们刚做的修改已经在app上更新了。热更新完毕