XETOWN

물어보기

function isMobilePadCheckByAgent()
{
static $UACheck;
if(isset($UACheck))
{
return $UACheck;
}
// $padAgent = array('iPad','SM-P550', 'Android', 'webOS', 'hp-tablet', 'PlayBook');
$padAgent = array('iPad','SM-P550','Android','webOS', 'hp-tablet', 'PlayBook');
// Android with 'Mobile' string is not a tablet-like device, and 'Andoroid' without 'Mobile' string is a tablet-like device.
// $exceptionAgent[0] contains exception agents for all exceptions.
$exceptionAgent = array(0 => array('Opera Mini', 'Opera Mobi'), 'Android' => 'Mobile');

foreach($padAgent as $agent)
{
if(strpos($_SERVER['HTTP_USER_AGENT'], $agent) !== FALSE)
{
if(!isset($exceptionAgent[$agent]))
{
$UACheck = TRUE;
return TRUE;
}
elseif(strpos($_SERVER['HTTP_USER_AGENT'], $exceptionAgent[$agent]) === FALSE)
{
// If the agent is the Android, that can be either tablet and mobile phone.
foreach($exceptionAgent[0] as $val)
{
if(strpos($_SERVER['HTTP_USER_AGENT'], $val) !== FALSE)
{
$UACheck = FALSE;
return FALSE;
}
}
$UACheck = TRUE;
return TRUE;
}
}
}

$UACheck = FALSE;
return FALSE;
}

 

 

Mobile.class.php  에서   에이전트가 안드로이드일때  타블렛 과 스마트폰을 구별을  하려고 

하는데 이것 웬지 안되는것 같습니다.  제가 노트 5 와 갤러시탭 A를 쓰는데 

모바일에서 접속시 노트 5에서는 모바일 화면이 갤럭시탭 A 에서는 첫화면이 PC화면으로 초기화면을 

지정하고 싶습니다. ...

 

 

  • profile
    YJSoft 2016.06.14 11:13:55

    일일히 모델명이나 식별자 등을 추가하는 방법이 있기는 합니다만 이 방법으로는 한계가 있습니다.(태블릿이나 폰이 한두개여야죠.. 게다가 브라우저별로 유저 에이전트도 다르고 기본 브라우저가 아닌이상 모델명이 꼭 있으리라는 법도 없습니다.)

    즉 구분하기 힘듭니다...

    굳이 구분할 필요 없이 네이버처럼(PC에서 m.naver.com으로 접속시 태블릿 화면이 뜨는데 여기서 창을 줄이면 모바일 페이지가 보입니다) 모바일 페이지를 따로 반응형으로 만드는 방법 정도가 있겠습니다.(즉 PC 레이아웃은 그대로 두고 모바일만 반응형으로 작업)

  • profile
    하루히 2016.06.14 11:19:11
    반응형으로 하는 게 최선일거에요..
  • profile
    기진곰 2016.06.14 11:41:00

    비교적 최근 버전의 안드로이드 태블릿은 user-agent에 mobile이라는 단어를 포함시키지 않는 것이 관례입니다. 알려주신 소스 23줄 이하에서 체크하는 것이 이 부분이예요. 그 밖에 tab, tablet, pad 등의 단어가 포함되어 있다면 태블릿으로 볼 수도 있고 (아이패드는 pad에 걸리죠) 삼성 GT-처럼 태블릿 상품의 모델명에 공통으로 포함되는 문자를 찾아볼 수도 있어요.

     

    물론 이것으로 모든 모델을 검출해낼 수는 없습니다. 요즘은 폰도 아니고 태블릿도 아닌 어정쩡한 크기의 패블릿들이 많아서...

  • profile
    이성민 2016.06.14 17:27:59
    해결했습니다. https://www.xpressengine.com/index.php?mid=download&package_id=22753320 를 개조해서

    <?php
    if(Mobile::isMobilePadCheckByAgent()) {
    print("<script> alert('".$addon_info->message."');
    location.href='".$addon_info->where."';
    </script>
    ");
    exit();
    }
    ?>

    이렇게 고치니 타블렛 pc 화면으로 자동 리다이렉트 되네요!!!!
  • profile
    이성민 2016.06.14 20:50:36
    ㅠㅠ 다시 문제발생 갤럭시 탭등 타블렛에서 스케치북 게시판 sns버튼이 깨져 버리네요 휴 산넘어 산이구나!!!

서버에 요청 중입니다. 잠시만 기다려 주십시오...