У меня есть googled, но все полезные статьи описывают, как обращаться с обратной кнопкой в 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'
});
Вместо этого подхода, вы рассматривали использование маршрутов? Если у каждого вашего компонента есть другой маршрут, браузер автоматически позаботится о кнопке «Назад». – JChap
Должно быть довольно легко переключиться на navigationview (навигационное представление - обычный контейнер с макетом карты и некоторыми методами для просмотра поп/push), как только у вас есть navview, вы можете вызвать метод pop, и все готово. –
Вы можете использовать событие deactivate для записи xtype представления в глобальный var. Оттуда вы можете animateActiveItem – Dinkheller