今天做一个分享功能,在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')));