cordova 更改app版本_cordova插件(二)hotcodepushplugin

插件介绍

基于cordova框架,我们可以将h5资源打包成app。然后通过热更新插件可以实现h5资源的热更新,而不用重新发布到应用市场,让客户再从应用市场下载。

插件的使用

插件安装

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

9fd246e0776367c28bd043adca30a0a3.png

从图片可以得知,我们还需要安装cordova-hot-code-push-cli工具,它可以帮助我们更好的进行热更新插件的相关操作。

ad85f1f5630ee488ffc1f34f3d6a34a3.png

生成cordova-hcp.json文件

执行下面的命令,并进行相关的参数的配置后,我们就可以得到cordova-hcp.json文件,这个文件决定了插件何时安装热更新内容,插件从何处获取热更新内容。

cordova-hcp init

生成后的cordova-hcp.json内容如下:

{

"name": "study",

"ios_identifier": "",

"android_identifier": "",

"update": "now",

"content_url": "http://192.168.3.33:8080/update/study"

}

参数说明:

  • name:应用的名称

  • update:何时安装

    • start,应用程序启动

    • resume,应用从后台回复

    • now,下载完立即更新

  • androididentifier / iosidentifier:对应系统的版本号

  • content_url:内容获取地址

生成chcp.manifest和chcp.json文件

cordova-hcp build

执行上面的命令,我们就可以在www目录下面生成chcp.manifest和chcp.json文件。chcp.manifest这个文件记录了我们h5资源每个文件的md5值,而chcp.json文件则是之前生成的cordova-hcp.json文件的一份拷贝,并且多了一个release字段,代表发布时间。

88b9dd32898903eafeab7645fa67d124.png

chcp.json文件内容如下:

{

"name": "study",

"ios_identifier": "",

"android_identifier": "",

"update": "now",

"content_url": "http://192.168.3.33:8080/update/study",

"release": "2020.08.10-22.05.21"

}

config.xml配置

在config.xml中加入以下配置,config.xml就是cordova的配置文件。

url="http://192.168.3.33:8080/update/study/chcp.json" />

enabled="true" />

enabled="true" />

version="1" />

参数说明:

  • config-file:热更新文件的服务器地址

  • native-interface:cordova外壳的版本,如果不涉及插件的修改,这个版本不变。

查看运行结果

c43e77fe0b575061934459e79db3195d.png

查看热更新之后的结果

这里我们先修改index.js,让其启动的时候打开百度的页面,而不是博客园的页面。

var app = {

initialize: function() {

document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);

},

onDeviceReady: function() {

this.receivedEvent('deviceready');

},

receivedEvent: function(id) {

var url = 'https://www.baidu.com/';

//使用App内置浏览器

cordova.InAppBrowser.open(url, '_blank', 'location=no');

}

};

app.initialize();

重新生成chcp.manifest和chcp.json文件

执行命令,重新生成chcp.manifest和chcp.json文件后,将www下面的整个目录拷贝到chcp.json中content_url指定的路径。

256f2ed22d558fa8ea8a46e0d6c8475e.png

重新启动app后,查看结果

dd8d51ae590baa11242be8c30a9a5d34.png

热更新原理

  1. 手机app启动

  2. 热更新插件初始化,并在后台加载更新模块。

  3. 更新模块从 Cordova 项目配置 config.xml 文件中获取 config-file (热更新插件配置文件 chcp.json 的加载路径),然后加载配置文件 chcp.json,获取其中的 release 版本号,与app当前版本号对比,若二者不同,说明有新版本。

  4. 更新模块从 chcp.json 配置文件中获取 content_url 作为 base url,然后加载 chcp.manifest 文件,获取新版本文件变更信息。

  5. 更新模块根据 content_url 作为 base url,下载所有变更、新增文件。

  6. 如果一切顺利, 更新模块发送通知,该更新已准备好进行安装。

  7. 安装更新,应用重定向到新版本页面。

第一步、将 myApp 目录下 config.xml <chcp> <auto-download enabled="true" /> <auto-install enabled="true" /> <config-file url="http://192.168.1.34:8080/myApp/www/chcp.json" /> <local-development enabled="true" /> </chcp> 地址改为自己的地址。 第步、将myApp\platforms\android\app\src\main\res\xml目录下 config.xml <chcp> <auto-download enabled="true" /> <auto-install enabled="true" /> <config-file url="http://192.168.1.34:8080/myApp/www/chcp.json" /> <local-development enabled="true" /> </chcp> 第三步、myApp\platforms\android\app\src\main\assets 目录下 .chcpenv { "content_url": "http://192.168.1.34:8080/myApp/www/", "config_url": "http://192.168.1.34:8080/myApp/www/chcp.json" } cordova-hcp.json { "autogenerated": true, "update": "start", "content_url": "http://192.168.1.34:8080/myApp/www/" } 的 地址改为自己的 地址 第四步、将android项目导入Android Studio 第五步、 myApp\platforms\android\app\src\main\assets 目录下 执行 cordova-hcp build 命令后将www 目录下的所有文件拷贝到你自己的 文件服务器上。 第六步、启动服务器 第七步、发布安装app程序。 第八步、修改www目录下的文件信息,重新执行第五步。 第七步、再次打开app程序("update": "start",需两次)。 cordova-hcp.json { "autogenerated": true, "update": "start", "content_url": "http://192.168.1.34:8080/myApp/www/" } start - app启动时安装更新. 默认值. resume - app从后台切换过来的时候安装更新. now - web内容下载完毕即安装更新. 注意:网站的路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值