1

私はphonegapプログラミングに不慣れで、誰かがここで私を助けてくれることを望んでいます:

cordova 1.7.0、Jquery 1.7.2、およびJQM1.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、戻るボタンを押すとアプリが再び終了します。を使用するchangeHash: trueと、戻るボタンはpage_1に戻りませんが、読み込みページに戻ります。

changeHash: trueロードからpage1への移行で使用すると、page2の戻るボタンで最初のページが表示されますが、最初のページでは、アプリを終了するのではなく、ロードページが表示されます。

私の質問は、戻るボタンをページ2、ページ3などの履歴に戻して、ページ1でアプリを終了させるにはどうすればよいですか?

私の推測では、どういうわけかハッシュを再構築/クリアする必要があります。誰かが私にどのように見せてもらえますか?ありがとう

4

3 に答える 3

0

私は同じ問題を抱えており、回避策を使用しました:

ページレイアウト:

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

これはあなたのニーズに合うはずです、ただそれを試してみてください...

于 2012-06-18T12:07:55.833 に答える
0

jquery-1.7.1からjquery-1.7.2にアップグレードするときに問題が発生したため、すぐに元に戻しました。JQMサイトは、現在jQuery1.6.4および1.7.1をサポートしていると述べています。1.7.1にダウングレードして、機能するかどうかを確認してください。

(cordova 1.8.0およびJQMブリーディングエッジを使用)

于 2012-06-18T12:40:29.443 に答える
0

これは本当に古い質問ですが、この問題に遭遇し、解決策を追加すると思いました。

スプラッシュページに「onPageBeforeShow」リスナーを追加し、グローバルブール値の「splashDisplayed」を使用して、スプラッシュ画面が初めて表示されるかどうかを検出しました。はいの場合、ブール値をtrueに設定し、そうでない場合は、アプリを終了します。

$(document).on("pagebeforeshow", "#splash", function () {
if(!splashDisplayed){
    splashDisplayed=true;
}else{
    navigator.app.exitApp();
}
});
于 2016-09-10T13:02:42.907 に答える