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