0

I want to back press feature in web-view for go to previous page in web-view (in fragment)...

Here is the fragment code

I tried adding following code which is not working:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK){
        if(Wv.canGoBack()){
            Wv.goBack();
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}

How do I solve this?

nomem
  • 1,568
  • 4
  • 17
  • 33
Kishan Nath
  • 157
  • 1
  • 2
  • 8

2 Answers2

1

This Work for me

public class MyWebView extends Fragment {
    private WebView mWebView;
    private View rootView;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message message) {
            switch (message.what) {
                case 1:{
                    webViewGoBack();
                }break;
            }
        }
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        rootView = inflater.inflate(R.layout.testwebview, null);
        mWebView = (WebView)rootView.findViewById(R.id.webview);


        mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        mWebView.getSettings().setBuiltInZoomControls(false);
        mWebView.loadUrl("myurl...");
        mWebView.setOnKeyListener(new View.OnKeyListener(){

            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK
                        && event.getAction() == MotionEvent.ACTION_UP
                        && mWebView.canGoBack()) {
                    handler.sendEmptyMessage(1);
                    return true;
                }

                return false;
            }

        });
            return rootView;
    }

    private void webViewGoBack(){
        mWebView.goBack();
    }
}
omkar ugale
  • 106
  • 7
0

Get the instance of your Fragment in you activity, and override the onBackPressed method.

@Override
public void onBackPressed(){
    if(fragment.webView.canGoBack()){
        fragment.webView.goBack();
    } else{
        super.onBackPressed();
    }
}
Andrii Turkovskyi
  • 27,554
  • 16
  • 95
  • 105
Nabin Bhandari
  • 15,949
  • 6
  • 45
  • 59