UNPKG

ptool

Version:

vue项目开发通用工具类封装

118 lines (117 loc) 3.42 kB
"use strict"; /** * @FileName multiPlatform.ts * @Author Mad Dragon <395548460@qq.com> * @Version V 0.0.1 * @Date 2021/8/6 9:32 * @Title 多平台工具类 * @Desc 环境判断 、不同环境处理方案 **/ Object.defineProperty(exports, "__esModule", { value: true }); /** * 运行环境判断方法 返回环境标识 */ const environmentalJudgment = () => { const sUserAgent = window.navigator.userAgent.toLowerCase(); const bIsDtDreamApp = sUserAgent.indexOf('dtdreamweb') > -1; // 浙里办APP const bIsAlipayMini = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1 || sUserAgent.indexOf('aliapp') > -1 && sUserAgent.indexOf('alipay') > -1; // 支付宝小程序 const bIsWeChat = (/MicroMessenger/i.test(sUserAgent)); const dingTalkApp = sUserAgent.indexOf('dingtalk') > -1; // 浙里办APP const cityBrain = sUserAgent.indexOf('citybrain') > -1; // 城市大脑APP if (bIsDtDreamApp) { console.log('浙里办APP环境'); return 'ZheLiBanApp'; } else if (bIsAlipayMini) { console.log('支付宝小程序环境'); return 'AliPayMini'; } else if (bIsWeChat) { console.log('微信环境'); return 'WeChat'; } else if (dingTalkApp) { console.log('钉钉环境'); return 'DingTalkApp'; } else if (cityBrain) { console.log('城市大脑环境'); return 'CityBrain'; } else { console.log('H5环境'); return 'H5'; } }; /** * 是否是这里办环境 */ const isZheLiBanApp = () => { return environmentalJudgment() === 'ZheLiBanApp'; }; /** * 是否支付宝小程序 */ const isAliPayMini = () => { return environmentalJudgment() === 'AliPayMini'; }; /** * 是否是钉钉 */ const isDingTalkApp = () => { return environmentalJudgment() === 'DingTalkApp'; }; /** * 是否是微信 */ const isWeChat = () => { return environmentalJudgment() === 'WeChat'; }; /** * 是否是H5环境 */ const isH5 = () => { return environmentalJudgment() === 'H5'; }; const browser = () => { const u = navigator.userAgent; console.log(u); // Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36 return { trident: u.indexOf('Trident') > -1, presto: u.indexOf('Presto') > -1, webKit: u.indexOf('AppleWebKit') > -1, gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') === -1, mobile: !!u.match(/AppleWebKit.*Mobile.*/), ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, iPhone: u.indexOf('iPhone') > -1, iPad: u.indexOf('iPad') > -1, webApp: u.indexOf('Safari') === -1, weixin: u.indexOf('MicroMessenger') > -1, // @ts-ignore qq: u.match(/\sQQ/i) === ' qq' // 是否QQ }; }; const isPC = () => { if (browser().mobile || browser().android || browser().ios || document.body.clientWidth < 787) { // 判断是否是移动端 console.log('这里是移动端'); return false; } console.log('这里是pc端'); return true; }; const isAPP = () => { return !isPC(); }; exports.default = { environmentalJudgment, isZheLiBanApp, isAliPayMini, isWeChat, isH5, browser, isPC, isAPP, isDingTalkApp };