1

我已经在这个网站、谷歌和另一个安卓论坛上寻找答案,但我找不到一个有效的。

我试图在我的 Android WebView 应用程序中包含 BACK 键,否则 BACK 键只会退出活动。

我是 Android 新手,所以我不知道如何编程。有人可以指出我正确的方向吗?

谢谢!

4

3 回答 3

4

Activity按如下方式截取 BACK 按钮...

public class MyWebActivity extends Activity {

    WebView webview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // Other code here
        webview = new WebView(this);
    }

    // Other methods here

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

在Hello WebView 教程的第 9 部分中进行了解释

于 2012-05-07T00:37:25.280 回答
1

在您的活动中覆盖 onbackpressed。

@Override
public void onBackPressed() {

}

如果您不想在背压时关闭活动,那么您可以简单地删除 super.onBackPressed() 这将不允许完成您的活动,并且您的活动将在背压上正常工作而无需关闭。

于 2012-05-07T04:26:28.627 回答
0

例如,我正在通过 Android 在我的 WebView 中进行下一个捕获 URL;

在您的方法 shouldOverrideUrlLoading 中:

public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                view.loadUrl(url);
                webView.getUrl();
                if( url.equals("http://any.com/url") ){
                   //Do any action
                    Toast tr =Toast.makeText(WebViewTest.this, "Test Passed", Toast.LENGTH_LONG);
                    tr.show();
                    //Go to other activity or you can put finish(); to stop the actual activity
                   //Do other action
                    Intent i1 = new Intent("com.mypack.courses.Passed");
                    startActivity(i1);;
                    return true;
                }
                if( url.equals("http://any.com/url") ){
                    Toast tr =Toast.makeText(WebViewTest.this, "Test Failed", Toast.LENGTH_LONG);
                    tr.show();

                   Intent i2 = new Intent("com.mypack.courses.Failed");
                   startActivity(i2);
                    return true;
                }
                return true;
            }

在这种情况下,如果用户在Webview上点击“http://any.com/url”,我们做任何动作,只要把你的条件或方法,你想做什么,希望这能给你想法...

于 2012-05-07T00:42:27.383 回答