- http://cafe.naver.com/devandroi/31
안드로이드 webview control하기 (by wono77)
안드로이드 웹뷰를 컨트롤하는 기능들을 살펴보겠습니다.
1. 브라우져의 크기 조절하기
가끔 호출한 웹뷰의 크키가 너무 크거나 할때가 있습니다.
이럴때는 scale을 1로 호출해 봅니다.
webView.getSettings().setUseWideViewPort(true);
webView.setInitialScale(1);
2. 브라우져의 스크롤을 이동시키기
아이폰의 스크롤 방식은 안드로이드와 달라서, 한번에 많이 이동되지 않습니다.
그러다 보니 "맨위로 스크롤" 이라는 버튼이 달리는데요,
안드로이드는 스크롤 영역이 크다보니 그런 기능을 잘 사용하지 않습니다.
하지만, 앱을 개발하다보면 아이폰과 화면을 맞춰야 해서 이런 기능 구현을 요청 받을 때가 있습니다.
그럴때는 아래처럼 호출하면 됩니다.
webView.scrollTo(0,0); //x, y
3. 새창 띄우기
webview.loadUrl(url)은 기본 새창으로 오픈하게 됩니다.
이걸 자신의 웹뷰안에서 띄우려면 웹뷰를 오버라이딩해서 선언해주어야 합니다.
browser.setWebViewClient(new WebView1Client());
private class WebView1Client extends WebViewClilent(){
@Override
public boolean shouldOverrideUrlLoading(Webview view, String url){
view.loadUrl(url);
return true;
}
}
위와 같이 해서 기본적으로 자신의 웹뷰안에서만 동작하게 코딩해두었지만,
특정 사이트에 대해서는 또 새창으로 동작하게 하고 싶을때가 있습니다.
그럴때는 특정 url에 대해 동작하도록 shouldOverrideUrlLoading() 안에서
특정 사이트에 대해서만 새창으로 뜨도록 코딩하면 됩니다.
즉, 특정사이트에 대해서는 저 view.loadUrl() 로직을 타지 않도록 해야 합니다.
pubilc boolean shu.....(){
//url에 xxxx가 포함되면 새창이 열리도록 하자구~~
if(url.contains("xxxx")){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
} else{
view.loadUrl(url);
}
return true;
}
'개발 > Android' 카테고리의 다른 글
액티비티 재시작 (0) | 2013.02.19 |
---|---|
android.os.NetworkOnMainThreadException (0) | 2013.02.09 |
custom scheme (0) | 2013.01.13 |
해상도 맞추기? (0) | 2013.01.04 |
액티비티 화면전환 애니메이션 끄기 (0) | 2012.12.13 |