2013-05-21 75 views
0

我正在創建一個包含在Titanium應用程序的webview中的jQuery Mobile應用程序。當按下Android後退按鈕時,它會退出應用程序而不是轉到上一頁(在我看來,並非最佳默認行爲)。我試圖通過在應用程序加載時執行以下代碼來解決此問題:處理jQuery Mobile中的Android後退按鈕

document.addEventListener("deviceready", function() { 
      alert("adding back button event"); 
      document.addEventListener("backbutton", function (e) { 
       alert("in back button event"); 
       if ($.mobile.activePage.is('#homepage')) { 
        alert("exit app"); 
        e.preventDefault(); 
        navigator.app.exitApp(); 
       } 
       else { 
        alert("go back"); 
        navigator.app.backHistory() 
       } 
      }, false); 
     }, false); 

無處不在我看到這個問題的線索,他們說使用backbutton事件,但它並沒有被解僱。如果我將其封裝在deviceready事件中,如上所述,則deviceready也不會被調用。 webview以某種方式抑制這些事件,還是有另一種方式與jQuery Mobile做到這一點?

回答

0

您的示例將不起作用,因爲您正嘗試使用Phonegap API調用進行按鈕處理。

您需要使用適合Appcelerator的東西。首先,您應該查看canGoBack,canGoForward,goBack和goForward功能的webViews.More信息可以發現here

基本上你需要創建一個函數來處理你的webview中的後退按鈕。類似這樣的:

detailContainerWindow.addEventListener('android:back', function(e){  
    if (detailView.canGoBack()) { 
      detailView.goBack(); 
     } else { 
      detailContainerWindow.close(); 
     } 
});