티스토리 뷰

웹뷰를 사용하면서 불러온 웹페이지의 타이틀을 가져와 사용 해야 하는 경우가 종종 입니다.
액티비티의 제목으로 사용하거나 내부 변수로 가지고 있다가 활용하는 경우가 그렇습니다.
이번 포스팅에서는 웹뷰에서 타이틀을 가져오는 방법에 대해서 알아보도록 하겠습니다.


1. onPageFinished를 이용

1
2
3
4
5
6
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    mprogressBar.setVisibility(View.GONE);
    String webTitle = view.getTitle();
    title.setText(webTitle);
   };
cs



2. onReceivedTitle를 이용

1
2
3
4
5
6
7
8
9
10
11
12
webview.loadUrl("http://www.naver.com/");
   webview.setWebChromeClient(new WebChromeClient() {
                @Override
                public void onReceivedTitle(WebView view, String sTitle) {
                    super.onReceivedTitle(view, sTitle);
                    if (sTitle != null && sTitle.length() > 0) {
                        title.setText(sTitle);
                    } else {
                        title.setText("Web Page");
                    }
                }
            });
cs


방법은 2가지 방식이 있습니다. 첫번째 방법인 onPageFinished는 웹뷰에서 페이지를 모두 완료 된 후에 콜백되는 메소드로
여기에서 타이틀을 처리 할 경우 페이지 로딩이 오래 걸리는 경우 타이틀을 가져오는 시간이 그만큼 길어지므로 바로 표시 되지 않습니다. 두번째 방법인 onReceivedTitle를 사용한 경우에는 페이지가 모두 로딩 되지 않아도 타이틀의 로딩만 완료 되면 콜백되는 메소드로 첫번째 방법에 비해 타이틀을 가져오는 속도가 빠릅니다. 2가지 방법에 대해서 자신의 환경에 맞는 방법을 골라 사용 하시면 됩니다.

개인적으로 타이틀만 처리하는 경우 속도가 빠른 onReceivedTitle를 이용하는 방법을 추천 드립니다.


댓글