2015-01-20 2 views
3

내 앱에 새로운 문제가 있습니다. 개발을 위해 Appcelerator Titanium을 사용하고 있습니다. 내 장치에서 백 버튼을 잠그려고하므로 앱을 사용할 때마다 닫히지 않습니다. 내가 기본 메뉴에있는 경우에만 응용 프로그램을 닫고 싶습니다. 나는 메뉴에서 hierachy에서 사용자의 위치를 ​​추적 변수가티타늄 뒤로 버튼 - 항상 내 앱 닫기

Ti.UI.currentWindow.addEventListener('android:back',function(){ 
alert(Ti.App.PositionNow); 
if(Ti.App.PositionNow=='0') { 
    alert('do quit'); 
} else if(Ti.App.PositionNow=='1') { 
    Ti.App.multi_tableView.addEventListener('click',myfunction); 
    var duration = 300; 
    var setOldOpacity = Titanium.UI.createAnimation(); 
    setOldOpacity.opacity = 1; 
    setOldOpacity.zIndex = 1; 
    setOldOpacity.duration = duration; 

    var setOldBottom = Titanium.UI.createAnimation(); 
    setOldBottom.bottom = 0; 
    setOldBottom.duration = duration; 

    var setOldTop = Titanium.UI.createAnimation(); 
    setOldTop.top = 0; 
    setOldTop.duration = duration; 

    var animationHandler2 = function() { 
      setOldTop.removeEventListener('complete',animationHandler2); 
      Ti.App.multi_view_first.animate(setOldTop); 
      Ti.App.multi_view_second.animate(setOldBottom); 
      Ti.App.multi_tableView.animate(setOldOpacity); 
     }; 
    setOldTop.addEventListener('complete',animationHandler2); 
    Ti.App.multi_view_first.animate(setOldTop); 
    Ti.App.multi_view_second.animate(setOldBottom); 
    Ti.App.multi_tableView.animate(setOldOpacity); 
    alert('hallo1'); 
    Ti.App.PositionNow = 0; 
} 
return false; 
}); 

: 그래서 내 코드입니다. 따라서 앱은 위치가 '0'일 때만 닫아야합니다. 위치 인 경우

"1", 애니메이션이 있어야한다, 그래서 이것은 작동하지만 애니메이션 동안 앱이 즉시 닫힙니다. 당신이 android:back을 모니터링하고있는 이벤트가되지 않습니다

Ti.App.hs_win = Ti.UI.createWindow({ 
    url: '/sites/homescreen/index.js', 
    navBarHidden: true, 
    fullscreen: true, 
    modal:true, 
    theme: "Theme.Titanium", 
    orientationModes: [Ti.UI.PORTRAIT] 
}); 
+0

체크 아웃 appcelerator 포럼에서이 게시물에 exitOnClose 속성을 설정 : HTTPS : //developer.appcelerator.com이를 위해 당신은 이벤트를 취소 할 필요가/question/159538/android-back-button. 기본 백 네비게이션의 경우 백 이벤트를 무시할 필요가 없습니다. 그들은 exitOnClose = "true"를 사용하도록 권합니다. – Jeroen

+0

이렇게 작동합니다. 뒤로 버튼을 누르면 창은 닫히지 않지만, 지금 다른 문제가 있습니다. "백 애니메이션"이 작동하지 않습니다. 뒤로 버튼을 누르면 창이 완전히 지워진 것처럼 보입니다. – Booster4App

+0

오케이, 그 부분이 답이었습니다! 시간 내 주셔서 대단히 감사합니다! – Booster4App

답변

4

:

윈도우의 코드는 이것이다. androidback 이벤트를 사용하십시오.

두 번째 단계는 이벤트 처리기 체인에서 이벤트 버블 링을 더 이상 중지하는 것입니다.

Ti.UI.currentWindow.addEventListener('androidback',function(event){ 
     event.cancelBubble = true; 
} 

은 또한 당신이 당신의 창을 수정해야하고 false

+0

이 작동하지 않습니다. 귀하의 예제를 시도하면 응용 프로그램이 즉시 애니메이션이나 다른 아무것도하지 않고 닫힙니다. – Booster4App

+0

@ Booster4App는 대답을 – WeMakeSoftware

+0

로 업데이트했습니다. 이제 다른 것과 같이 작동합니다. 뒤로 버튼을 누르면 스플래시 화면을 볼 수 있습니다 ... – Booster4App

관련 문제