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
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

具体的使用方法还要结合最新的插件介绍。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!