使用普通移动浏览器时,当您按下“后退”按钮时,会将您带到上一页。当在我的应用程序中使用WebView来显示网页并且用户想要返回到上一页时,通常会做什么?按下“后退”按钮会自动将用户带回上一页还是将它们带回到先前的活动?我会假设由于后退按钮通常意味着要将用户带到先前的活动,因此不应该使用它返回到以前的网页。如果是这种情况,我的移动网页是否应该包含用户点击的自己的后退链接?在Android的webview中使用“后退”按钮
我想我要做的就是了解我应该采用的正确行为。
使用普通移动浏览器时,当您按下“后退”按钮时,会将您带到上一页。当在我的应用程序中使用WebView来显示网页并且用户想要返回到上一页时,通常会做什么?按下“后退”按钮会自动将用户带回上一页还是将它们带回到先前的活动?我会假设由于后退按钮通常意味着要将用户带到先前的活动,因此不应该使用它返回到以前的网页。如果是这种情况,我的移动网页是否应该包含用户点击的自己的后退链接?在Android的webview中使用“后退”按钮
我想我要做的就是了解我应该采用的正确行为。
请记住,后退按钮与大多数Android设备的到来。因此,您的活动中不需要返回按钮即可返回到之前的活动。
关于webview如果你想在webview中导航浏览所有以前的页面,那么你可以放一个后退按钮并使用方法webview.goBack()
实现webview的导航。
总之,如果你希望你的用户导航到上一页,那么你应该给webview的功能返回到上一页,并从第一页用户点击返回按钮再次完成活动。
我其实是考虑将Back按钮作为网页内容的一部分,但是通过使用Button控件并使用它来向后导航,您的解决方案会更好。这仍然允许用户使用硬件后退按钮返回到上一个活动。 – AndroidDev
让我们看看一些流行的浏览器。目前,在我的设备,有两个浏览器
在这两种浏览器,它会到前一页。所以这是一种常见的行为。要做到这一点
你可以覆盖onBackPressed
去你的上一页。
@Override
public void onBackPressed(){
if(mWebView.canGoBack() == true){
mWebView.goBack();
}
else{
finish();
}
}
谢谢,但我没有问*如何实现后退按钮。我期待了解是否应该使用它来转到上一页或之前的活动。 – AndroidDev
我认为使用后退按钮可以实现后台导航。由于有很多浏览器可以做到这一点 – stinepike
看到我编辑的答案 – stinepike
您可以使用,如果有任何以前的页面
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(yourWebView.canGoBack() == true){
yourWebView.goBack();
}else{
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
请参阅我对StinePike的评论。 – AndroidDev
当您单击后退按钮此覆盖的onkeydown事件,并检查按下的键(在这种情况下是返回键),并检查,你点击它正在打开的WebView更好的事情是给一个后退按钮在你layout..and因此节省用户打开
我不明白。您是否说要使用“返回”按钮返回到上一个活动或以前的网页? – AndroidDev
只需保存上次打开的网址并在后退按钮上打开该网址即可,因此用户会感觉到他正在重新定向到后台页面。 – maddy
这不是我要求的。再次阅读问题。我正在寻找用户期望的正确行为,而不是编码解决方案。 – AndroidDev
像这样的事情在活动与WebView中的最后一个URL活动:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(yourWebView.canGoBack() == true){
yourWebView.goBack();
}else{
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
或覆盖onBackPressed方法:
@Override
public void onBackPressed() {
if(yourWebView.canGoBack() == true){
yourWebView.goBack();
} else {
finish();
}
}
刚刚海事组织,它会更好(根据最小惊喜的原则)去上一个网页;这是Android股票浏览器的功能(无论如何,在我的2.1手机上),所以用户会期待这一点。 – michaelb958
但是,如果用户通常期望后退按钮将他们带到以前的活动,那不是不正常的行为? – AndroidDev
取决于。当我在Android网络浏览器中时,*我*期望后退按钮将我带回网页。 – michaelb958