cordova打包app热更新问题

定义: 基于 cordova 框架能将web应用 (js, html, css, 图片等) 打包成 App。当 App 在终端上安装后,不需要重新下载app,实现内壳更新。

原理:1.在项目根目录的config.xml文件中添加指向服务器的地址

            2.在www目录中添加chcp.json配置文件,配置指向服务器,更新时间,更新方式

步骤:(进入项目目录)

1、在cordova项目下添加热更新插件  cordova-hot-code-push

cordova plugin add cordova-hot-code-push-plugin  命令

(安装插件后可以看到项目根目录增加了cordova-hcp.json。我的内容如下:)

           {
                            "name": "test",               // 可为空
                            "autogenerated": true,   //必须项,否则热更新无法使用(需手动添加)
                            "ios_identifier": "",          //应用在Apple Store id(可不填)
                            "android_identifier": "",   //应用在应用商店上的地址或app下载地址(可不填)
                            "update": "start",            //在应用启动时安装
                            "content_url": "http://192.168.0.114:8080/ptzy/www"    //www文件在服务器上的地址
                       }

update可选值:

  • start:应用启动,默认项(install update when application is launched)
  • resume:应用从后台恢复(install the update when application is resumed from background state)
  • now:下载更新后立即执行(install update as soon as it has been downloaded)

2、添加热更新工具  cordova-hot-code-push-cli

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

3、借助 cordova-hot-code-push-cli 工具在www目录下生成chcp.json和chcp.manifest文件:

执行 cordova-hcp init 命令

          Application config:chcp.json 包含发布相关信息:热更新代码版本号,应用 native side 版本号等等(描述了热更新代码的版本信息)

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

4、config.xml 配置

在<widget>元素下添加如下:

  • auto-download:是否自动下载热更新代码,默认是 true
  • auto-install:是否自动安装热更新代码,默认是 true
  • native-interface:当前 native side 的版本号
  • config-file:配置文件 chcp.json 从服务器上加载的路径(必须的配置项)

5、cordova-hcp build

           执行该命令会在chcp.json文件中增加"release":"当前时间"字段。

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

6、cordova build 打包安装app

7、测试更新

例:修改cordova项目下的html内容或js中alert("测试内容")后,执行步骤5命令,然后将项目下的www文件上传至content_url 配置的服务器文件路径下,重新打开app即可( 注:第一次启动的时候检查更新并下载更新,第二次启动的时候就会使用更新的版本)。

以下是检测文件修改,执行cordova-hcp server命令,如下:

当cordova中有文件修改时会输出文件信息,如下:

注:该方法为本人亲测实现,仅代表本人观点。如有讲述不清或其他问题,请留言,谢谢!

第一步、将 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、付费专栏及课程。

余额充值