UNPKG

weex-nuke

Version:

基于 Rax 、Weex 的高性能组件体系 ~~

58 lines (54 loc) 1.45 kB
import { UAParser as parser } from './mini-ua-parser'; import * as env from './env'; const webEnv = Object.assign({}, env); let userAgent = ''; try { userAgent = navigator.userAgent.toLowerCase(); } catch (e) {} let appInfo = ''; const params = {}; const runtimeInfo = {}; const parsedUA = new parser().getResult(); appInfo = { platform: parsedUA.os.name || '', osVersion: parsedUA.os.version || '', isInAliApp: /AliApp/i.test(userAgent), deviceModel: parsedUA.device.model, isWindVane: /WindVane/i.test(userAgent), }; let appVersion; let appName; if (appInfo.isInAliApp) { try { const matchResult = userAgent.match(/AliApp\(([a-z-A-Z]{1,20})\/(\d+(\.\d+){0,3})?\)/i); if (matchResult && matchResult.length >= 3) { appName = matchResult[1]; appVersion = matchResult[2]; } } catch (e) {} if (appName) { appInfo.appName = appName; } if (appVersion) { appInfo.appVersion = appVersion; } } if (appInfo.appName === 'QN') { webEnv.isQNWeb = true; webEnv.isQNWeex = false; } if (window.location.search) { const searchString = window.location.search.substring(1); let i; let val; const paramsArr = searchString.split('&'); for (i = 0; i < paramsArr.length; i += 1) { val = paramsArr[i].split('='); params[val[0]] = decodeURIComponent(val[1]); } } webEnv.appInfo = appInfo; webEnv.params = params; webEnv.runtimeInfo = runtimeInfo; webEnv.UAParser = parser; export { webEnv };