cra-template-doly
Version:
[![npm][npm]][npm-url] 
72 lines (63 loc) • 1.31 kB
text/typescript
import { isBrowser } from 'ut2';
const ua = isBrowser && typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase() : '';
const is = (agent: string) => {
return ua.indexOf(agent.toLowerCase()) > -1;
};
const os = (function () {
if (/windows/.test(ua)) {
return 'windows';
} else if (/linux/.test(ua)) {
return 'linux';
} else if (/iphone|ipod|ipad|ios/.test(ua)) {
return 'ios';
} else if (/mac/.test(ua)) {
return 'mac';
}
})();
const android = /android/.test(ua);
const ios = os === 'ios';
const mobile = android || ios;
const ie = isBrowser && (!!(window as any).ActiveXObject || 'ActiveXObject' in window);
const weixin = /micromessenger/.test(ua);
/**
* @description 运行环境变量
*/
const uaUtil = {
/**
* 判断是否在某个运行环境。
*
* @param agent 运行环境标识
* @returns
* @example
* // 支付宝环境
* env.is('aliapp');
*/
is,
// 系统
/**
* 底层操作系统
*/
os,
/**
* 是否运行在安卓系统
*/
android,
/**
* 是否运行在iOS系统
*/
ios,
/**
* 是否运行在安卓或iOS系统
*/
mobile,
// 浏览器
/**
* 是否运行在ie浏览器
*/
ie,
/**
* 是否运行在微信浏览器
*/
weixin
} as const;
export default uaUtil;