-
안드로이드개발 웹뷰 user agent 정보를 바꿔보자안드로이드시작부터웹뷰까지 2014. 10. 19. 03:10
이번엔 안드로이드 웹뷰에서 user agent 내용을 수정해보겠습니다.
user agent 란??
- 웹브라우져로 웹사이트를 접속시에 접속한 기기가 어떤 정보를 가지고 있는지 웹서버에서 확인 할 수 있습니다.
그중에 user agent 란 정보는 웹사이트에 어떤 브라우저( 익스플로러, 크롬, 사파리 등..)로 접속했는지 정보를 알 수 있습니다.
ex) PC에서 크롬으로 접속한경우라면 웹서버에서는 접속한 브라우져정보를 아래와 같은 값으로 확인 할 수 있습니다.
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36
위 정보는 javascript 나 서버사이드스크립트언어등 ( php, jsp, asp, .net 등 ) 에서 어떤 기기로 접속할 수 있는지 확인 할 수 있는데
그 중 javascript 에서 간단히 확인하는 방법은 아래와 같습니다.
<script type="text/javascript">
var broswerInfo = navigator.userAgent; // broswerInfo 에 user agent 정보를 담습니다.
alert(broswerInfo); // user agent 정보내용을 화면에 경고창으로 보여줍니다.
</script>
우리가 만든 웹뷰로 접속한다면 어떨까요? 웹뷰로 한번 접속해봅시다.
Mozilla/5.0 (Linux; Android 4.4.2; sdk Build/KK) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
이라고 나오는 군요
그렇다면 그냥 안드로이드 기기의 기본 웹브라우저에서 접속하면?
Mozilla/5.0 (Linux; Android 4.4.2; sdk Build/KK) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
어라? 똑같네요..
그렇다면 같은 안드로이드 기기라면 우리가 하이브리드웹으로 접속한 사이트에 기본 웹브라우져로 접속을 한것인지 아니면 웹뷰를 이용해 제작한 앱으로 접속한건지 확인할 방법이 없게되겠네요.
앱으로 접속한 경우 여러가지 다른 동작을 하고 싶어서 할 수가 없습니다.
그래서!! 우리가 제작한 웹뷰로 접속한 경우 저 user agent 정보를 수정하여 앱으로 접속하였다라는 것을 알수 있도록 작업을 해봅시다.
1) MainActivite.java 파일을 open합니다.
2) useragent 기본문법은 아래와 같습니다. 현재의 user agent 값을 userAgent 라는 String 에 할당합니다.
String userAgent = new WebView(getBaseContext()).getSettings().getUserAgentString();
3) 가져온 userAgent 뒤에 우리가 만든 앱이라는 것을 알 수 있도록 onCreate 안에 할당해논 웹뷰 셋팅부분에 APP_WISHRROM_Android 값을 추가해서 바꿔보겠습니다.
볼드체로 표시한 부분이 추가한 부분입니다.
mWebView = (WebView) findViewById(R.id.webView);
mWebView.getSettings().setJavaScriptEnabled(true);
String userAgent = mWebView.getSettings().getUserAgentString();
mWebView.getSettings().setUserAgentString(userAgent+" APP_WISHRROM_Android");4) 이제 우리가 추가한 APP_WISHROOM_Android 라는 문구가 추가됬는지 확인해 볼까요?
짠! 붉은색으로 표시한 부분에 새로 추가한 문구가 똭!하고 보이는군요
이제 우리가 제작한 앱으로 접속했다는 것을 알 수 있게되었으니 웹사이트에서 마음껏 작업해봅세다.
추가 : 추가한문구를 통해 앱으로 접속한 경우 확인하는 javascript 소스샘플
<script type="text/javascript">
var broswerInfo = navigator.userAgent;
if(broswerInfo.indexOf("APP_WISHROOM_Android")>-1){alert("앱으로 접속하셨습니다.");}</script>
참고 URL : http://ecogeo.tistory.com/351
'안드로이드시작부터웹뷰까지' 카테고리의 다른 글
안드로이드개발 웹뷰의 javascript 와 연동하기 ( 함수호출 ) (1) 2014.10.19 안드로이드개발 다른앱에서 내앱으로 공유하기(크롬,브라우저에서 공유URL 받아오기) (0) 2014.10.19 안드로이드개발 로딩화면( 스플래시 적용 ) (0) 2014.10.18 안드로이드개발 메뉴 버튼 기능 변경 (0) 2014.10.17 안드로이드개발 웹뷰에서 경고창 ( alert ) 이 반응 없을때 (0) 2014.10.16