检查用户是否在App中打开该站点

Sre*_* KS 8 php android

我正在使用以下代码来检查用户是否在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

有没有解决方案可以在旧版本设备中使用?

提前致谢 !

Paw*_*iel 4

您可以简单地包含在顶部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。