Laravel- 访问设备识别组件-BrowserDetect
今天使用laravel框架嵌套,手机,PC界面分离的网站时,忽然想到了需要使用BrowserDetect这个组件,协助识别不同设备的跳转,在此分享一下实现流程。
1.安装Browser组件composer require "hisorange/browser-detect"
composer会根据用户的框架及php版本 自动选择下载的组件版本,比如我的laravel是5.5 php是7.2。下载的组件版本是3.1。
-
配置组件
在config/app.php 进行如下配置'providers' => [ \hisorange\BrowserDetect\ServiceProvider::class, ],
'aliases' => [ 'BrowserDetect' => \hisorange\BrowserDetect\Facade::class, ],
配置完毕之后别忘执行下面命令,更新配置文件php artisan cache:clear
到此组件就套用完毕了,接下来说明一下我的具体使用方法。大致思考了一下,最好的方法就是在路由文件通过使用中间件过滤的方法,来实现设备区分跳转。
1.创建中间件
以我的个人项目为例,执行一下命令创建一个中间件。php artisan make:middleware Browser
文件创建完毕后,进入Kernel.php文件内部进行注册protected $routeMiddleware = [ 'Browser' => \App\Http\Middleware\Browser::class, ];
接下来构建中间件的内容,首先引用Browser组件,use BrowserDetect;
Browser为大家提供了三种判断方法。// 是移动设备 手机 BrowserDetect::isMobile(); // 是平板电脑 BrowserDetect::isTablet(); // 是桌面设备 pc BrowserDetect::isDesktop();
2.构建中间件
了解了组件的使用方法之后,在中间件的使用逻辑如下,public function handle($request, Closure $next) { if(BrowserDetect::isMobile()||BrowserDetect::isTablet()){ return redirect('/m'); } return $next($request); }
通过前置中间件识别访问设备是否为手机或者平板,如果符合就重定向到手机版路由。以上中间件就构建完毕了。
3.使用中间件
打开前端路由文件,在PC端路由上套用一下代码,就可以实现组件功能了。Route::group(['middleware'=>['Browser']],function() { });
以上就是通过Browser组件来实现laravel框架的设备访问识别。。
本作品采用《CC 协议》,转载必须注明作者和本文链接
具体的使用方法还要结合最新的插件介绍。