如何通过ua区分QQ内置浏览器与QQ浏览器

今天做一个分享功能,在QQ内置的情况要弹蒙层。在QQ 浏览器里面要正常。遇到了这个坑,辛亏爬出来了。

在Android上
QQ内置环境的ua中有关键字 MQQBrowser, 并且后面有一个QQ字符,QQ浏览器则没有。
因此在Android上区分,需要用正则判断ua中包含MQQBrowser并且之后包含QQ,则是QQ内置浏览器,ua中包含MQQBrowser但是不包含QQ则是QQ浏览器

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

const isIosQQ = (isIos && / QQ/i.test(navigator.userAgent));
const isAndroidQQ = (isAndroid && /MQQBrowser/i.test(navigator.userAgent) && /QQ/i.test((navigator.userAgent).split('MQQBrowser')));

原文

    原文作者:木子喵
    原文地址: https://segmentfault.com/a/1190000016952785
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞