如果在 WebView 片段中按下后退按钮,如何返回上一页? [英] How to go back to previous page if back button is pressed in WebView fragment?

查看:27
本文介绍了如果在 WebView 片段中按下后退按钮,如何返回上一页?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的 WebView Fragment 中实现一个代码以返回到以前的页面.我在此处找到了解决方案,但我不知道将它添加到我的 WebView Fragment 的何处.有人可以帮我弄这个吗?我应该在 MainActivity 还是在我的 WebView Fragment 中添加它?

I want to implement a code in my WebView Fragment to go back to previous pages. I have found a solution here but I don't know where to add it in my WebView Fragment. Can someone help me with this? Should I add it in the MainActivity or in my WebView Fragment?

MyWebViewFragment.java:

MyWebViewFragment.java:

package tkr.firstprojects.com.tkr;

import android.app.Fragment;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebBackForwardList;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MyWebViewFragment extends Fragment {

WebView webview;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.web_fragment, container,
            false);

    Bundle bundle = getArguments();

    String url = bundle.getString("url");

    webview = (WebView) rootView.findViewById(R.id.webView1);

    WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setBuiltInZoomControls(true);
    settings.setSupportZoom(true);


    webview.loadUrl(url);

    webview.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            view.loadUrl(url);
            return true;
        }



    });

    return rootView;


 }
}

这是我想从解决方案中添加以返回到前几页的代码.我应该在哪里添加这个?

And here's the code that I want to add from the solution to go back to previous pages. Where should I add this?

webView.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
    if(event.getAction() == KeyEvent.ACTION_DOWN)
    {
        WebView webView = (WebView) v;

        switch(keyCode)
        {
            case KeyEvent.KEYCODE_BACK:
                if(webView.canGoBack())
                {
                    webView.goBack();
                    return true;
                }
                break;
        }
    }

    return false;
 }
});

推荐答案

In your Fragment Activity

In your Fragment Activity

@Override
public void onBackPressed() {
   //Get fragment and webview from the fragment
   webview.goBack();
}

这篇关于如果在 WebView 片段中按下后退按钮,如何返回上一页?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆