2012-06-19 46 views
5

Tôi đang sử dụng điện thoại di động jquery với điện thoại. Ứng dụng của tôi có hai trang: trang đăng nhập và trang danh sách. Khi đăng nhập thành công, người dùng sẽ vào trang danh sách. Sau đó, khi họ nhấn nút quay lại trên điện thoại của họ (android), họ sẽ quay lại trang đăng nhập. Tôi không muốn hành vi như thế này. Những gì tôi muốn là thoát khỏi ứng dụng.Jquery di động, xóa trang trước

Trả lời

5

Như tôi đã trả lời trong câu hỏi này: page hash and backbutton issue phonegap+Jquery

Bạn có thể thay đổi các trang mà không cần giữ chúng trong lịch sử trình duyệt như sau:

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

Thật không may, tôi không quản lý để ngăn chặn các trang ban đầu từ ở trong lịch sử trình duyệt, vì vậy tôi sử dụng một cách giải quyết: bố cục

Page:

<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... 
} 

Điều này phù hợp với nhu cầu của bạn, chỉ cần dùng thử. "#page_loading" sẽ là trang đăng nhập của bạn, "PAGE_1" trang danh sách của bạn ...

0

Thêm lựa chọn cho ngượcchangeHash không làm việc cho tôi. sử dụng Cordova v1.6

Tôi đã kết thúc ghi đè phương thức onTouch trong Hoạt động trên Android của mình.

@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

Hãy ghi nhớ rằng changeHash: false đề cập đến trang điểm đến, không để nguồn. Bạn sẽ không xóa trang nguồn khỏi lịch sử. Thay vào đó, băm lịch sử sẽ không được cập nhật khi chuyển sang trang

1

mới Nếu bạn sử dụng phiên bản mới nhất của jQuery di động (1.4+), bạn có thể sử dụng kịch bản này:

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

jQuery.mobile.changePage bị phản đối như của jQuery Mobile 1.4.0 và sẽ bị xóa trong 1.5.0.

Các vấn đề liên quan