cordova Android热更新

2021-01-25  本文已影响0人  殇城阡陌

1、添加插件:cordova pluginaddcordova-hot-code-push-plugin

2、添加热更新工具:npm install -g cordova-hot-code-push-cli

3、在根目录下执行:cordova-hcp init,初始化cordova-hcp.json文件

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

Amazon S3 Bucket name:亚马逊上的S3桶的名字。可以跳过。

Amazon S3 region: 亚马逊S3地区。可以跳过。

iOS app identifier: 应用程序商店的应用程序ID。App升级是跳转应用商店进行升级。

Android app identifier: App在应用商城的地址,或者是apk的下载地址。

Update method: 何时执行更新。

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

        resume: 在恢复应用程序(从背景移动到前景状态)或启动时,安装更新;默认使用。

        now: 从服务器加载更新后立即安装。

{

  "name": "",//可为空

  "autogenerated": true,//如果不添加,热更新会不能使用

  "ios_identifier": "id123456789",//应用在App store id(可为空)

  "android_identifier": "",//应用在应用商城上的地址或者App的下载地址(可为空)

  "update": "start",//在应用启动时安装

  "min_native_interface": 1,//可用以做App升级(可以不填)

  "content_url": "http://************/cordova/www"//www文件在服务器上的地址

}

4、在www文件下生成chcp.json 和 chcp.manifest文件

执行命令:cordova-hcp build

chcp.json: 包含发布相关信息:热更新代码版本号,应用 native side 版本号等等

chcp.manifest: 包含项目热更新代码(静态)文件信息:文件名和文件哈希值

在chcp.json文件中增加"release":"当前时间"字段。(默认使用时间戳,格式为:yyyy.MM.dd-HH.mm.ss),插件将版本号进行字符串相等比较来判断是否存在新版本。

"release":"2017.06.07-16.30.20",//唯一web项目版本号,用与热更新web内容的更新。

5、config.xml 配置

<widget....

....

<chcp>

    <auto-downloadenabled="true"/>

    <auto-installenabled="true"/>

    <native-interfaceversion="1"/>

    <config-fileurl="https://************/cordova/www/chcp.json"/>

</chcp>

....

</widget>

config-file:配置文件 chcp.json 从服务器上加载的路径(必须的配置项)

auto-download:是否自动下载热更新代码,默认是 true

auto-install:是否自动安装热更新代码,默认是 true

native-interface:当前 native side 的版本号

6、将www文件放到服务器

将项目的www文件夹放到服务器上,且服务器要支持htpp访问,且访问不需要任何权限,然后重启app,就可实现App的web内容代码的热更新了。

需要注意的是www文件在服务地地址一定要与"content_url":"http://************/cordova/www"和config.xml中<config-file url="https://************/cordova/www/chcp.json" />填写的地址一致。

上一篇下一篇

猜你喜欢

热点阅读