在项目中需要判断不同客户端,进行不同用户信息获取操作。
记录用于判读用户当前登录的客户端,并获取客户端相关信息:
方法一:
export const isAndroid = () => { return navigator && /android/.test(navigator.userAgent.toLowerCase()) }
export const isIphone = () => { return navigator && /iphone/.test(navigator.userAgent.toLowerCase()) }
export const isMobile = () => { return navigator && /mobile/.test(navigator.userAgent.toLowerCase()) }
export const isDingTalk = () => { return navigator && /dingtalk/.test(navigator.userAgent.toLowerCase()) }
export const isWxWork = () => { return navigator && /wxwork/.test(navigator.userAgent.toLowerCase()) }
方法二:
export const global_UserAgent = () => {
let UA = navigator.userAgent.toLowerCase()
// 钉钉
if (/dingtalk/i.test(UA)) {
return { b: 'dingtalk', v: get_v(UA.split(' ').find((item: any) => /dingtalk/i.test(item))), p: get_d(UA) }
}
// 企业微信
else if (/wxwork/i.test(UA)) {
return { b: 'wxwork', v: get_v(UA.split(' ').find((item: any) => /wxwork/i.test(item))), p: get_d(UA) }
}
// 浏览器 待完善
else {
return { b: '', v: '', p: get_d(UA) }
}
}
const get_v = (u: any) => {
return u.split("/")[1].replace(/\)|\(/g, '')
}
const get_d = (UA: string) => {
if (/android/i.test(UA)) return 'android'
else if (/ios/i.test(UA)) return 'ios'
else if (/windows/i.test(UA)) return 'windows'
else return 'pc'
}