安卓- WebView 返回按钮

3
我有一个网站的镜像,在WebView中展示,我希望当我按下智能手机上的“返回”按钮时,可以回到之前的页面。目前,如果我在智能手机上按下“返回”按钮,应用程序会最小化(保持在后台)。我不知道如何实现这一点,请问有人可以帮助我吗? MainActivity

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        WebView wv = (WebView) findViewById(R.id.webview1);
        wv.loadUrl("https://www.xxxx.com.br");
        wv.setWebViewClient(new WebViewClient());

        WebSettings ws = wv.getSettings();
        ws.setJavaScriptEnabled(true);
        ws.setSupportZoom(false);

清单文件

<uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@drawable/ic_stat_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />


            </intent-filter>
        </activity>
    </application>

</manifest>


大家好,我是新来的。很抱歉,我不知道如何使用搜索功能。 由于您发布的主题有助于解决问题:“如果在WebView中按下如何返回上一页?”,请问删除此主题的程序是什么? - Ever
2个回答

8
在您的活动中覆盖 onBackPressed 方法,如下所示:
@Override
public void onBackPressed(){
    WebView wv = (WebView)findViewById(R.id.webview1);
    if(wv.canGoBack()){
        wv.goBack();
    } else {
        super.onBackPressed();
    }
}

在你的类内使用上述方法,而不是在外部使用。

public class MainActivity extends AppCompatActivity {

    //onCreate method

    //onBackPressed method

    //other methods

}

返回带有错误:Error:(31, 12) 错误:需要类、接口或枚举 _Error:执行任务“:app:compileDebugJavaWithJavac”失败。
编译失败;有关详细信息,请参见编译器错误输出。_
- Ever
调整后,它完美地运行了。 - Ever
省去了我一个头疼的问题,谢谢。 - Cesar Bielich

0

使用这个。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
        webView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

wv添加为全局数据

private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    wv = (WebView) findViewById(R.id.webview1);
    wv.loadUrl("https://www.xxxxx.com.br");
    wv.setWebViewClient(new WebViewClient());

    WebSettings ws = wv.getSettings();
    ws.setJavaScriptEnabled(true);
    ws.setSupportZoom(false);

}

返回带有错误:Error:(33,12)错误:需要类、接口或枚举Error:执行任务“:app:compileDebugJavaWithJavac”失败。 - Ever
在你的代码中使用 wv 代替 WebView。原本是 WebView 对象。 - KeLiuyue
由于错误仍然存在,我插入了上述代码。 - Ever
你可以再试一次。@Ever - KeLiuyue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接