Cordova实现热更新以及定时检查更新(无需重启app)

2019-04-16  本文已影响0人  快乐Plus

关于Cordova热更新的教程很多。最近搞的时候发现github上面已经弃库了。但是也不影响我们的使用。

Cordova热更新插件:https://github.com/nordnet/cordova-hot-code-push

Cordova热更新工具:https://github.com/nordnet/cordova-hot-code-push-cli

在开始之前,你要在服务器配置好一个静态文件托管。创建好你要存放

1.安装Cordova热更新工具

npm install -g cordova-hot-code-push-cli

//cd到Cordova项目目录

2.安装Cordova热更新插件

cordova plugin add cordova-hot-code-push-plugin

3.初始化热更新插件

cordova-hcp init

这里需要填写很多东西,不懂的可以直接回车,新手注意的已经标记*

*Project name: 你现在的项目名称所需

Amazon S3 Bucket name:亚马逊什么什么的名字

Amazon S3 region: 亚马逊什么什么

iOS app identifier: 应用程序商店的应用程序ID

Android app identifier: 应用的下载地址

*Update method: 何时执行更新

start: 在启动应用程序时更新

resume: 在恢复应用程序时更新(cordova默认)

*now: 从服务器加载更新后立即安装 (我们选这个)

4.配置服务器路径

打开cordova项目目录中的config.xml

修改或者添加这一段配置<chcp>标签

5.打包www应用

因为我用的是vue,所以把build出来的dist复制到Cordova项目中的www中,然后构建项目

cordova-hcp build

www目录里面会生成两个文件

6.把www中的文件上传到设置好的服务器目录

7.构建安卓应用,这一次构建的app以后不用再打包。可以直接热更新(IOS自理)

cordova build android

8.安装apk打开就可以启动时自动更新

以后更新只要是只更新web内容,都可以只用 cordova-hcp build,然后上传到服务器,重新打开app就可以自动更新了

关于自动检查更新

我在vue中app.vue中的mounted中加入一个定时器,添加一下检查更新代码,这样就可以实现不重启app实现更新

let _vue = this;

try {

chcp.fetchUpdate(function(error, data) {

if (!error) {

// alert("有更新");

setTimeout(() => {

chcp.installUpdate(function(error) {

_vue.$toast("更新完成");

})

}, 3000)

} else {

// alert("当前是最新版本");

}

})

} catch (err) {

alert(err)

}

上一篇 下一篇

猜你喜欢

热点阅读