热更新,即:只更新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();