마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Android 4.4 kitkat 웹뷰에서 viewport를 사용해야 하는데..

0 추천

킷캣 업데이트로 인해서 더 이상 4.4 이상 버전에서는 viewport 태그가 적용되지 않는걸로 알고 있습니다.

이전에는 viewport를 사용하여 아래의 사진 중 오른쪽 이미지 처럼 화면을 보여주도록 했는데요

 

kitkat 단말에서는 같은 컨텐츠라도 왼쪽처럼 보이다가, 오른쪽처럼 보이다가 합니다.

차라리 아예 작게 보이거나, 아예 크기 보이거나 하면 setinitialscale로 조정을 하겠는데요..

이게 간헐적으로 일어나는 현상이라서 어떻게 컨트롤 해야할 지 감이 안잡힙니다.

 

 

 

현재 웹뷰에 셋팅된 속성 으로는
mWebView.clearCache(true);
mWebView.destroyDrawingCache();
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);

bodyHtml.append("<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.3, maximum-scale=1.3, minimum-scale=1.3,user-scalable=yes,target-densitydpi=medium-dpi\" />");

mWebView.loadDataWithBaseURL(HTML 내용)
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setBuiltInZoomControls(true);

(zoom 기능은 사용 불가하게 막아두었습니다.)

 

 

google을 찾아보니 kitkat에서는 viewport 대신에

mWebView.getSettings().setUseWideViewPort(true); 

mWebView.getSettings().setLoadWithOverviewMode(true);

를 사용하라고 나와있었는데, 이 또한 아무 의미가 없습니다.

targetsdk 조정도 해 보았습니다만, 현상은 같았습니다.

 

혹시나 tip 이 있으면 부탁드립니다.

 

익명사용자 님이 2014년 1월 9일 질문

1개의 답변

+1 추천

mWebView.getSettings().setUseWideViewPort(true); 

mWebView.getSettings().setLoadWithOverviewMode(true);

위 코드 외에 아래 코드도 적용해보시기 바래요 기존에 default로 설정되어 있던

layoutAlgorithm이 아마 deprecated 되어서 그렇게 되는것일수도...

mWebView.getSettings()..setLayoutAlgorithm(LayoutAlgorithm.NORMAL);

그리고 viewport 태그가 변화가 조금 있을 뿐이지 적용되지 않는다는 말은 없는듯 한데요.

아래 링크에서 확인해보시기 바랍니다.

http://googledevkr.blogspot.kr/2014/01/chromium-webview.html

 

Gradler (109,780 포인트) 님이 2014년 1월 9일 답변
친절한 답변 감사합니다. 한번 적용 해 보겠습니다
적용 해 봐도 상황은 같네요..
아ㅠㅠ 왜 어쩌다가 한번씩 저렇게 작게 나오는지 답답 할 따름이네요.....
...