JavaScript:检测移动嵌入式浏览器(强制门户)

问题描述 投票:0回答:2

我有一个MikroTik热点。

在移动浏览器(Android,iOS,WP)中,当用户连接到HotSpot时,弹出门户网站浏览器(或嵌入式浏览器)。

如果要禁用此嵌入式浏览器,我们必须打开(围墙花园)一些URL(所有电话约10个或更多,而我不想在HotSpot中为所有URL打开这些URL。

因此,有没有一种方法可以使用JavaScript(可能是用户代理)或其他方式检测这些浏览器?

javascript user-agent browser-detection embedded-browser
2个回答
1
投票

对于iOS设备,我已经在php中找到了以下代码:

if ((strpos($userAgent, 'iphone') || strpos($userAgent, 'ipad')) &&
        (strpos($userAgent, 'mozilla/') !== false) &&
        (strpos($userAgent, 'applewebkit/') !== false) &&
        (strpos($userAgent, 'mobile/') !== false) &&
        (strpos($userAgent, 'safari') === false))
    {
        echo 'CONNECTS FROM CAPTIVE';
    } else {
        echo 'CONNECTS FORM SAFARI';
    }

0
投票

似乎对此没有达成共识。以下是一些示例。

对于Android,我看到一些用户代理字符串已添加wv

嵌入式:

Mozilla / 5.0(Linux; Android 7.1.2; Aquaris X5 Build / N2G47H; wv)AppleWebKit / 537.36(KHTML,like Gecko)Version / 4.0 Chrome / 75.0.3770.143 Mobile Safari / 537.36

铬:

Mozilla/5.0 (Linux; Android 7.1.2; Aquaris X5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36

在三星浏览器上,似乎嵌入式缺少SamsungBrowser

Mozilla/5.0 (Linux; Android 9; SM-A405FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36

与完整版本:

Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-A405FN) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/10.1 Chrome/71.0.3578.99 Mobile Safari/537.36

对于iPhone,也缺少Safari字符串:

Mozilla/5.0 (iPhone; CPU iPhone OS 13_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148

Real Safari:

Mozilla/5.0 (iPhone; CPU iPhone OS 13_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Mobile/15E148 Safari/604.1
© www.soinside.com 2019 - 2024. All rights reserved.