2012-06-19 3 views
5

jquery mobile with phonegap을 사용하고 있습니다. 내 앱에는 로그인 페이지와 목록 페이지의 두 페이지가 있습니다. 성공적으로 로그인하면 사용자는 목록 페이지로 이동합니다. 그런 다음 휴대 전화 (안드로이드)에서 뒤로 버튼을 누르면 로그인 페이지로 돌아갑니다. 나는 이런 행동을 원하지 않는다. 내가 원하는 것은 앱을 종료하는 것입니다.Jquery mobile, 이전 페이지 제거

답변

5

나는이 질문에 대답으로 : page hash and backbutton issue phonegap+Jquery

당신과 같이 브라우저 기록에 그들을 유지하지 않고 페이지를 변경할 수 있습니다

$.mobile.changePage('#page', {reverse: false, changeHash: false}); 

를 불행하게도, 내가 묵고에서 초기 페이지를 방지하기 위해 관리하지 않았다

페이지 레이아웃 :

<body>  
    <!-- page_1 before page_loading in source --> 
    <div data-role="page" id="page_1"> 
    </div> 
    <!-- page_loading will be shown first --> 
    <div data-role="page" id="page_loading"> 
     <div data-role="content"> 
      <h1 > 
       <b>welcome</b> 
      </h1> 
     </div> 
    </div> 
    <div data-role="page" id="page_2"> 
    </div>  
</body> 
브라우저 기록에, 그래서 해결 방법을 사용

jQuery를이 :

function onBodyLoad() 
{ 
    //go to page_loading before deviceready without keeping it in browser history 
    $.mobile.changePage('#page_loading', {reverse: false, changeHash: false}); 
    document.addEventListener("deviceready", onDeviceReady, false); 
} 

function onDeviceReady() 
{ 
    //your initialization code here... 

    //now go to page_1 without keeping it in browser history since the actual first page was #page_1 already  
    $.mobile.changePage('#page_1', {reverse: false, changeHash: false}); 

    //your code here... 
} 

이것은 단지 그것을 밖으로 시도, 필요에 맞게해야한다. changeHash옵션을 추가 "#page_loading"당신의 로그인 페이지가 될 것 "PAGE_1"목록 페이지 ...

0

나를 위해 작동하지 않았다. Cordova v1.6을 사용하여

Android 활동에서 onTouch 메서드를 재정의했습니다. 거짓없는 소스에의 대상 페이지을 의미한다 :

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (KeyEvent.KEYCODE_BACK == keyCode) { 
     // Clear browsers history if user clicks back button 
     clearHistory(); 
    } 
    return super.onKeyUp(keyCode, event); 
} 
1

changeHash가 있음을 유의하십시오. 기록에서 소스 페이지를 제거하지 않을 것입니다.

$.mobile.pageContainer.pagecontainer('change', '#page', {reverse: false, changeHash: false}); 

jQuery.mobile.changePage는 추천되지 않습니다 : 새 페이지

1

로 이동 할 때이 스크립트를 사용할 수 jQuery를 모바일 (1.4)의 최신 버전을 사용하는 경우 대신, 역사 해시는 업데이트되지 않습니다 jQuery Mobile 1.4.0 및 1.5.0에서 제거됩니다.

관련 문제