我已经google了,但所有有用的文章都描述了如何处理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'
});
答案 0 :(得分:0)
使用此代码:
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();
}
}