最近做移动商城开发,需要一个自动升级APP的功能,在网上搜罗很多,发现有的是下载APK,有的在我这服务无法实现,由于时间原因,都被PASS了,最后找到了一个热更新插件,经过半天的调试,可以使用,很欣喜,记录下来,一起学习。
此插件名称是cordova-hot-code-push 可以在github 下载到源码,附地址:https://github.com/nordnet/cordova-hot-code-push
1.首先打开cli,执行命令 npm install -g cordova-hot-code-push-cli
此功能主要是为了生成两个配置文件chcp.json和chcp.manifest,用于检测更新
2.安装更新插件
打开项目路径,打开cli
ionic plugin add cordova-hot-code-push-plugin
ionic plugin add cordova-hot-code-push-local-dev-addon
3.运行 cordova-hcp build 或 cordova build
此时www文件夹中会出现两个文件,也就是上文说的chcp.json和chcp.manifest
chcp.json格式
{ "autogenerated": true, "content_url": "http://xxxxx.com", //更新远程库路径 "update": "start", //更新模式 start:启动更新 resume:后台切换回来更新 now:web内容下载完毕即安装更新 "release": "2016.12.16-11.29.38" }
该文件在每次执行cordova-hcp build 都会更新,为了不用每次更改chcp.json的内容,可以在项目根目录下创建一个cordova-hcp.json文件,如下
{ "autogenerated": true, "content_url": "http://xxxxx.com", //更新远程库路径
"update": "start"
}
以后每次执行cordova-hcp build时,会将cordova-hcp.json的内容更新到chcp.json中,省去每次都要修改的麻烦。
chcp.manifest 为文件的名称与hash值的集合,用于检测哪些文件需要更新
4.此时在项目根目录下会生成一个.chcpenv的文件,此文件用户配置远程服务器,内容如下:
{ "content_url": "http://xxxxx.com", //用于获取文件 "config_url": "http://xxxxx.com/chcp.json" //用于访问远程服务器配置文件 }
5.现在就可以打包APP测试,修改www目录下的任何一个文件,然后cli执行cordova-hcp build,上面的两个配置文件会同时更新,
然后将www下所有的文件一起拷贝到远程服务器目录,我放在了IIS 下的一个AppUpdate下
6.现在就可以打开程序查看更新效果,可能会打开两次才能看到效果,可以看一下刚才更新的内容。
上述都是基于android的,ios 现在暂时还没有做。
到此程序更新就完成了。