2014. 7. 8. 12:07

작업을 진행하던 중

 

안드로이드 webview와 폰 자체에 기본적으로 내장되어 있는 브라우저를 구분해야 할 일이 생겼다.

 

기본적으로 오는 user agent 값을 가지고 비교를 해보았으나

 

별다른 방법이 없어 보이는데...

 

그래서 확인한 방법이 ....

 

Android의 WebSettings를 확인해 보았다..

 

거기에 setUserAgentString 메소드가 존재...

 

혹시나...

 

여기에 임의의 값을 집어 넣고 테스트...

 

HTTP_USER_AGENT 의 값을 찍어보니

 

webview에서 호출할때는 위에 넣은 임의의 값이 출력된다..

 

이것을 이용하면 webview에서 호출한 것인지 여부를 판단할 수 있을 것 같다.

 

단, setUserAgentString 메소드에 임의의 값을 넣으면 그 값만이 나오기 때문에

 

javascript나 css에서 브라우저를 구분하려 한다면 이에 대한 보완이 필요하다.

 

그래서 처리한 방법...

 

1. WebSettings의 getUserAgentString 메소드를 이용해서 user agent 값을 가져옴.

2. 1에서 가져온 값에 임의의 값을 추가

3. setUserAgentString 메소드에 임의의 값을 추가한 문자열을 입력.

 

위와 같이 해서 해결함.

 

 

 

 

 

 

 

 

 

'Android' 카테고리의 다른 글

Android 푸시  (0) 2014.11.20
webView에서 javascript함수 호출시 에러  (0) 2014.06.26
GCM 작업을 하다가...  (0) 2014.06.05
mp3파일의 재생속도를 조절하는데 성공!!!  (0) 2014.01.02
전화번호 가져오기  (0) 2013.12.27
Posted by 작은0악마
2014. 6. 26. 16:17

안드로이드 webview와 javascript 함수간의 통신을 하는데

 

javascript에서 webview로 데이터를 전달하는것은 무리가 없다.

 

그런데 webview에서 javascript 함수를 호출하니 아래와 같은 에러가 발생

 

"Uncaught Error: Error calling method on NPObject.:41"

 

이는 별도의 Thread로 돌리면 해결된다.

 

그래서 아무 생각없이 Thread를 상속받아 만들어 돌려봤으나 앱이 죽는다..

 

헉...

 

webview의 메소드는 UI Thead에서 돌려야 한다는것을 잊고 있었다...

 

결국

 

runOnUiThread(new Runnable() {
    
    @Override
    public void run() {
     // TODO Auto-generated method stub
        //여기에 필요한 코드 작성          

    }
   });

 

로 해야한다.

'Android' 카테고리의 다른 글

Android 푸시  (0) 2014.11.20
android webview 와 기본 내장 브라우저 구별법  (0) 2014.07.08
GCM 작업을 하다가...  (0) 2014.06.05
mp3파일의 재생속도를 조절하는데 성공!!!  (0) 2014.01.02
전화번호 가져오기  (0) 2013.12.27
Posted by 작은0악마