美文网首页
Cordova热更新实现

Cordova热更新实现

作者: lyzaijs | 来源:发表于2018-05-24 14:28 被阅读758次

    cordova-hot-code-push-plugin npm

    cordova-hot-code-push github

    安装

    1. 命令行工具
    npm install -g cordova-hot-code-push-cli
    
    2.安装插件 
    cordova plugin add cordova-hot-code-push-plugin
    
    3.启用服务
    cordova-hcp server
    
    4.用户成功
    Running server
    Checking:  /Cordova/TestProject/www
    local_url http://localhost:31284
    Warning: .chcpignore does not exist.
    Build 2015.09.02-10.17.48 created in /Cordova/TestProject/www
    cordova-hcp local server available at: http://localhost:31284
    cordova-hcp public server available at: https://5027caf9.ngrok.com
    

    如果在虚拟机上进行开发,应用是可以直接访问到热更新服务器。但是真机开发,需要真机与服务器在同一个局域网内,并在config.xml配置服务器地址:

    <chcp>
        <config-file url="https://IP地址/chcp.json"/>
    </chcp>
    

    相关配置

    <auto-download enabled="false" />
    <auto-install enabled="false" />
    

    Defines if plugin is allowed to download updates. Originally update fetching is performed automatically, but you can disable it and do that manually through the JavaScript module.
    即时,

    注意:

    更新流程

    [图片上传失败...(image-68ea5d-1527143332164)]

    准备:cordova插件有实现activity的生命周期,并会在对应的周期中实现相关业务
    initialize -> onStart -> onResume -> onPause -> onStop -> onDestroy

    流程详解

    1.应用启动会自动实例化插件(HotCodePushPlugin.java 该插件配置的onload = true),解析基本配置并会删除旧版本的更新包

    2.onStart 周期中会检测hotcodepush是否初始成功(即,是否将www下的文件复制到codepush下管理,如果没有会进行这个步骤。复制到指定目录下之后会发出 AssetsInstalledEvent事件)

    3.接收到 AssetsInstalledEvent事件后,会向服务器请求最新版本(fetchUpdate)。服务器返回的版本信息与本地进行比对(更新比对的是打包时间字串,只要字符不相等),如果不相等,则会根据服务器给的地址进行下载

    1. UpdatesLoader 会进行下载,下载成功后会发出UpdateIsReadyToInstallEvent事件(这里会下载指定的update目录下)

    5.接收到 UpdateIsReadyToInstallEvent事件,会将下载的更新包安装到hotcodepush中。安装成功会发出UpdateInstalledEvent事件

    6.接收到 UpdateInstalledEvent 事件,则立即进行页面刷新redirectToLocalStorageIndexPage();

    hotcodepush热更新流程.png

    相关文章

      网友评论

          本文标题:Cordova热更新实现

          本文链接:https://www.haomeiwen.com/subject/xoklqftx.html