ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 안드로이드개발 웹뷰 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



    댓글

Designed by Tistory.