2012-10-18 4 views
1

사용자가 뒤로 버튼을 누를 때마다 메인 페이지로 이동하기 위해 안드로이드의 뒤로 버튼을 사용하려고 시도하고 있습니다. 출구. 이 코드는 시도했지만 인덱스 페이지와 다른 페이지에서만 작동합니다. 뒤로 단추는 작동하지 않으므로 작동합니다. 이 응용 프로그램에 대한 phonegap 사용하고 있습니다.안드로이드의 뒤로 버튼 재정의는 인덱스 페이지에만 적용됩니다.

$ (문서) .ready (함수() { document.addEventListener ("deviceready", onDeviceReady), 거짓,

function onDeviceReady() { 
document.addEventListener("backbutton", onBackKeyDown, false); 

} 

은}

나는의 .js 파일에 다음과 같은 기능을 유지 폰갭의 t 내 짧은 경험에.

function onBackKeyDown() { 
    alert('Back Button!'); 
    if (window.localStorage.getItem("loggedInData") == "undefined" 
      && window.localStorage.getItem("loggedInData") == "") { 
     //location.href = 'main.html'; 
     alert('LoggedIn'); 

    } else { 
     alert('not logged in'); 
     navigator.app.exitApp(); 

    } 

}

답변

0

o이 작업을 얻으려면 document.ready 전에 onDeviceReady를 호출해야했습니다.이 작업은 이해가되지만, 작은 프로젝트에서는 저에게 효과적이었습니다. . 또한

내가 페이지를 기반으로 뒤로 버튼에 다른 기능을 할당하고, 내가 아래) (에) (해제 체인에 의해 그들에게 때마다 리 바인딩하기 전에 먼저 그들을 취소하고자 :

$(document).off("deviceready").on("deviceready", PhoneGapReady); 
function PhoneGapReady(e) { 
    $(document).off("backbutton").on("backbutton", backHandler); 
} 
function backHandler(e) { 
    //back button pressed do something if you like 
} 

또한 localstorage에 대한 if 문에서 'and'대신 'or'가 있어야합니까?

+0

기본 페이지에서 뒤로 버튼을 클릭하면 다음과 같은 오류 메시지가 나타납니다. 10-19 10 : 30 : 19.915 : E/웹 콘솔 (580) : ReferenceError : 변수를 찾을 수 없습니다. : cordova undefined : 1 지금해야 할 일은 무엇입니까? – Amu

+0

위의 코드를 수행 할 때 다음 오류가 발생합니다 ... 10-19 11 : 19 : 42.108 : D/CordovaWebView (963) : KeyDown이 뷰에서 트리거되었습니다. 10-19 11 : 19 : 42.108 : D/CordovaWebView (963) : >>> loadUrlNow() 10-19 11 : 19 : 42.144 : D/CordovaLog (963) : ReferenceError : 변수를 찾을 수 없음 : cordova 10-19 11 : 19 : 42.144 : D/CordovaLog (963) : 정의되지 않음 : 줄 1 : ReferenceError : 변수를 찾을 수 없음 : cordova 10-19 11 : 19 : 42.144 : E/웹 콘솔 (963) : ReferenceError : 변수를 찾을 수 없음 : cordova at undefined : 1 – Amu

0

앱의 모든 페이지에 대해 뒤로 버튼을 작동 시키려면 모든 HTML 페이지에 다음 코드를 추가하십시오.

function onBackKeyDown(){ 
//your codes for back button 
} 

및 추가

$(document).ready(function() { 
$(document).on("deviceready", PhoneGapReady); 
function PhoneGapReady(e) { 
document.addEventListener("backbutton", onBackKeyDown, false); 
    } 

}

<script>type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"</script>

모든 페이지 ... 나는 cordova-2.0.0을 사용하고 있기 때문에, 나는 그것을 사용했다.