我正在使用以下代码来检查用户是否在App中打开了该站点
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(stripos($ua,'android') && stripos($ua,'mobile') !== false) {
if($_SERVER['HTTP_X_REQUESTED_WITH'] == "apppackagename") {
echo "Opening with App";
}
}
Run Code Online (Sandbox Code Playgroud)
但这在某些设备上并不起作用.
GT - S7582 Android版本4.2.2
有没有解决方案可以在旧版本设备中使用?
提前致谢 !
您可以简单地包含在顶部https://github.com/serbanghita/Mobile-Detect/blob/master/Mobile_Detect.php它是一个轻量级库,只需要包含一个文件。
例如:
require_once('Mobile_Detect.php');
$device = new Mobile_Detect();
if ($device->isMobile() ) {
if( isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
$_SERVER['HTTP_X_REQUESTED_WITH'] == "apppackagename") {
echo "Opening with App";
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想检测 android 那么你可以输入:
$device->isAndroidOS()
Run Code Online (Sandbox Code Playgroud)
这是检测移动设备最可靠的方法(但也没有防弹功能)。无法通过简单的用户代理检查进行可靠的移动检测。
如果您查看源代码https://raw.githubusercontent.com/serbanghita/Mobile-Detect/master/Mobile_Detect.php,您可以看到支持 GT-S7582。