Laravel- 访问设备识别组件-BrowserDetect

今天使用 laravel 框架嵌套,手机,PC 界面分离的网站时,忽然想到了需要使用 BrowserDetect 这个组件,协助识别不同设备的跳转,在此分享一下实现流程。
1. 安装 Browser 组件
composer require "hisorange/browser-detect"
composer 会根据用户的框架及 php 版本 自动选择下载的组件版本,比如我的 laravel 是 5.5 php 是 7.2。下载的组件版本是 3.1。

  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 协议》,转载必须注明作者和本文链接
lanffff
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。