ptool
Version:
vue项目开发通用工具类封装
118 lines (117 loc) • 3.42 kB
JavaScript
;
/**
* @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
};