easyclick 热更新

热更新,即:只更新iec格式文件,不必更新apk

方式一: update.json配置更新方法

工程里面的update.json定义iec的下载路径即可.

{
   "update_url": "https://gitee.com/用户/项目/raw/master/目录/release.iec",
   "version": "1.0.0"
   "dialog":true,
   "msg": "更新已知bug",
   "force": true
 }
update_url: 代表服务端的更新接口,需要自己编写服务端接口
version: 代表当前脚本的版本号
dialog: 显示更新对话框
msg: 对话框中要显示的消息
force: 是否强制更新
download_timeout: 下载iec超时时间,默认60s

iec文件可以放在github或者gitee,或者你自己的服务主机.

如果上述配置无误,打开界面会自动更新.

方式二: 脚本内定义代码更新 hotupdater.updateReq

        let version = 7;
        toast("Hello World -> "+version);
        //请求服务器是否有新版本
        let updateResult = hotupdater.updateReq();
        logd("请求更新是否有: "+updateResult);
        if (!updateResult) {
            logw("请求失败错误信息: "+hotupdater.getErrorMsg());
        }else{
            logd("请求数据: "+hotupdater.getUpdateResp());
            //有更新得情况下进行下载新的版本
            let path = hotupdater.updateDownload();
            logd("下载路径为: "+path);
            if (!path) {
                logw("下载IEC文件错误信息: "+hotupdater.getErrorMsg());
            }else{
                restartScript(path,true,3)
                return;
            }
        }
        sleep(1000);
        for (var i = 0; i < 10; i++) {
            logd(time()+" "+version);
            sleep(5000)
        }

执行热更新文件

function main(){
    var result = setIECPath("/sdcard/release.iec");
    logd("result : "+result);
    logd("当前路径 "+getIECPath());
    //开启定时任务准备下一次执行
    var id2 =startJob("task2","2",true);
    logd("job id "+id2);
}
main();
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注