最近、Android 2.3.3 用の Phonegap 1.8 + Jquerymobile 1.1.0 +jquery 1.7.1 でモバイル アプリの開発を開始しました。私の問題は次のとおりです。Androidで戻るボタンをいくつかの方法でオーバーライドしようとしましたが、何も機能しません。使ってみました
document.addEventListener("backbutton", handleBackButton, false);
function handleBackButton() {//do sth}
次に、Application.java コードでオーバーライドしました。そして、それは機能します...ほとんど。私の最初のページ (index.html) は、他のページへのリンクを含むメイン ページ (main.html) の後にログインするために使用されています。ログインとメイン以外のすべてのページで、戻るボタンをオーバーライドして戻るようにしました。これらの 2 つのページでは、AlertDialog で「はい」をクリックした後、アプリを終了する必要があります。MainPage では 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();
}
}