본문 바로가기

App & Web

사용자 접속 경로가 Webview 인지 Web browser 인지 확인법 - user agent 내용을 수정

http://natsgun.tistory.com/9

이번엔 안드로이드 웹뷰에서 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

'App & Web' 카테고리의 다른 글

T map 연동  (0) 2017.01.02
다른 APP 공유기능에 내 APP이 검색되도록 하기  (0) 2017.01.02
Ionic을 이용한 하이브리드앱 개발 - 안드로이드  (0) 2017.01.02
지도 API 관련  (0) 2017.01.02
Css Tip  (0) 2016.12.26