平时我们在js中判断浏览器名称和版本都是通过解析userAgent字符串来判断,但是自己挨着用字符串判断始终不能保证处理的准确性,这种时候就可以考虑找找社区有没有比较成熟的解析库了,成熟的库优势就是经过比较漫长的迭代沉淀,且根据用户反馈做了更多的优化调整。对于ua解析库,比较成熟的就是 ua-parser 了,ua-parser 有很多语言版本,支持 python php golang 等,前端直接使用 ua-parser-js 就可以了
import UAParser from 'ua-parser-js';
const WECHAT_SUPPORT_DEVICE = [
{
// 微信内 webview
browser: 'wechat',
},
{
// uc浏览器
browser: 'ucbrowser',
},
{
// qq 浏览器
browser: 'qqbrowser',
},
{
// ios safari 浏览器
browser: 'mobile safari', os: 'ios',
},
];
function isWechatSupportDevice(): boolean {
const parser = new UAParser(navigator.userAgent); // you need to pass the user-agent for nodejs
const parserResults = parser.getBrowser();
const browserName = parserResults.name;
console.log(browserName);
const isValid = WECHAT_SUPPORT_DEVICE.some((item) => item.browser === browserName.toLowerCase());
return isValid;
},
评论 (0)