繁体   English   中英

在没有NavigationView的情况下如何处理sencha touch应用程序中的后退按钮?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM