2013-01-12 73 views

回答

-2

Navigator.app.exit()如果插件沒有被Cordova frameowork定義,將無法工作。您可能必須編寫自己的Exit方法插件才能使其工作。作爲一種變通方法,你的背部按鍵硬件事件可以Cordova.xaml.cs處理,並以退出你的應用程序了,你可以寫**

Application.Current.Terminate(); 

它將退出您在按下硬件後退按鈕的應用程序。

0

我想,我發現並不需要本地黑客的解決方案..

如果你有一個的PhoneGap /科爾多瓦的應用程序,從page1.html去page2.html然後沿着一個鏈接回第1頁。標準的後退行爲不會退出應用程序。

Page1 >>第2頁>>第1頁 - Windows Phone將帶您進入第2頁,而不是退出應用程序。它的預期的行爲,但它有點不良記錄..

反正我搜索之有年,但並未發現爲我工作的修復..

Diff friendly folks see the commit that includes this fix

的我是如何解決這是TLDR使用JS值來跟蹤我在哪個頁面上,如果我在索引頁面上,我重置歷史記錄,然後我允許本機後退按鈕功能啓動..

IE中page1.html您可能有。 。

var currentPage = "index"; 

然後在你的app.deviceready功能包括..

if(currentPage == "index"){ 
    history.go(-(history.length-9999)); 
    document.addEventListener("backbutton", handleBack, true); 
}else{ 
    document.addEventListener("backbutton", handleBack, 
false); 
} 
function handleBack(){ 
    // handle other logic here such as handling the back events from page2 to page1.. 
} 

這裏真正神奇的是history.go( - (history.length-9999)),它主要是告訴歷史堆棧復位。此外,addEventListener上的真實聲明允許原始註冊事件觸發(本機後退按鈕)。

無論如何給它一個嘗試,讓我知道它是否適合你。

Source

0
protected IsolatedStorageSettings UserSettings 
    { 
     get 
     { 
      return IsolatedStorageSettings.ApplicationSettings; 
     } 
    } 
    void OnAppExit(object sender, EventArgs e) 
    { 
     UserSettings.Remove("sessionStorage"); 
     UserSettings.Save(); 
    } 
    private void Page_BackKeyPress(object sender, CancelEventArgs e) 
    { 
     if (_browserHistoryLength > 1) 
     { 
      _phoneGapView.Browser.InvokeScript("eval", "history.go(-1)"); 
      _browserHistoryLength -= 2; 
      e.Cancel = true; 
     } 
     else 
     { 
      //to exit app 
      Application.Current.Exit += new EventHandler(OnAppExit); 
      } 
    } 
+1

的解釋不會傷害。請參閱[我如何寫出一個好的答案?](http://stackoverflow.com/help/how-to-answer) – Jubobs