我有一个应用程序,其中我有一个WebView,我显示一些网站.它的工作原理是,点击网页中的一个链接,进入我的应用程序中网站的下一页.但当我点击手机的后退按钮时,它会直接把我带进我的应用程序.我想回到网站的前一页.我该怎么做?

以下是我使用的代码示例:

public class Webdisplay extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.webdisplay);

        getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
                Window.PROGRESS_VISIBILITY_ON); 

        Toast loadingmess = Toast.makeText(this,
                "Cargando El Diario de Hoy", Toast.LENGTH_SHORT);
        loadingmess.show();

        WebView myWebView;

        myWebView = (WebView) findViewById(R.id.webview);
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.loadUrl("http://www.elsalvador.com");
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.setInitialScale(1);
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.getSettings().setUseWideViewPort(true);

        final Activity MyActivity = this;
        myWebView.setWebChromeClient(new WebChromeClient() 
        {
            public void onProgressChanged(WebView view, int progress)   
            {
                MyActivity.setTitle("Loading...");
                MyActivity.setProgress(progress * 100); 

                if(progress == 100)
                    MyActivity.setTitle(R.string.app_name);
            }
        });
    }
}

推荐答案

我在使用WebView的活动中使用了以下内容:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                if (mWebView.canGoBack()) {
                    mWebView.goBack();
                } else {
                    finish();
                }
                return true;
        }

    }
    return super.onKeyDown(keyCode, event);
}

编辑:

要使此代码正常工作,您需要在包含WebView的Activity中添加一个字段:

private WebView mWebView;

onCreate()方法中初始化它,你就可以开始了.

mWebView = (WebView) findViewById(R.id.webView);

Android相关问答推荐

JetPack第一次编写时Backbox不起作用

列表的可变状态未正确更新

使用Retrofit2的API调用:我如何能够一直进行API调用,以更新数据而无需重新打开应用程序

如何制作带有图标和文本的Fab

如何处理谷歌未经证实的应用程序拒绝?

Android Studio中的Kotlin版本不兼容错误:需要元数据1.9.0,但找到1.6.0

react 本机生成失败,出现异常.错误:无法确定';<;宏/>;的类型

在一列中垂直对齐两个框

在Delphi中使用OpenCV for Android在使用JLIST时抛出错误

我无法在底部导航栏中正确导航-Android底部导航视图

可组合:don';t剪辑视图

android crashlytics 显示崩溃但不显示我的课程中的位置

Android studio应用判断无法打开离线数据库

具有管理员权限的 Kotlin 中的多用户系统

如何知道我的应用程序的新版本是否显示广告?

如何在 JetpackCompose 的 LazyColumn 中 Select 多个项目

LazyColumn 项目,隐式接收器无法在此上下文中调用单元

MediumTopAppBar Material3 只更改大标题

Compose `Icons.Outlined.Star` 没有概述

Android Jetpack Compose - 每次文本字段值更改时,可组合函数都会重新组合