我正在使用Mobile_Detect library
,因为很长一段时间以来https://github.com/serbanghita/mobile-detect。只要更新,它的检测正常,但不是最新的。最后更新是1年前,因此我想简化检测而无需任何更新,但要继续使用Mobile_Detect library
。该库的基本设备检测是可以的。
Mobile_detect库使用用户代理中的设备名称来检测设备。缺少的设备失败或将平板电脑视为手机。对于测试,我使用了与Mobile_Detect library
相似的simple PHP / .htaccess
检测功能,但是此功能不检查UA中的设备名称。我只在寻找:
Android|Mobile == isMobile (Phone)
Android|!Mobile == isTablet
它基于Google检测Android设备的方式:
https://developers.google.com/chrome/mobile/docs/user-agent
我在一个月中对其进行了测试,并进行了数百万个UA检查,没有任何错误的检测。
我需要的是对Mobile_Detect library
的修改,该修改工作于我的检测。我已经用无数方法尝试了它,但它行不通。有人知道如何修改Mobile_Detect library
吗?
这是我的解决方案。它很简单,但非常适合移动设备检测。
class Mobile_Detect {
function isMobile() {
$uagent = $_SERVER['HTTP_USER_AGENT'];
$mobile_device = false;
if (preg_match("/(android|mobile|silk|ipad|iphone|ipod)/i", $uagent)) {
$mobile_device = true;
}
return $mobile_device;
}
public function isTablet() {
$uagent = $_SERVER['HTTP_USER_AGENT'];
$tablet = false;
if (!preg_match("/(mobile)/i", $uagent)) {
if (preg_match("/(android|silk|touch)/i", $uagent)) {
$tablet = true;
}
}
if (preg_match("/(mac|ipad)/i", $uagent)) {
if (!preg_match("/(iphone|ipod)/i", $uagent)) {
$tablet = true;
}
}
return $tablet;
}
}
$detect = new Mobile_Detect;
if ($detect->isMobile()) {
if ($detect->isTablet()) {
echo 'Tablet';
} else {
echo 'Mobile';
}
} else {
echo 'Desktop';
}