簡體   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