cordova插件(二)-hot-code-push-plugin

插件介绍

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

插件的使用

插件安装
cordova plugin add cordova-hot-code-push-plugin

执行结果

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

安装结果

生成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,下载完立即更新
  • android_identifier / ios_identifier:对应系统的版本号
  • content_url:内容获取地址
生成chcp.manifest和chcp.json文件
cordova-hcp build

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

生成文件

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的配置文件。

	<chcp>
    <config-file url="http://192.168.3.33:8080/update/study/chcp.json" />
	<auto-download enabled="true" />
    <auto-install enabled="true" />
    <native-interface version="1" />
	</chcp>

参数说明:

  • config-file:热更新文件的服务器地址
  • native-interface:cordova外壳的版本,如果不涉及插件的修改,这个版本不变。
查看运行结果

运行结果

查看热更新之后的结果

这里我们先修改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指定的路径。

www目录拷贝

重新启动app后,查看结果

重新查看结果

热更新原理

  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. 安装更新,应用重定向到新版本页面。

博主微信公众号

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
cordova-hot-code-push-pluginCordova 平台下的一个件,可以帮助开发者实现 APK 包热更新。下面是详细的使用教程: 1. 安装件 在 Cordova 项目中执行以下命令安装件: ```bash cordova plugin add cordova-hot-code-push-plugin ``` 2. 配置件 在 Cordova 项目的 `config.xml` 文件中添加以下配置: ```xml <hcp> <auto-download enabled="true" /> <auto-install enabled="true" /> <widget id="com.example.app" version="0.0.1"> <content src="index.html" /> <platform name="android"> <preference name="android-minSdkVersion" value="16" /> <preference name="android-targetSdkVersion" value="30" /> <icon src="res/android/ldpi.png" density="ldpi" /> <icon src="res/android/mdpi.png" density="mdpi" /> <icon src="res/android/hdpi.png" density="hdpi" /> <icon src="res/android/xhdpi.png" density="xhdpi" /> <icon src="res/android/xxhdpi.png" density="xxhdpi" /> <icon src="res/android/xxxhdpi.png" density="xxxhdpi" /> <allow-navigation href="*" /> <allow-intent href="*" /> <access origin="*" /> </platform> </widget> </hcp> ``` 其中,`auto-download` 和 `auto-install` 分别表示是否开启自动下载和自动安装更新。`widget` 标签下的其他配置项与 Cordova 项目一致。 3. 打包 APK 在 Cordova 项目中执行以下命令打包 APK: ```bash cordova build android --release ``` 4. 生成更新包 在 Cordova 项目中执行以下命令生成更新包: ```bash cordova-hcp build ``` 该命令会在项目根目录下生成一个 `www.zip` 文件,该文件包含了需要更新的代码和资源。 5. 上传更新包 将 `www.zip` 文件上传到服务器上。可以使用任何支持 HTTP 文件下载的服务器,例如 Apache、Nginx 等。 6. 应用更新 在 Cordova 项目中引入 `chcp.js` 文件,并在应用程序启动时执行以下代码: ```javascript chcp.fetchUpdate(function(error, data) { if (error) { console.error('Failed to fetch update:', error); } else if (data) { console.log('Update is available:', data); chcp.installUpdate(function(error) { if (error) { console.error('Failed to install update:', error); } else { console.log('Update installed successfully'); } }); } else { console.log('No update available'); } }); ``` 该代码会检查是否有更新可用,并在有更新时下载并安装更新。 以上就是使用 cordova-hot-code-push-plugin 实现 APK 包热更新的详细教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值