Contents

조회 수 2478 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

# PC, Mobile, Tablet 기기를 인식하고 분기하는 방법

UserAgent에 따라 분기하는 방법은 여러 가지가 있겠지만 다음 예제는 URL Route 처리 시 UserAgent를 분석해 해당 디렉토리의 파일을 실행하도록 라우팅하는 방법이다.



# routes/web.php 파일 내용

use Jenssegers\Agent\Agent;

Route::get('/{foo?}', function ($foo = 'welcome') {
	$agent = new Agent();
	
	//return $foo;
	//return view($foo);
	return view( ($agent->isMobile() ? 'mobile' : 'desktop').".".$foo);
});



# resources/views 구조

├── views
|   ├── mobile
|   |   ├── home.blade.php
|   └── desktop
|       ├── home.blade.php



대부분 위와 같은 코드가 바로 동작하지 않을 것이다.

다음과 같이 관련 라이브러리를 설치하고 설정하는 과정을 따라하면 된다.



1. 라이브러리 설치

$ composer require jenssegers/agent



2. config/app.php 파일에 추가


'Agent' => Jenssegers\Agent\Facades\Agent::class,



3. 사용 예

use Jenssegers\Agent\Agent;

$agent = new Agent();

$agent->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2');
$agent->setHttpHeaders($headers);

$agent->is('Windows');
$agent->is('Firefox');
$agent->is('iPhone');
$agent->is('OS X');

$agent->isAndroidOS();
$agent->isNexus();
$agent->isSafari();

$agent->isMobile();
$agent->isTablet();
$agent->isPhone();
$agent->isDesktop();

$languages = $agent->languages();
// ['nl-nl', 'nl', 'en-us', 'en']

$device = $agent->device();

$platform = $agent->platform();

$browser = $agent->browser();

$agent->isRobot();
$robot = $agent->robot();

$browser = $agent->browser();
$version = $agent->version($browser);
$platform = $agent->platform();
$version = $agent->version($platform);


[참고] https://github.com/jenssegers/agent

[참고] https://stackoverflow.com/questions/23779088/laravel-detect-mobile-tablet-and-load-correct-views




?

  1. [php][laravel] 라라벨 개발환경 세팅하기 (Mac, Window)

    Date2017.12.15 CategoryDevelop Byhooni Views2593
    Read More
  2. Laravel 5 Failed opening required bootstrap/../vendor/autoload.php

    Date2018.01.24 CategoryDevelop Byhooni Views1662
    Read More
  3. [php] Laravel Route에서 PC/Mobile 분기

    Date2018.01.24 CategoryDevelop Byhooni Views2478
    Read More
  4. What is difference between Get, Post, Put and Delete?

    Date2018.02.28 CategoryDevelop Byhooni Views1410
    Read More
  5. 콘솔에서 패스워드 걸린 zip 압축하는 명령

    Date2018.03.02 CategorySystem/OS Byhooni Views950
    Read More
  6. [mac] 맥에서 기본 실행 앱 변경하기

    Date2018.03.02 CategorySystem/OS Byhooni Views1815
    Read More
  7. [python] DJI Tello 드론 코딩 (프로그래밍)

    Date2018.03.04 CategoryDevelop Byhooni Views25776
    Read More
  8. How to Test SMTP AUTH using Telnet

    Date2018.04.05 CategoryDevelop Byhooni Views1342
    Read More
  9. How to Setup an Email Server on CentOS 7

    Date2018.04.05 CategorySystem/OS Byhooni Views2790
    Read More
  10. [php] Laravel 4. twitter bootstrap 적용하기

    Date2018.04.05 CategoryDevelop Byhooni Views2548
    Read More
  11. [js] Click button copy to clipboard

    Date2018.04.05 CategoryDevelop Byhooni Views1177
    Read More
  12. [api] 인스타그램에서 최신 이미지 가져오기 (Using Instagram API)

    Date2018.04.05 CategoryDevelop Byhooni Views12390
    Read More
Board Pagination Prev 1 ... 88 89 90 91 92 93 94 95 96 97 98 Next
/ 98