美文网首页
JS判断APP应用版本号

JS判断APP应用版本号

作者: 子绎 | 来源:发表于2020-11-11 15:01 被阅读0次

当我们打包成APP安装到安卓用户端后,如果说每一次都需要去手动发送安装包到QQ或者WX,是不是很麻烦呢,要是设想,每次打开APP能够自动检测更新就好了(这里提供的是 版本号检测方法 自动更新的方式 下次再补)

一、思路

将APP上传至服务器,服务器可以写成一个接口,APP每次启动的时候,都全局请求一次接口。接口返回版本号以及最新版本的下载链接。 我们得到这个版本号是接口返回的。所以我们还需要手动在APP打包的时候,在全局定义一个固定死的变量,比如

let appVerson = 'v1.2.5.0'

以上这样我们就能在APP每次启动,都拿代码中的appVerson去和接口中的版本号进行匹配

二、产生的问题

由于一些版本号的格式是'v1.2.5.0'里面有英文加数字加小点。而直接判断,是会因为JS的解析规则导致一些错误的,并不会太标准。所以我们需要封装成一个方法,将数字单独取出来进行大小判断

三、函数封装

//检测版本号

class IsMaxVserson {
    constructor(versonOld, versonNew) {
        this.versonOld = '';
        this.versonNew = '';
    }
    VsersonFlag(verson) {
        if (this.versonOld != '' && this.versonNew != '') {
            return Number(verson.split('').map(res => {return Number(res)}).filter(res => {return isNaN(res) != true}).join(''));
        }
    }
    isVserson(versonOld, versonNew) {
        this.versonOld = versonOld;
        this.versonNew = versonNew;
        if (this.VsersonFlag(versonOld) == this.VsersonFlag(versonNew)) {
            return {
                type: false,
                title: '已是最新版'
            }
        } else {
            return this.VsersonFlag(versonOld) < this.VsersonFlag(versonNew) ? {
                type: true,
                title: '检测到最新版'
            } : {
                type: false,
                title: '服务器版本过低'
            }
        }
    }
};

四、用法

 调用,首先new一下这个方法得到实例
let verSonFlag = new IsMaxVserson();
接收两个参数   第一个参数旧版本号,第二参数,新版本号(接口返回)

let versonTypeFlag = verSonFlag.isVserson(''旧版本号,'新版本号' );
最终会返回来一个结果  输出versonTypeFlag 
会显示版本号对比的最终结果 
结果是true或者false
true代表是不相等的 可以进行更新
false代表已经是最新版 不需要更新

相关文章

网友评论

      本文标题:JS判断APP应用版本号

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