Laravel- 訪問裝置識別元件-BrowserDetect

lanffff發表於2019-05-06

今天使用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框架的裝置訪問識別。。

相關文章