我已经在这个网站、谷歌和另一个安卓论坛上寻找答案,但我找不到一个有效的。
我试图在我的 Android WebView 应用程序中包含 BACK 键,否则 BACK 键只会退出活动。
我是 Android 新手,所以我不知道如何编程。有人可以指出我正确的方向吗?
谢谢!
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 部分中进行了解释
在您的活动中覆盖 onbackpressed。
@Override
public void onBackPressed() {
}
如果您不想在背压时关闭活动,那么您可以简单地删除 super.onBackPressed() 这将不允许完成您的活动,并且您的活动将在背压上正常工作而无需关闭。
例如,我正在通过 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”,我们做任何动作,只要把你的条件或方法,你想做什么,希望这能给你想法...