在Webview Android应用程序中返回导航

我正在开发一个webview android应用程序.
我无法修复我的应用中的问题以进行反向导航.我正在使用此代码并尝试对此进行所有修改.
public class DeviceActivity extends Activity
 {
 private WebView web;
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);

    web = (WebView) findViewById(R.id.webView);
    web.getSettings().setJavaScriptEnabled(true); 
    web.getSettings().setJavaScriptCanopenWindowsAutomatically(false);
    web.getSettings().setPluginsEnabled(false);
    web.getSettings().setSupportMultipleWindows(false);
    web.getSettings().setSupportZoom(false);
    web.setVerticalScrollBarEnabled(false);
    web.setHorizontalScrollBarEnabled(false);

    //Our application's main page will be loaded
    web.loadUrl("file:///android_asset/fbp/index.html");

    web.setWebViewClient(new WebViewClient() {
            @Override public boolean shouldOverrideUrlLoading(WebView view,String url) {
                return false;
            }
            public void onBackpressed (){

    if (web.canGoBack()) {
            web.goBack();       
    }
    else {
        //My exit alert code goes here.    

    }
 }
        });

}

 }

这不会导航回来,而是退出应用程序.
任何帮助,将不胜感激.

解决方法

在您的活动代码添加它(不在onCreate()中或嵌套在其他地方)
@Override
public void onBackpressed() {
    if (web.copyBackForwardList().getCurrentIndex() > 0) {
        web.goBack();
    }
    else {
        // Your exit alert code,or alternatively line below to finish
        super.onBackpressed(); // finishes activity
    }
}

这将导航回WebView历史堆栈,直到它为空,然后执行认操作(在这种情况下,它完成活动).

您可能还应该将WebViewClient设置为使shouldOverrideUrlLoading返回true,否则您将不会加载任何链接.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...