XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.

https://www.xpressengine.com/tip/20901998

 

이거 읽어봐도 정확하게 이해가 안 되는데

 

전자는 쿠키+HTTP 헤더를 확인하고 후자는 HTTP 헤더만 확인한다는 건가요?

 

전자는 반응형 웹일때(시스템 설정에서 모바일 뷰 사용에 체크해제하고 게시판 모듈 설정에서 모바일 뷰 사용 체크해제하면) 동작하지 않는거 같던데 맞나요?

 

반면에 후자는 그렇게 하더라도 동작하는 거 같던데..

  • profile
    기진곰 2017.02.06 10:49:57

    isFromMobilePhone: 가장 일반적인 구분 방법. 현재 요청을 모바일로 인식하고 있는지를 종합적으로 판단합니다. 모바일 레이아웃과 스킨 사용 여부는 이것을 기준으로 나뉩니다. 현재 모듈에서 모바일 뷰를 사용하도록 되어 있는지, 모바일 클래스가 존재하는지, 주소의 m 파라미터, user-agent 값 등을 모두 참고합니다. (PC에서도 주소에 ?m=1을 붙이면 모바일로 인식하고, 모바일에서도 주소에 ?m=0을 붙이면 PC로 인식합니다. 크롬이나 파폭처럼 모바일 시뮬레이션 모드를 제공하는 브라우저에서 테스트할 때 아주 편리합니다.) 판단 결과가 쿠키에 저장되기 때문에 성능도 좋습니다.

     

    isMobileCheckByAgent: 순수하게 user-agent 값을 기준으로 모바일 여부를 판단합니다. 태블릿도 모바일로 인식합니다. user-agent 값을 매번 해석해야 하기 때문에 성능은 별로입니다. 현재 사용중인 스킨이나 레이아웃과 무관하게 모바일 기기 사용자에게만 특별히 적용하고 싶은 코드가 있다면 이 함수를 사용하면 됩니다. (예를 들어 모바일에서는 웹폰트를 로딩하지 않는다거나...)

     

    isMobilePadCheckByAgent: 위의 함수와 같지만, 아이패드 같은 태블릿 기기만 인식합니다. 위의 함수와 조합하면 폰인지 태블릿인지 구분할 수 있습니다.

  • ?
    기븐 2017.02.06 11:16:50
    isFromMobilePhone 이건 모바일 뷰 사용을 체크 해제할 경우 그냥 무시하나 보네요. 반면에 isMobileCheckByAgent 이건 모바일 뷰 사용 여부와는 관계없이 모바일 기기로 들어오거나 크롬 개발자도구로 시뮬레이팅하면 무조건 작동하는거 같네요.

    자세한 답변 감사합니다.

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