묻고답하기
pc , 모바일, 앱으로 접속을 알수 있는 조건문 혹시 아시는 분 계신가요?
2015.06.06 16:51
사용자가 PC, 모바일, 앱으로 사이트를 접근 했을 때의 조건문 혹시 아시는 분 계신가요?
각각 환경에서 접속했을 때 서로 다른 부분을 보여주고 싶습니다.
PC일때 A
모바일 일때 B
앱 일때 C
각각 다른 내용을 보여주고 싶습니다.
댓글 8
-
AJKJ
2015.06.06 16:59
-
불금
2015.06.06 17:20
클래스에서 user_agent가 지정되고 단순히 모바일 인지 아닌지를 구분할 때
<!--@if(Mobile::isMobileCheckByAgent())-->
Mobile 에서 보여짐
<!--@else-->
PC 에서 보여짐
<!--@end-->Mobile::isMobileCheckByAgent() 을 html 조건문이나 php 조건문으로 다 사용할수 있습니다.
다음과 같이 쓸수도 있습니다.
<!--@if(!Mobile::isMobileCheckByAgent())-->
PC만 보여짐
<!--@end-->
-
맥문동
2015.06.12 17:05
답변 감사합니다.
스케치북 게시판에서 상단내용에 알려주신 코드를 넣고 테스트 해보니 2가지 경우 모두 출력이 되는데 혹시 어떤 부분이 잘못된건지 답변 좀 부탁드립니다.
[ 출력 결과 ] Mobile 에서 보여짐 PC 에서 보여짐
<!--@if(Mobile::isMobileCheckByAgent())-->
Mobile 에서 보여짐
<!--@else-->
PC 에서 보여짐
<!--@end--> -
불금
2015.06.13 00:50
상단내용이 아니라 스킨 html 에 직접 적으시면 될겁니다.
-
몽실아빠
2015.06.12 17:13
html 상단입력 공간에는 왠지 조건문 같은게 먹지 않더군요. 스킨에서 처리하시면 될겁니다. 앱의 구분은 되지 않습니다. 안드로이드웹뷰는 안드로이드크롬으로 분류가 됩니다. 따라서 앱 제작시 브라우저유저에이전트에 특정문구를 삽입하여 제작을 하시고 사이트에 스크립트로 브라우저들의 유저에이전트의 문자열 중 입력된 문자열을 확인하는 과정을 거치시면 됩니다. 저희 사이트에서 하고 있는 방법입니다.
-
맥문동
2015.06.12 21:37
@몽실아빠
며칠 시도를 하고 있는데요..
몽실아빠님의 사이트 처럼 pc하면과 모바일에서 접속 할때 앱 다운로드 배너를 보여 주고 싶어 이래저래 알아보고 있는 중입니다.
혹시 실례가 안된다면 조금 더 상세한 내용을 부탁드려도 될까요?
-
몽실아빠
2015.06.12 22:04
기존에 제가 질문한 것을 검색해 보셔도 답은 있을거에요. 준비할거 말씀 드릴게요. 앱을 만드실때 유저에이전트에 특별한 식별문자를 넣어서 만들어야 합니다. 안드로이드앱을 구분하기 위해서 입니다.
1.앱을 빌드할때 브라우저에이전트에서 식별가능한 문자열을 삽입합니다.
- 앱을 제작해 주신분이 추가해주셔서 이부분은 저도 방법은 저도 모릅니다.
2.앱이 아닌 곳과 앱에서 노출할 내용을 쌍으로 준비합니다. (나중에 스크립트로 브라우저에 따라 하나씩 제거해야 하기 때문에 꼭 쌍으로 준비해서 입력해 놓으셔야 합니다.)
3.쌍으로 준비한 내용을 div 로 감싸셔서 미리 약속된 id로 지정하십니다.
모바일레이아웃에서만 스크립트를 추가하여 앱일경우 앱에서 출력될 내용은 두고 아닌내용은 감춰주게 합니다.
스크립트의 실행이 마지막에 되도록 배치해 주세요. DIV로 감싸진 내용이 출력된 이후 스크립트가 실행되어야 DIV ID를 확인하고 처리를 해 주는 방식이라서요. 스크립트가 먼저 실행되버리면 동작되지 않습니다.
<script type="text/javascript">
var broswerInfo = navigator.userAgent;
if(broswerInfo.indexOf("app_pomelove")>-1 || broswerInfo.indexOf("iPhone")>-1){
document.getElementById("android_no").style.display="none";
document.getElementById("android_on").style.display="block";
}
</script>제가 사용하는 실제 스크립트 입니다.
브라우저 유저에이전트에 앱에 심어놓은 app_pomelove 문자열이 검출되거나 iPhone이 검출되면 div 1개는 가리고 나머지 1개는 보이게 처리한 스크립니다. 입니다.(가리는 광고내용은 앱 다운로드 광고 내용입니다.)
또는 하나는 앱에서만 되는 기능의 광고 나머지 한개는 일반적인 사이트의 공통광고를 등록해 놓고 위 스크립트로 앱에서는 앱에서 되는 기능광고가 나가게 하고 나머지 브라우저에서는 일반적인 광고가 나가게 하면 됩니다.
미리 출력될 내용에서는 반대로 해 놓으셔야 앱이 아닌 곳과 아이폰 계열에서는 늘 앱과 반대로 출력이 되어 집니다.
-
맥문동
2015.06.13 11:54
답변 감사합니다.
모바일은 Mobile::isFromMobilePhone() 으로 하시면 되고요.
앱의 경우 앱 제작시 ua에 특정 문자열을 삽입해야 하고, 그걸 서버에서 감지해야 합니다... 그렇게 하지 않으면 알 수 없는걸로 알고있어요