原理

通过不同移动端的ua弹窗 获取user-agent 参数包含的信息,进行判断浏览器类型

在Android上

  • QQ内置环境的ua中有关键字 MQQBrowser, 并且后面包含一个【空白符+QQ】字符;QQ浏览器仅有【MQQBrowser】
    因此在Android上区分,需要用正则判断ua中包含MQQBrowser,并且剔除【MQQBrowser】之后包含【空白符+QQ】,则是QQ内置浏览器,
  • QQ浏览器:ua中包含MQQBrowser但是不包含QQ

在ios上

  • QQ内置浏览器: ua包含一个空格加QQ,但是不包含MQQBrowser
  • QQ浏览器: ua包含MQQBrowser但是不包含单独的QQ

兼容所有ios 安卓设备的判断

//微信浏览器
window.$fromWechat = navigator.userAgent.toLocaleLowerCase().indexOf("micromessenger") > -1;

//QQ浏览器 (MQQBrowser用于判断 安卓设备;QQTheme用于判断 ios设备)
window.$fromQQ =
  navigator.userAgent.indexOf("MQQBrowser") > -1 || navigator.userAgent.indexOf("QQTheme") > -1;

文章源自:
https://juejin.cn/post/7041872548715298824

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐