@ozo/react-rock
Version:
React 移动端开发脚手架,基于CRA3,通用、开箱即用。
57 lines (48 loc) • 1.75 kB
JavaScript
// 设备或系统相关方法
// 获取设备userAgent
export const UA = navigator.userAgent.toLowerCase();
// 判断是在浏览器还是App的webview中
export const isWebView = (() => {
if (UA.indexOf('cordova') >= 0) {
return true;
}
return false;
})();
// 判断设备的类型是 android 或 iphone
export const getDeviceType = () => {
if (UA.indexOf('iphone') !== -1) {
return 'iphone';
}
return 'android';
};
// 获取ios版本号,如果不是ios返回""
export const getIOSVersion = () => {
const ver = UA.match(/cpu iphone os (.*?) like mac os/);
if (ver) {
// 将版本信息中的_转换为.,如"11_4_1"转为"11.4.1"
const tVer = ver[1].replace(/_/g, '.');
console.log(`当前IOS系统版本为:${tVer}`);
return tVer;
} else {
return '';
}
};
/**
* 根据UA判断是否为微信内置浏览器,包括微信和企业微信
* 示例:iphone 6 plus中微信浏览器与企业微信浏览器截取的ua:
* 企业微信UA:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 wxwork/2.4.2 MicroMessenger/6.3.22 Language/zh"
* 微信浏览器UA:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 MicroMessenger/6.5.23 NetType/WIFI Language/zh_CN"
* @returns {boolean} true/false
*/
export const isMicroMessenger = () => {
const tUA = UA.match(/micromessenger/i);
if (tUA && tUA.indexOf('micromessenger') > -1) {
return true;
} else {
return false;
}
};
// 是否处于企业微信中
export const inWxWork = () => {
return isMicroMessenger() && /wxwork/.test(UA);
};