zoukankan      html  css  js  c++  java
  • cordova热更新

    全局安装cordova

    npm install –g cordova

    全局安装热更新cli

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

    android热更新步骤

    创建cordova项目

    Cordova create cordova-hot-push

    安装热更新插件

    cordova plugin add cordova-hot-code-push-plugin

    添加热更新配置文件

    cordova-hcp init 生成配置文件

     

    最后生成的文件

     

    解释一下里面的配置

    Name :项目名字

    Update:何时触发热更新,有几个选项(start(应用启动),resume(应用从后台恢复),now(下载更新后自动执行))

    Content_url:此项配置非常重要。这是www目录存放的网络位置,当有更新的时候,应用会去这个目录下载对应文件。我的做法是在iis上新建一个hot虚拟目录,把www的内容复制进去。

    生成文件映射配置文件

    cordova-hcp build

     

    文件映射配置文件生成后,会在www目录下生成两个文件

     

    第一个chcp.json文件

     

    我们可以看到,和热更新配置文件几乎一样,只是多了一个release。版本号。这个版本号一般以时间为单位。

    第二个chcp.manifest文件

     

    可以看到,里面是每个文件的hash映射。

    Config.xml配置

    添加配置

    <chcp>

    <config-file url="http://172.26.40.153/hot/chcp.json" />

    <auto-download enabled="true" />

    <auto-install enabled="true" />

    <native-interface version="1" />

    </chcp>

     

     

    添加安卓平台

    Cordova platform add android

    打包并安装

    Cordova build android

     

     

    测试更新代码

    假设我们现在要更新一个代码。把index.html里面随便加个内容

     

    添加完成之后。保存代码。

    这里解释一下更新的原理

    当app启动的时候,会去检查本地的版本(release)和服务器上的release(chcp.json)是否一样。不一样的话就去对比文件hash,进行相应的文件更新。

    所以我们要做的是,先把更新后的代码重新生成文件映射配置文件

     

    可以看到我们的版本号变了。

    接下来把www下面的文件拷贝到之前配置的热更新代码存放点(http://172.26.40.153/hot)的对应目录。(第一次拷贝所有文件,以后只需要拷贝修改过的文件到对应目录替换以及两个chcp相关的文件即可)

    接下来去启动app试试看

     

    成功!

    注意事项

    生成热更新配置文件的时候,update选项设置为start,一定要启动两次app才生效。根据我的推测,第一次是下载文件,第二次才生效。把Update配置项改成now不知道会不会立马生效,但是如果需要更新的文件较多,不知道会不会影响用户的使用,待测试。

     经过测试,安卓好像只支持http协议,不支持https协议的热更新

    Ios热更新步骤

    Ios热更新

    Ios的热更新和安卓基本一样。不一样的地方只是Ios只能使用https协议进行热更新。因此我们之前得配置都需要配置成https协议。如https://172.26.40.153/hot  另外,我们要提前做的事情是在我们的服务器上颁发https证书并绑定,同时在ios设备上安装该证书,信任,才可以进行热更新。

  • 相关阅读:
    保障升级:Splashtop 公布安全顾问委员会成员
    Android Studio gradle-5.4.1
    C++__静态成员
    网络嗅探及协议分析-wireshark
    网络嗅探及协议分析-tcpdump
    Linux基本安全防护技术
    C++__动态对象
    C++___深浅拷贝
    C++____函数重载
    C++__函数的默认参数和占位
  • 原文地址:https://www.cnblogs.com/coder-axin/p/9330589.html
Copyright © 2011-2022 走看看