박상권의 삽질블로그

[안드로이드/Android]Fragment에서 WebView 뒤로가기(Back)이벤트 감지하기 본문

IT/Android-TIP (한글)

[안드로이드/Android]Fragment에서 WebView 뒤로가기(Back)이벤트 감지하기

박상권 2015. 7. 29. 09:00

안드로이드 개발자들이 모여있는 오픈채팅방에 참여해보세요 .
Q&A 및 팁을 공유하는 방입니다..
오픈채팅방 참여



블로그를 Medium으로 옮겨서 운영하고 있습니다.
앞으로 새로운 글은 모두 미디엄 블로그를 통해서 올릴 예정입니다.
미디엄에서 다양하고 유익한 포스팅을 살펴보세요
미디엄 블로그 보기





WebView를 사용하는경우 Activity에서는 OnBackPressed()함수를 이용해서 WebView의 뒤로가기를 구현해주면 됩니다.

하지만 Fragment의 경우 Back key이벤트가 Activity에서 받아버려서 WebView의 뒤로가기를 구현할수 없습니다.


Fragment에서의 Back key를 listen하는 방식은 여러가지가 있지만 특히 WebView를 사용하여 Web에서 뒤로가기가 필요한경우는 아래와 같이 코드를 넣어주면 간편하게 구현할수 있습니다.





wv_homepage.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCodeKeyEvent event) {

        //This is the filter
        if (event.getAction()!=KeyEvent.ACTION_DOWN)
            return true;


        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (wv_homepage.canGoBack()) {
                wv_homepage.goBack();
                Dlog.d("canGoBack");
           else {
                Dlog.d("canNotGoBack");
                ((MainActivity)getActivity()).onBackPressed();
            }

            return true;
        }

        return false;
    }
});


Comments