android back 버튼 이벤트는 어떻게 catch하는건가요?

이번 프로젝트에서 alloy를 이용해서 개발을 진행해보고 있습니다.
vmware에 타이타늄 설치하고 뭐 하는데 하루 잡아먹고
개발하는데는 얼마 안 걸릴거라 예상했는데 여러가지 난관에 봉착했네요 ㅠㅠ

웹은 서버에 올리고 간단한 웹뷰를 띄우는 작업입니다.
우선 android 에서 back버튼 이벤트를 catch해서 웹뷰에서 goBack하려고 하는데 안되네요 ㅠ

index.xml
Alloy
Window class=“container"
WebView id=“wv_main” url=”…"
Button id=“btn_back” onClick="previous"
Button id=“btn_share” onClick=“share”
/Window
/Alloy

index.js
function previous() {
if ($.wv_main.canGoBack()) {
$.wv_main.goBack();
}
}
$.wv_main.addEventListener(‘androidback’, function(e) {
// e.cancelBubble = true;

Ti.App.fireEvent('previous');

});

TI SDK : 3.4.1
Android SDK : 4.1.2

조언 부탁드립니다

android backbutton을 누르면 현재 열려있는 Ti.UI.Windowandroidback 이벤트가 발생합니다.
http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.Window-event-androidback

글 작성중에 발송 버튼이 눌러졌네요.

일단 코드를 이쁘게 첨부하는 방법은 아래 글을 참조해주세요.

코드가 잘 안보여 정확히 이해한건지 모르겠지만…
현재 코드에서는 androidback 핸들러에서 바로 previous()를 호출하면 될겁니다.

Ti.App의 fireEvent는 함수를 바로 호출해주지 않습니다. Ti.App.addEventListener가 등록되어 있는 경우만 해줍니다.

화이팅!

넵 감사합니다~ 도전해보겠습니다^^

$.index.addEventListener(‘androidback’, function(e) {
// e.cancelBubble = true;
Ti.API.info(‘androidback’);
previous();
});

이렇게 해결했습니다^^

1개의 좋아요