基础配置
- 在你的cordova项目下面添加
cordova plugin add cordova-hot-code-push-plugin
- 全局添加对应的cli插件
npm install -g cordova-hot-code-push-cli
- 执行 cordova-hcp init
λ cordova-hcp initRunning initPlease provide: Enter project name (required): ComeToChinaPlease provide: Amazon S3 Bucket name (required for cordova-hcp deploy):Please provide: Path in S3 bucket (optional for cordova-hcp deploy):Please provide: Amazon S3 region (required for cordova-hcp deploy): (us-east-1)Please provide: IOS app identifier:Please provide: Android app identifier: Please provide: Update method (required): (resume)Please provide: Enter full URL to directory where cordova-hcp build result will be uploaded: 域名/cordovaHp/www/Project initialized and cordova-hcp.json file created.If you wish to exclude files from being published, specify them in .chcpignoreBefore you can push updates you need to run "cordova-hcp login" in project directory
- 上面控制台输出信息中的最后一个Url选项填你的服务器放置需要热更新代码的地址。我写的是域名 + cordovaHp/www/
- 其他选项可以看的介绍
- 执行完之后默认会在cordova项目的www下面生成chcp.json 和chcp.manifest文件
- 执行 cordova-hcp build 打个戳,控制台会输出相应信息。
λ cordova-hcp build// 下面是控制台输出信息Running buildConfig { name: '', ios_identifier: '', android_identifier: '', update: 'resume', content_url: '域名/cordovaHp/www/', release: '2017.12.08-10.56.17' }
- 在cordova项目下面的config.xml文件下添加代码,和<access origin="*" />同级;url地址是你服务器放置chcp.json的地址,我这边是域名 + cordovaHp/www/chcp.json;插件会根据chcp.json里面的值来判断需不需要更新。
...
- 然后执行 cordova build 打包你的项目。这样你的项目就可以热更新了。
- 现在修改cordova项目的js代码测试一下,例如加个alert('success');然后重新执行cordova-hcp build。
- 把你cordova项目中www上传到服务器放置热更新代码的位置,再打开你的app就会自动更新了。
修改配置
上面使用的hcp都是默认配置,接下来我没来修改一下默认配置。
区分dev和production
- 在cordova项目根目录下面新建chcpbuild.options文件。
下面是文件内容
{ "dev": { "config-file": "域名/cordovaHpDev/www/chcp.json" }, "production": { "config-file": "域名/cordovaHp/www/chcp.json" }}
- 执行发布代码
cordova build -- chcp-dev// 控制台信息CHCP plugin after prepare hook:Using config from chcp.options:{ "config-file": { "url": "域名/cordovaHpDev/www/chcp.json" }}Resulting config will contain the following preferences:{ "config-file": { "url": "域名/cordovaHpDev/www/chcp.json" }}
这里有个坑:如果cordova是7.0版本,需要加多两个连接符
cordova build -- -- chcp-dev
- 修改cordova项目根目录下面cordova-hcp.json文件,把连接域名修改成dev环境下面的地址
{ ... "content_url": "域名/cordovaHpDev/www/"}
- cordova-hcp build
λ cordova-hcp build // 控制台信息Running buildConfig { name: '', ios_identifier: '', android_identifier: '', update: 'resume', content_url: '域名/cordovaHpDev/www/', release: '2017.12.08-18.17.42' }
环境配置完成了,更新代码还是和之前一样。