Laravel 检查请求是否来自浏览器或休息客户端(移动应用程序)

Dev*_*Dev 6 laravel

我在用Laravel 5.1

在我的项目中有一个service-based architecture模式MVVM。因此,服务器返回的所有数据都是使用 api 调用。

客户端浏览器和移动应用程序(即我们在Android和中创建的iOS)使用相同的服务进行CRUD操作。

我现在想检测请求是否来自任何浏览器(也包括移动浏览器)或从任何移动设备调用(即使用移动应用程序,而不是移动浏览器)。有什么方法可以区分吗?

在请求中设置自定义标头(即来自移动应用程序)可以是一个解决方案,但如果使用 Laravel 代码可以实现任何解决方案,我不想遵循它。

Eme*_*bah -1

目前 Laravel 4、5 和 5.2 中没有检测设备类型的功能,但是,您可以简单地使用此功能检查设备是否移动。

if( preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"])){
   //hey I'm a mobile device
}
Run Code Online (Sandbox Code Playgroud)

要检测其他设备功能,例如屏幕分辨率、屏幕尺寸、操作系统等,您可以尝试以下 Laravel 软件包:

https://github.com/CodyPChristian/browscap-laravel

https://github.com/hisorange/browser-detect