为防止出现字符串比较不准确的情况例如
3.1.10与3.2.1 通过字符串比较是3.1.10为大,所以为了避免这种情况发生采用逐个字符比较的方式比较。
如下面代码所示:
this.appVersion.getVersionNumber().then((value: any) => {this.http.get(jsonUrl + new Date().getTime(), (res) => {const versionTxt = JSON.parse(JSON.stringify(res));that.appVersion.getPackageName().then((name: any) => {let appVersionObj: any;appVersionObj = versionTxt[name];console.log('appVersionObj is ' + appVersionObj.version);// 修复发布版本出现比较异常的bugconst localVersionArray = value.split('.');const serverVersionArray = appVersionObj.version.split('.');if (parseInt(serverVersionArray[0], 10) > parseInt(localVersionArray[0], 10)) {// 第一位that.showUpdate(appVersionObj);} else if (parseInt(serverVersionArray[0], 10) === parseInt(localVersionArray[0], 10)) {if (parseInt(serverVersionArray[1], 10) > parseInt(localVersionArray[1], 10)) { // 第二位that.showUpdate(appVersionObj);} else if (parseInt(serverVersionArray[1], 10) === parseInt(localVersionArray[1], 10)) {if (parseInt(serverVersionArray[2], 10) > parseInt(localVersionArray[2], 10)) { // 第三位that.showUpdate(appVersionObj);}} else {// 服务器第二位小于本地第二位}} else {// 服务器第一位小于本地第一位}});}, (error) => {console.log('msg-----> 更新版本号:' + JSON.stringify(error));}, 'true');}).catch(err => {console.log('msg-----> getVersionNumber:' + err);});