簡體   English   中英

頁面哈希和后退按鈕問題phonegap + Jquery

[英]page hash and backbutton issue phonegap+Jquery

我是Phonegap編程的新手,希望有人可以在這里為我提供幫助:

使用了cordova 1.7.0,Jquery 1.7.2和JQM 1.1.0。 該應用正在Android上進行測試。

我正在嘗試為該應用創建啟動頁面。

<body>    
    <div data-role="page" id="page_loading">
        <div data-role="content">
            <h1 >
                <b>welcome</b>
            </h1>
        </div>
    </div>

    <div data-role="page" id="page_1">
    </div>

    <div data-role="page" id="page_2">
    </div>    
</body>

我放了一個$.mobile.changePage($('page_1'), { changeHash: false}); onDeviceReady()函數的末尾。 應用啟動時,它會立即顯示加載頁面,加載完成后,它將移至第一頁。

在第一頁上,當我按page_1上的后退按鈕時,它將退出該應用程序。 這就是我要的。

然后,我再次使用mobile.changePage轉到頁面2。如果仍然使用changeHash: false ,則backbutton將再次退出應用程序。 如果我使用changeHash: true ,則后退按鈕不會返回到page_1,而是會轉到加載頁面。

如果在從加載到第1頁的過渡中使用changeHash: true ,則第2頁上的changeHash: true將調出第一頁,但在第一頁上將調出加載的頁,而不是退出應用程序。

我的問題是:如何使后退按鈕回到第2頁,第3頁等的歷史記錄,但退出第1頁的應用程序?

我的猜測是我必須以某種方式重建/清除哈希。 誰能告訴我如何? 謝謝

我有同樣的問題,並使用了一種解決方法:

頁面布局:

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

這應該符合您的需求,只需嘗試一下...

從jquery-1.7.1升級到jquery-1.7.2時遇到麻煩,所以我很快就切換回去。 JQM網站表示,它目前支持jQuery 1.6.4和1.7.1。 您可以嘗試降級到1.7.1並查看是否可行嗎?

(使用cordova 1.8.0和JQM出血邊緣)

我知道這是一個非常老的問題,但是我遇到了這個問題,以為我要添加解決方案:

我只是在初始頁面上添加了“ onPageBeforeShow”偵聽器,並使用全局布爾值“ splashDisplayed”來檢測這是否是首次顯示初始屏幕。 如果是,請將布爾值設置為true,否則將退出應用程序。

$(document).on("pagebeforeshow", "#splash", function () {
if(!splashDisplayed){
    splashDisplayed=true;
}else{
    navigator.app.exitApp();
}
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM