梳理下Cordova的热更新

公司的大部分都是Hybrid 产品,也就是混合开发,所以比较重要的一个核心功能就是热更新了。

做这个功能的时候中间碰到不少坑,记录一下,比较简单,大致思想就是从服务器拉取JS文件替换掉本地对应文件


之前热更新的一个实现想法就是,在项目初始化的时候,找到项目APP包里面的H5包,一般都是放在www文件夹下,(如果对Cordova完全不了解的可以先看下这个

http://www.jianshu.com/p/9654783cd1f5 )


也就是会找到这个www文件夹,然后压缩成zip文件,丢到Doc目录下,每次启动的首页路径就是Doc目录的index.html(index.html就是H5项目的启动页)

在不做热更新的情况下是直接启动APP路径里面的index.html

第一次初始化后Doc里面大概是这样


 
 

 

JimuBizPro是目标文件路径,可以随便命名,www文件夹就是www.zip解压出来的东东(---这个zip是Cordova编译后APP里www文件压缩过来的---),里面的内容大都是一些编译后cordova生成的东西,可以自己控制的是h5_biz这个文件夹的东西

举个栗子
生成Cordova项目的时候不是需要把H5的东西放www文件夹里面吗,像这样


 


也就是在通过 cordova build之后的www文件夹里面在原来的基础上会多一些cordova的配置文件

这里有一点就是,之前第一个版本是没有h5_biz这个中间层的,在H5跨版本更新的时候会删掉原有的www文件夹,然后再解压

这样就必须保证给的增量包必须要包含有编译后的cordova文件,也就是这样


 

但是H5那边提供新包就是纯h5_biz,

这样的结果就是每次要放更新的H5包的时候就必须需要我更新H5编译打包,然后给测试,这样就很没必要了。

在有了h5_biz这个夹层之后,只需要每次删除h5_biz里面的东西,不动cordova的编译文件,这样就可以分离业务出去,每次更新只需要测试那边放新包就行。

 

posted @ 2017-03-21 17:58  L-文森  阅读(1466)  评论(0编辑  收藏  举报