在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. 如何讓Sencha Touch應用程序在Blackberry設備上工作
- 2. sencha touch ::如何處理我的sencha touch應用程序中的iOS
- 3. Sencha Touch:按鈕
- 4. PhoneGap的處理後退按鈕不關閉應用程序
- 5. 如何在物理設備上運行sencha應用程序
- 6. 後退按鈕不處理應用程序/主動活動
- 7. 如何在後退按鈕上按下應用程序
- 8. 在Sencha Touch中處理單選按鈕上的事件
- 9. 如何可能處理後退按鈕
- 10. 後退按鈕處理wp7
- 11. Android - 處理後退按鈕
- 12. 處理android後退按鈕
- 13. 處理後退按鈕
- 14. 如何在設備上按下後退按鈕來完成listActivity
- 15. 如何在片段上實現後退按鈕按下設備
- 16. iPhone應用程序,如何處理與動態內容後退按鈕
- 17. sencha touch - setMasked從按鈕處理程序調用不會呈現,直到處理程序完成?
- 18. 使設備的後退按鈕像操作欄上一樣(後退)按鈕
- 19. 如何在沒有NavigationView的情況下在sencha touch應用程序中處理返回按鈕?
- 20. Win10 UWP應用程序處理長按回退按鈕
- 21. 導航應用程序 - 後退按鈕
- 22. 如何在用戶觸摸Android設備的主頁按鈕或後退按鈕時銷燬應用程序?
- 23. Sencha touch動畫的後處理程序沒有功能
- 24. 後退按鈕關閉應用程序
- 25. 如何避免[navpush]生成的後退按鈕(處理生成後退按鈕)
- 26. 設備的後退按鈕說明
- 27. 向上按鈕退出應用程序?
- 28. 如何處理Windows Phone 7上的後退按鈕
- 29. 如何處理僅在特定頁面上的後退按鈕?
- 30. 如何在sencha touch 2.0.0應用程序中集成FB like按鈕
這是我也面臨着同樣的問題。由於所有應用程序都是由單個(不是必需的)html文件驅動的,因此以前訪問過的頁面沒有歷史記錄,並且應用程序在後退鍵上關閉。如果你正在使用,可能有一種方法來自phonegap。 – SachinGutte 2012-08-03 15:39:27
請顯示您的代碼。 – hekomobile 2012-08-03 17:56:27
它的應用程序不是一個單獨的文件粘貼在這裏。包含所有文件系統和大量文件 – atluriajith 2012-08-06 05:43:44