webview로 사이트 제목, title 가져오는 법[안드로이드]
선 해결책 : WebChromeClient의 onReceivedTitle() 콜백 메서드를 사용한다.
안드로이드 API 의 폭이 매우 넓기 때문에 다양한 해결책이 있을 수 있지만,
개인적으로 막혔던 부분을 해결하는 과정을 적어본다.
<시행착오>
구글 검색, 스택오버플로우 검색을 하면서 두가지 해결책을 시도해봤다.
WebViewClient의 콜백 메서드인 onPageStarted, onPageFinished인데, 이름에서 보이듯이
웹페이지 로딩 시작시와, 로딩 완료시에 호출되는 메서드다.
이 메서드 안에 title = view.getTitle(); 를 이용해서 title 가져오기 시도했으나
onPageStarted에서는 아무런 제목도 반환되지 않았고,
onPageFinished는 페이지 로딩이 완료를 기다려야 돼서,바로 제목처리를 할 수 없었다.
<최종 해결책>
WebChromeClient의 onReceivedTitle() 콜백 메서드를 사용한다.
새로운 제목이 들어오는 순간 호출되기 때문에 딜레이가 없다.
String title = new String();
class webViewChrome extends WebChromeClient {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
if (!TextUtils.isEmpty(title)) {
본인액티비티명.title = title;
}
}
}
http://stackoverflow.com/questions/18794638/android-webview-getfavicon-returning-null