[英]Unable to handle the back button of android using sencha touch 2 and cordova
[英]How to handle back button in sencha touch application without NavigationView?
我已經用谷歌搜索過,但是所有有用的文章都描述了如何在NavigationView中處理后退按鈕,但是我只使用下面的通用視圖。
Ext.define('emall.view.MyPage', {
extend: 'Ext.Container',
alias: 'widget.mypage',
requires: [
'emall.view.topplus',
'Ext.TitleBar',
'Ext.Button',
'Ext.Toolbar'
],
我正在對現有應用程序進行更改,因此無法更改基本體系結構。 所以我想知道如何處理后退按鈕?
我知道以下方法可以捕獲后退按鈕事件。(我將以下方法添加到app.js中)
if (Ext.os.is('Android')) {
document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);
function onBackKeyDown(eve) {
eve.preventDefault();
//do something
alert('back button pressed');
history.back();
}
}
但是我可以使用onBackKeyDown方法做什么? 由於無論我停留在哪個頁面上,單擊后退按鈕都會觸發此事件。 因此,由於我不知道我停留的當前頁面,所以無法進入Ext.Viewport.animateActiveItem('xxxx')之類的上一頁 。
如果可以獲得當前的頁面名稱,則可以按以下方式進行處理。
if(currentpage=='xxx')
Ext.Viewport.animateActiveItem('profile', {
type : 'slide',
direction:'left'
});
使用此代碼:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {if (navigator.userAgent.match("Android"))
{ document.addEventListener("backbutton", onBackKeyDown, true); }
}
function onBackKeyDown(e) {
if (window.location.hash === "#splashviewRoute") {
navigator.app.exitApp();
}
else {
window.history.back();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.