在Sencha touch中,如果我使用導航視圖,我可以返回按鈕。這很好。
但是,如果用戶點擊設備後退按鈕?它直接退出了應用領域。在我的要求中,它不應該退出應用程序,它必須返回到前一個屏幕。我該如何做到這一點?
如何處理sencha touch應用程序上的設備後退按鈕
回答
您可以處理硬件後退按鈕這樣的:
if (Ext.os.is('Android')) {
document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);
function onBackKeyDown(eve) {
eve.preventDefault();
//do something
alert('back button pressed');
}
}
我應該使用哪個類或JS文件? – 2015-07-07 03:25:27
我在歷史記錄支持頁面上沒有找到有用的說明;無論如何,在處理導航視圖時,無論如何都無法使用路線,導航視圖隨時可能有大量視圖。
如果您只是希望後退按鈕能夠正常工作,則可以使用popstate
和pushstate
函數(請參閱https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history以供參考)。這個想法就是你push
在添加視圖時的狀態,當刪除視圖時pop
關閉。 Android手機上的物理後退按鈕或桌面瀏覽器上的後退按鈕有效呼叫history.back()
;所以你需要做的就是確保按下標題欄上的後退按鈕不變,這是觸發導航視圖彈出的那個按鈕。
要利用它在煎茶觸摸工作,我添加以下到主控制器:
在裁判我有到main
視圖(的Ext.navigation.View
實例)的引用和其標題欄,從中可以鉤到後退按鈕例如的情況下:
refs: {
main: 'mainview',
mainTitleBar: 'mainview titlebar',
}...
我經由control
配置對象附加以下功能..
control: {
main: {
push: 'onMainPush'
},
mainTitleBar: {
back: 'onBack'
},
...
這些被定義爲:
onMainPush: function(view, item) {
//do what ever logic you need then..
history.pushState();
},
onBack: function() {
history.back(); //will cause the onpopstate event to fire on window..
//prevent back button popping main view directly..
return false;
},
我然後附上當該狀態通過的init函數彈出以執行功能..
init: function() {
/* pop a view when the back button is pressed
note: if it's already at the root it's a noop */
var that = this;
window.addEventListener('popstate', function() {
that.getMain().pop();
}, false);
},
現在,按壓背面上的標題欄,執行history.back()
,這又會觸發popstate
事件,然後導致主視圖彈出。
如果你想看到這個工作在一個真實的應用程序,有一個(v。basic!)財產取景器應用程序在github上使用這種技術here。
- 1. React Native - 設備後退按鈕處理
- 2. 如何讓Sencha Touch應用程序在Blackberry設備上工作
- 3. 移除後退按鈕Sencha Touch 2
- 4. sencha touch ::如何處理我的sencha touch應用程序中的iOS
- 5. 如何處理我的Android設備中的後退按鈕
- 6. 在Sencha Touch中使用按鈕處理程序添加面板
- 7. 無法在Android設備的後退按鈕上退出phonegap應用程序
- 8. 單頁面應用程序中的後退按鈕處理?
- 9. PhoneGap的處理後退按鈕不關閉應用程序
- 10. 如何在sencha touch中實現後退按鈕功能?
- 11. WP7 PhoneGap應用程序後退按鈕退出應用程序
- 12. 如何在物理設備上運行sencha應用程序
- 13. Android設備上的Sapui5後退按鈕
- 14. Sencha Touch:按鈕
- 15. 應用程序未打開時處理後退按鈕事件
- 16. 後退按鈕不處理應用程序/主動活動
- 17. 如何在後退按鈕上按下應用程序
- 18. Android - 禁用設備後退按鈕
- 19. 在Sencha Touch中處理單選按鈕上的事件
- 20. 退出應用程序上後退按鈕按不工作
- 21. 如何在Android中使用Phonegap處理Jquery mobile的設備後退按鈕?
- 22. 如何可能處理後退按鈕
- 23. Zxing處理後退按鈕
- 24. 處理後退按鈕
- 25. 後退按鈕處理wp7
- 26. 處理android後退按鈕
- 27. 處理後退按鈕
- 28. Android - 處理後退按鈕
- 29. 後退按鈕處理
- 30. Sencha Touch:基於用戶代理的後退按鈕切換可見性?
這是我也面臨着同樣的問題。由於所有應用程序都是由單個(不是必需的)html文件驅動的,因此以前訪問過的頁面沒有歷史記錄,並且應用程序在後退鍵上關閉。如果你正在使用,可能有一種方法來自phonegap。 – SachinGutte 2012-08-03 15:39:27
請顯示您的代碼。 – hekomobile 2012-08-03 17:56:27
它的應用程序不是一個單獨的文件粘貼在這裏。包含所有文件系統和大量文件 – atluriajith 2012-08-06 05:43:44