Android Webview onBackPressed句柄历史记录

Android Webview onBackPressed句柄历史记录,android,webview,Android,Webview,我的应用程序正在使用WebView在网页之间导航。它包含注册表单页面、成功消息页面和登录表单页面。注册过程完成后,用户按下成功消息页面上的登录按钮后,应用程序将继续进入登录页面,如下图所示 当用户在登录表单上按back键时,我希望跳过导航返回到成功消息页面,直接返回到注册页面,有效地反转流程图并从中删除成功消息页面,如下面修改的流程图所示 下面是我到目前为止所写的内容,但是代码工作不正常,因为当用户从登录页面返回时,它仍然会导航到成功消息页面 对不起,我的英语不好 HTML5WebView

我的应用程序正在使用WebView在网页之间导航。它包含注册表单页面、成功消息页面和登录表单页面。注册过程完成后,用户按下成功消息页面上的登录按钮后,应用程序将继续进入登录页面,如下图所示

当用户在登录表单上按back键时,我希望跳过导航返回到成功消息页面,直接返回到注册页面,有效地反转流程图并从中删除成功消息页面,如下面修改的流程图所示

下面是我到目前为止所写的内容,但是代码工作不正常,因为当用户从登录页面返回时,它仍然会导航到成功消息页面

对不起,我的英语不好

  HTML5WebView mWebView;


 public void onBackPressed() {


    if (mWebView.canGoBack()) {
        mWebView.hideCustomView();

       if(mWebView.getUrl().equals("Success message URL")){

           AlertDialog.Builder builder = new AlertDialog.Builder(this);
           builder.setMessage("Are you sure you want to exit?")
                   .setIcon(android.R.drawable.ic_dialog_alert)
                   .setTitle("Test App")
                   .setCancelable(false)
                   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           notificationManager.cancel(NOTIFICATION_EX);
                           android.os.Process.killProcess(android.os.Process.myPid());
                           mWebView.clearCache(true);
                           mWebView.clearHistory();
                           finish();
                       }
                   })
                   .setNegativeButton("No", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           dialog.cancel();
                       }
                   });
           AlertDialog alert = builder.create();
           alert.show();
       }
    }


    else
    {
        mWebView.hideCustomView();
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Are you sure you want to exit?")
                .setIcon(android.R.drawable.ic_dialog_alert)
              .setTitle("Test App")
                .setCancelable(false)
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        notificationManager.cancel(NOTIFICATION_EX);
                        android.os.Process.killProcess(android.os.Process.myPid());
                        // This above line close correctly
                        mWebView.clearCache(true);
                        mWebView.clearHistory();
                        finish();
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        dialog.cancel();
                    }
                });
        AlertDialog alert = builder.create();
        alert.show();
    }

}

你是像ifmWebView.getUrl.equalsSuccess消息URL那样进行比较,还是用代码中的实际URL替换了字符串Success消息URL?我正在比较该URL..如果你不想,我可以把它放进去。我只是想确认你的比较是正确的。您是否调试并查看它是否进入if?是..但if语句未执行..我已将sysout.and logcat上没有out put..但当我回按..sysout mWebView.getUrl时,页面正在导航到SCAccess页面,在该if条件之前,查看其url是否正确?