关于Cordova热更新的一些见解(android混合开发)

     最近公司在做hybrid的APP项目,用的是Cordova,需要把一些html,js,cs,图片文件存到本地目录,还需要支持热更新,就是app启动的时候如果发现服务器的html版本更高,就只需要单独更新某些html文件,不需要全部更新。

     一开始我是把文件存放在 assets文件夹下的,如图



    但是我们知道,assets文件夹在android系统只是可读的,不能写,所以如果把文件放入assets文件夹,肯定不行,不能支持热更新。但是网上也没有人提过这个问题,都是把文件放入这个文件夹。

    于是,我开始研究能不能把文件存入sdcard。我把文件压缩,放置assets文件夹,APP第一次启动的时候解压至sdcard,如图:


文件路径从"file:///android_asset/www/index.html"  改为  "file:///sdcard/www/index.html"(注意:这里没有做机型适配),测试成功,也可以先从服务器获取新的html文件,支持热更新。

更新前:


更新后:

Demo下载:http://pan.baidu.com/s/1dFuPDdf  密码:7hwc


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第一步、将 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内容下载完毕即安装更新. 注意:网站的路径
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值