123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* eslint-disable linebreak-style*/
- const REG = /__weibo__(\d+).(\d+).(\d+)/;
- /**
- * 获取字符串中的版本号,并分段输出为数组
- * @param versionStr | string | "8.9.3" | 必须为三段版本号,中间用.分隔
- * @return versionArr | Array | [8,9,3]
- * */
- let getVersionArr = (versionStr) => {
- let ua = navigator.userAgent;
- let _str = versionStr ? `__weibo__${versionStr}` : ua;
- let versionArr = [];
- if (REG.test(_str)) {
- versionArr.push(parseInt(RegExp.$1));
- versionArr.push(parseInt(RegExp.$2));
- versionArr.push(parseInt(RegExp.$3));
- return versionArr;
- }
- return [0, 0, 0];
- };
- let compareVer = (version1, version2) => {
- let result = -1;
- if (version1 > version2) {
- result = true;
- }
- if (version1 < version2) {
- result = false;
- }
- return result;
- };
- /**
- * 判断当前客户端版本是否达到指定版本
- * @param targetVersionString | String | "8.9.3" | 必须为三段版本号,中间用.分隔
- * @return moreThanTarget | Boolean | true | 是否达到指定版本
- * @author shaobo3@
- * @example
- * checkWeiboVersion('8.9.3');
- * */
- export default function checkWeiboVersion(targetVersionString = "") {
- if (!targetVersionString) {
- return false;
- }
- let targetVersionArr = getVersionArr(targetVersionString);
- let clientVersionArr = getVersionArr();
- let part1Result = compareVer(clientVersionArr[0], targetVersionArr[0]);
- let part2Result = compareVer(clientVersionArr[1], targetVersionArr[1]);
- let part3Result = compareVer(clientVersionArr[2], targetVersionArr[2]);
- //先比较第一位版本号,不相等直接返回结果,相等判断第二位版本号;
- if (part1Result !== -1) return part1Result;
- //先比较第二位版本号,不相等直接返回结果,相等判断第三位版本号;
- if (part2Result !== -1) return part2Result;
- //先比较第三位版本号,不相等直接返回结果,全部相等则返回true;
- if (part3Result !== -1) return part3Result;
- return true;
- }
- /* eslint-enable linebreak-style*/
|