프로그래밍/Java, Android
[Android] 웹뷰(WebView) Url관련 이벤트 사용하기
당근천국
2015. 10. 9. 15:00
안드로이드의 웹뷰에서 Url이벤트를 사용하려면 웹뷰클라이언트(WebViewClient)를 상속받아 오버라이(Override)하여 사용해야 합니다.
웹뷰클라이언트(WebViewClient) 상속받기
일반적인 방법으로 상속받으면 됩니다.
'claWebClient'클래스를 생성하여 웹뷰클라이언트를 상속받아 봅시다.
public class claWebClient extends WebViewClient { private Context m_context; //여기서는 토스트 메시지를 사용하기 위하여 컨텍스트를 매개변수로 받습니다. public claWebClient(Context context) { super(); this.m_context = context; } }
메서드 오버라이드(Override)하기
사용 가능한 메서드나 이벤트는 레퍼런스를 확인하시면 됩니다.
(참고 : Android Developers - WebViewClient)
우리는 'onPageFinished'를 이용하여 페이지 로드가 끝나면 url을 표시해봅시다.
@Override public void onPageFinished(WebView view, String url) { Toast.makeText(this.m_context, url, Toast.LENGTH_SHORT ).show(); }
이제 웹뷰에 'claWebClient'를 연결하면 페이지를 이동하고 페이지의 로드가 끝나면 토스트 메시지가 표시되는걸 확인할 수 있습니다.
마무리
그런데 웹뷰의 이벤트들은 특성을 잘 확인하고 사용해야 합니다.
우리가 사용한 'onPageFinished'같은 경우 페이지가 완전히 로드되었을 때 발생하지 않습니다.
사진이나 자바스크립트에 의한 동작은 완료되지 않았을 수 있습니다.
(Html이 로드되면 이벤트가 오는듯?)
이러한 특성은 래퍼런스를 우선 확인하고 이상 동작이 확인되면 구글링을 하는 것이 좋습니다.