現在のPhoneGapの実装では、戻るボタンハンドラーを追加しても、アプリケーションを戻るボタンで閉じることは不可能のようです。
CordovaView.xaml.csのpage_BackKeyPressメソッドを変更することにより、PhoneGapを少しハッキングすることでこれを解決しました
if(OverrideBackButton)をに変更しました
string cancel = "false";
if (OverrideBackButton)
{
try
{
cancel = CordovaBrowser.InvokeScript("shouldCancelBackButton") as string;
Console.WriteLine("CancelBackButton response: " + cancel);
}
catch (Exception ex)
{
Console.WriteLine("Exception while checking for backbutton cancel into cordova view: " + ex.Message);
}
try
{
e.Cancel = cancel == "true";
CordovaBrowser.InvokeScript("CordovaCommandResult", new string[] { "backbutton" });
}
catch (Exception ex)
{
Console.WriteLine("Exception while invoking backbutton into cordova view: " + ex.Message);
}
}
これで、shouldCancelBackButton JS関数をページに追加し、状態の抑制に基づいて、デフォルトの戻るボタンハンドラーの動作を実行できます。
おそらくそれは最善の解決策ではありませんが、残念ながら、PhoneGapの内部に慣れる時間がありません。