2012-08-03 3 views
10

탐색 버튼을 사용할 수있는 경우 Sencha touch에서 탐색 버튼을 사용할 수 있습니다. 이것은 꽤 괜찮아요.

하지만 사용자가 기기 뒷면 버튼을 누르면 어떻게 될까요? 그것은 응용 프로그램을 직접 종료합니다. 내 요구 사항에서 그것은 이전 화면으로 돌아 가야하는 응용 프로그램을 종료해서는 안됩니다. 내가 어떻게 할 수 있습니까?.
sencha 터치 응용 프로그램에서 장치 뒤로 버튼을 처리하는 방법

+0

이 나는 ​​또한 직면하고있어 동일한 문제입니다. 모든 앱이 단일 HTML 파일로 구동되기 때문에 이전에 방문한 페이지의 기록이없고 앱이 뒤로 가기 키를 닫을 수 있습니다. 당신이 사용하는 경우 phonegap에서 방법이있을 수 있습니다. – SachinGutte

+0

코드를 보여주십시오. – hekomobile

+0

응용 프로그램은 여기에 붙여 넣을 단일 파일이 아닙니다. 모든 파일 시스템과 많은 파일이 포함되어 있습니다. – atluriajith

답변

8

당신은 다음과 같은 버튼을 하드웨어를 다시 처리 할 수 ​​

if (Ext.os.is('Android')) { 
    document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false); 

    function onBackKeyDown(eve) { 

     eve.preventDefault(); 

     //do something 
     alert('back button pressed'); 

    } 
} 
+0

어떤 클래스 또는 JS 파일에 적용해야합니까? –

6

이 작업을 수행 할 때 유용한 내역 지원 페이지의 지침을 찾지 못했습니다. 탐색보기를 처리 할 때 언제든지 경로를 사용하여 볼 수 없었습니다. 탐색보기는 언제든지 큰보기 스택을 가질 수 있습니다.

다시 버튼을 사용하려는 경우 popstatepushstate 함수를 사용할 수 있습니다 (참조 용으로 https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history 참조). 아이디어는 당신이 push보기를 추가 할 때 상태이고 하나를 제거 할 때 pop이 꺼져 있다는 것입니다. Android 휴대 전화의 실제 뒤로 버튼 또는 데스크톱 브라우저의 뒤로 버튼은 history.back()으로 전화합니다. 그래서 당신이해야 할 일은 제목 표시 줄의 뒤로 버튼을 누르는 것이 똑같은지 확인하는 것입니다. 그리고 그것은 nav 뷰가 팝업되도록하는 것입니다. 이 센차 터치에서 작동을 사용하려면

, 나는 메인 컨트롤러에 다음을 추가 : 나는 main보기 (Ext.navigation.View의 인스턴스)에 대한 참조와 제목 표시 줄에이 심판에서는

하는 당신이 할 수에서 백 버튼 등의 이벤트에 끼어 ..

refs: { 
     main: 'mainview', 
     mainTitleBar: 'mainview titlebar', 
}... 

I는 control 구성 객체를 통해 다음과 같은 기능을 첨부

control: { 
     main: { 
      push: 'onMainPush' 
     }, 
     mainTitleBar: { 
      back: 'onBack' 
     }, 
     ... 
I는 그 상태의 초기화 기능을 통해 튀어 때 실행하는 기능을 부착

onMainPush: function(view, item) { 
     //do what ever logic you need then.. 
     history.pushState(); 
    }, 
    onBack: function() { 
     history.back(); //will cause the onpopstate event to fire on window.. 
     //prevent back button popping main view directly.. 
     return false; 
    }, 

..

init: function() { 
    /* pop a view when the back button is pressed 
     note: if it's already at the root it's a noop */ 
    var that = this; 
    window.addEventListener('popstate', function() { 
     that.getMain().pop(); 
    }, false); 
}, 

을 지금 다시 타이틀 바를 눌러 history.back() 실행 :

다음과 같이 정의된다 그러면 popstate 이벤트가 발생하여 주보기가 팝업됩니다.

실제 응용 프로그램에서 작동하는지 보려면 github here에서이 기술을 사용하는 (대 기본!) 속성 찾기 응용 프로그램이 있습니다.

관련 문제