Laravel检查请求是来自浏览器还是其他客户端(移动应用程序)

时间:2016-01-04 07:00:45

标签: laravel

我正在使用Laravel 5.1

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

客户端浏览器以及移动应用(即我们在AndroidiOS中创建)用于CRUD操作的服务相同。

我想现在检测请求是来自任何浏览器(包括移动浏览器)还是来自任何移动设备(即使用移动应用程序,而不是移动浏览器)。有没有办法区分它?

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

2 个答案:

答案 0 :(得分:0)

它为我工作。 ` 公共功能somethingfunc(Request $ request)       {         $ request-> header('User-Agent')         ....

`

答案 1 :(得分:-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
}

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

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

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