我最近开始在 Phonegap 1.8 + Jquerymobile 1.1.0 + jquery 1.7.1 中为 Android 2.3.3 开发一个移动应用程序。我的问题是:我尝试以多种方式覆盖 Android 中的后退按钮,但没有任何效果。我试过使用
document.addEventListener("backbutton", handleBackButton, false);
function handleBackButton() {//do sth}
然后我刚刚在 Application.java 代码中覆盖了它。它的工作原理......几乎。我的第一个页面 (index.html) 仅用于登录,之后有主页 (main.html) 与其他页面的链接。除了登录和主页面之外,我已经覆盖了后退按钮以返回所有其他页面。在这两个页面上,它应该在 AlertDialog 中单击“是”后退出应用程序。好吧,在 MainPage 中它显示 AlertDialog 然后直接返回登录页面,甚至无需等待我的响应。在登录页面上,它只显示 AlertDialog 并等待我的反应。不知道为什么。这是我的一些代码。
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
SampleApplication.this.finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
String testUrl = appView.getUrl();
if(testUrl.equals("file:///android_asset/www/index.html"))
{
alert.show();
}
if (testUrl.equals("file:///android_asset/www/main.html"))
{
alert.show();
}
if ((!testUrl.equals("file:///android_asset/www/index.html")) && (!testUrl.equals("file:///android_asset/www/main.html")))
{
this.appView.goBack();
}
}