const AppNameMap = {
elmc: 'eleme',
tb: 'taobao',
ap: 'alipay',
kb: 'koubei',
micromessenger: 'wechat',
};
const UNKNOWN = 'unknown';
const getAppInfo = () => {
const apps = ['micromessenger', 'weibo'];
const customBrowsers = ['ucbrowser', 'qqbrowser', 'sogou', 'baidu', 'liebaofast'];
const originalBrowsers = ['msie', 'firefox', 'opera', 'safari', 'chrome'];
const ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
let platform = UNKNOWN;
let appName = UNKNOWN;
let appVersion = UNKNOWN;
if (ua.match(/(android|adr)/)) {
platform = 'android';
} else if (ua.match(/\(i[^;]+;( u;)? cpu.+mac os x/gi)) {
platform = 'ios';
} else if (ua.match(/(windows|linux|os x)/gi)) {
platform = 'pc';
}
const AliApp = ua.match(/AliApp\(([^\/]+)\/([\d\.\_]+)\)/i);
const processMatchName = (nameList) => {
return ua.match(new RegExp(`(${nameList.join('|')})`));
};
console.log(processMatchName(originalBrowsers))
if (AliApp) {
appName = AliApp[1];
appVersion = AliApp[2];
} else if (
processMatchName(apps)
|| processMatchName(customBrowsers)
|| processMatchName(originalBrowsers)
) {
appName = RegExp.$1;
ua.match(new RegExp(`${appName}[\/:\\s\\(]([\\d.]+)`, 'gi')) && (appVersion = RegExp.$1);
}
return { appName, appVersion, platform };
};
console.log(getAppInfo())