我有一个MikroTik热点。
在移动浏览器(Android,iOS,WP)中,当用户连接到HotSpot时,弹出门户网站浏览器(或嵌入式浏览器)。
如果要禁用此嵌入式浏览器,我们必须打开(围墙花园)一些URL(所有电话约10个或更多,而我不想在HotSpot中为所有URL打开这些URL。
因此,有没有一种方法可以使用JavaScript(可能是用户代理)或其他方式检测这些浏览器?
对于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';
}
似乎对此没有达成共识。以下是一些示例。
对于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