auto.js实现自动更新,带进度条

本人在autojs是个新萌,大佬请多指教

注意:

包名不一致:系统会认为是个新的软件,这就不算升级了
签名不一致:系统会提示先卸载之前安装的版本,才能继续安装新的(不卸载之前的,提示安装失败)

自动更新

        先讲一下思路,我是这样做的,每一个版本都自带一个版本号,这个版本号是自定义的,每一个版本号都不同,相同即时同一个版本,在打开APP时,启动线程检测版本更新,如果有新的版本,则弹出模态框,提示用户,有新的版本需要更新,用户可取消更新,可立即更新。

看看效果图

点击立即下载时的效果

下载完成的效果

实现思路

1:引入我们写的自动更新模块

var UpdateObj = require(files.cwd() + "/uitl/UpdateUtil.js");

2:创建版本号

//当前版本
var version = "2.0.1";

 3:创建线程,检测当前版本是否是最新的

//启动版本更新
threads.start(function(){
    getVersion();
})
/**
 * 启动版本检测
 */
function getVersion() {
    //检测网络
    try {
        var r = http.get("www.baidu.com");
        if (r.statusCode == "200") {
            startCode = true;
        } else {
            toast("网络错误,请打开网络重试");
            startCode = false;
        }
    } catch (err) {
        toast("网络错误,请打开网络重试");
        startCode = false;
    }
    if (startCode) {
        //启动版本检测 url:下载最新app的Url
        var versionTh = threads.start(function () {
            //自己的版本检测接口
            var portName = "";
            let redata = HttpUtil.VersionGet(portName, version);
            if (redata != null) {
                let reObj = JSON.parse(redata);
                console.log(reObj);
                if (reObj.isSuccess) {
                    //判断是否有效版本
                    if(reObj.isUsable){
                        //判断是否要更新
                        if(reObj.hasNew == 1){
                            //打开进行升级
                            let downUrl = reObj.newDownUrl;
                            threads.start(function(){
                                UpdateObj.Open(version, downUrl);
                            });
                        }
                        ifshowversion = true;
                    }else{
                        //无效版本
                        toast(reObj.msg);
                        ifshowversion = false;
                        versionText = reObj.msg;
                    }
                } else {
                    toastLog(reObj.sub_msg);
                    versionText = reObj.sub_msg;
                }
            } else {
                versionText = "网络发生错误,请检查一下网络";
                toastLog(versionText);
            }
        });
        versionTh.join();
    }
}

检测手机是否链接网络,请求一下百度,就可以检测出是否链接网络

补充一下js文件下载链接:UpdateUtil.js_autojs自动更新-Android文档类资源-CSDN下载

转发请注明来源

  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值