使用ionic3开发,研究了一下热更新,特此记录。
1、安装cordova-hot-code-push-cli
yarn global add cordova-hot-code-push-cli
2、在项目根目录执行命令
cordova-hcp init
执行成功后会在项目的根目录下生产cordova-hcp.json文件,内容如下:
{
"name": "EMP",
"ios_identifier": "com.gtcy.mobileemp",
"android_identifier": "com.gtcy.mobileemp",
"update": "now",
"content_url": "http://172.16.30.31:8888/www"
}
其中 update 是更新的时机,content_url是资源更新的地址。
app每次启动会去服务器判断有无更新,有更新则下载更新内容
start:下载完更新,app下次启动的时候才会更新内容;
now:下载完更新,立即刷新页面应用更新(方便测试);
resume:下载完更新,当app从后台切换到前台时应用更新(按手机home键进入后台)
3、使用ionic build 或 ionic build --prod编译项目;
4、执行命令cordova-hcp bulid,在 根目录/www 下生成chcp.json和chcp.manifest两个文件;
5、在项目中安装热更新插件cordova-hot-code-push
yarn add cordova-hot-code-push
6、在config.xml中添加
<chcp>
<config-file url="http://172.16.30.31:8888/www/chcp.json" />
</chcp>
7、打包安装;
8、修改完项目后,再次一次执行ionic build和cordova-hcp build;
9、将新的www发布文件放到资源更新服务上;
10、手机上打开app就可以看到更新的内容了。
PS:苹果商店审核据说不能包含热更新的代码。但是热更新的插件在ios中是有效的。
借鉴文章:https://www.jianshu.com/p/a9a48fd2cefc