Cordova (폰갭)에서 특정 페이지에서 트랜젝션이 일어났을 경우, 핸드폰의 하드웨어 백키가 동작안되게 하고 싶은 경우에는 아래처럼 하면 된다.

<html>
 
<head>
   
<title>Back Button Example</title>

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

   
// Wait for device API libraries to load
   
//
   
function onLoad() {
        document
.addEventListener("deviceready", onDeviceReady, false);
   
}

   
// device APIs are available
   
//
   
function onDeviceReady() {
       
// Register the event listener
        document
.addEventListener("backbutton", onBackKeyDown, false);
   
}

   
// Handle the back button
   
//
   
function onBackKeyDown() {
   
}

   
</script>
 
</head>
 
<body onload="onLoad()">
 
</body>
</html>

참고 : http://cordova.apache.org/docs/en/3.4.0/cordova_events_events.md.html#backbutton




하지만 대부분 jQuery를 사용하면 제대로 동작하지 않는다 

이때에는 아래 처럼 하면 된다.



$(document).ready(function() { 

    // ...  
    document.addEventListener("deviceReady", deviceReady, false);
});

function deviceReady() {
    document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown(){
    alert("백키를 사용할 수 없습니다.");


이렇게 취소키에 어떤 설정을 하면 그 이후로는 취소키를 누르면 동작하지 않는다..

나는 취소키를 누르면 예전에 그랬던것처럼 이전화면으로 가고 싶은데..

그럴때 아래 예를 사용하면 된다.

navigator.app.overrideBackbutton(false);


<< 취소키 사용시 이전화면으로 가는 페이지 사용 예 >>

</script>

<script type="text/javascript">

function onLoad() {

   document.addEventListener("deviceready", onDeviceReady, false);

}

function onDeviceReady() {

navigator.app.overrideBackbutton(false);

}

</script>


<body onload="onLoad()">

+ Recent posts