프로그래밍/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이 로드되면 이벤트가 오는듯?)

이러한 특성은 래퍼런스를 우선 확인하고 이상 동작이 확인되면 구글링을 하는 것이 좋습니다.

 

 

Webview_PageFinished.zip