UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

125 lines (120 loc) 3.36 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /** * 获取UA * @private * @returns {string} ua */ function getRealUA() { return (navigator.userAgent || '').toLowerCase(); } /** * 检查是否是ios环境 * @returns {boolean} 是否是ios环境 * * @example * * checkUAIsIOS() * * // => true * */ function checkUAIsIOS() { var realUA = getRealUA(); return /iphone|ipod|ipad|Mac OS X/i.test(realUA) || !!realUA.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); } /** * 获取useragent类型 * @returns {object} useragent的map * @example * * getEnvUAType() * * // => * { * isWeixin: false, * isWorkWeixin: false, * isQQ: false, * isPvpApp: false, * isTipApp: false, * isAndroid: false, * isIos: true, * isIOS: true, * isMsdk: false, * isMsdkV5: false, * isSlugSdk: false, * isInGame: false, * isGHelper: false, * isGHelper20004: false, * isMiniProgram: false, * isLolApp: false, * isWindowsPhone: false, * isSymbian: false, * isPc: true, * }; * */ function getEnvUAType() { var ua = getRealUA(); var isWeixin = ua.indexOf('micromessenger') !== -1; var isWorkWeixin = ua.indexOf('wxwork') !== -1; var isQQ = ua.indexOf(' qq/') !== -1; var isPvpApp = ua.indexOf(' igameapp/') !== -1; var isTipApp = ua.indexOf(' gamelife/') !== -1; var isAndroid = ua.indexOf('android') !== -1; var isIos = checkUAIsIOS(); var isIOS = isIos; var isMsdk = ua.indexOf(' msdk/') !== -1; // msdk var isMsdkX = ua.indexOf(' webviewx msdk/') !== -1; // 嵌入式msdk浏览器 var isMsdkV5 = ua.indexOf(' msdk/5') !== -1; // msdk V5 var isSlugSdk = ua.indexOf('ingame') !== -1; // 微社区sdk var isInGame = isMsdk || isSlugSdk; // 是否游戏内 var isGHelper = ua.indexOf('gamehelper') !== -1; var isGHelper20004 = ua.indexOf('gamehelper_20004') !== -1; var isMiniProgram = ua.indexOf('miniprogram') !== -1 || typeof window !== 'undefined' // eslint-disable-next-line no-underscore-dangle && window.__wxjs_environment === 'miniprogram'; var isLolApp = ua.indexOf('lolapp') !== -1; // 掌上英雄联盟app var isWindowsPhone = /(?:Windows Phone)/.test(ua); var isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone; var isPc = !ua.match(/(phone|pad|pod|iphone|ipod|ios|ipad|android|mobile|blackberry|iemobile|mqqbrowser|juc|fennec|wosbrowser|browserng|webos|symbian|windows phone)/i); return { isWeixin: isWeixin, isWorkWeixin: isWorkWeixin, isQQ: isQQ, isPvpApp: isPvpApp, isTipApp: isTipApp, isAndroid: isAndroid, isIos: isIos, isIOS: isIOS, isMsdk: isMsdk, isMsdkX: isMsdkX, isMsdkV5: isMsdkV5, isSlugSdk: isSlugSdk, isInGame: isInGame, isGHelper: isGHelper, isGHelper20004: isGHelper20004, isMiniProgram: isMiniProgram, isLolApp: isLolApp, isWindowsPhone: isWindowsPhone, isSymbian: isSymbian, isPc: isPc }; } function initEnv() { return getEnvUAType(); } /** * 检查是否是node环境 * @returns {boolean} 是否node环境 * @example const res = checkNodeEnv(); // false */ var checkNodeEnv = function checkNodeEnv() { return !(typeof window !== 'undefined' && window.navigator); }; exports.checkNodeEnv = checkNodeEnv; exports.checkUAIsIOS = checkUAIsIOS; exports.getEnvUAType = getEnvUAType; exports.initEnv = initEnv;