Android と Web でうまく動作する Phonegap & jQuery Mobile アプリを用意しました。iOS では、ほとんどのアプリのプロセスのハンドラーをバインドする document.pageinit イベントが 2 回発生するという事実が原因であると思われる、予期しない結果が得られます。
いいえ、2回バインドしませんでした。いいえ、document.ready は使用しませんでした。はい、スクリプトの早い段階で、他の関数内ではなく、ドキュメントにバインドしました。
$(document).on('pageinit',function(event){
alert(' Pageinit on document');
//Some more code
})
初めて起動したとき、スプラッシュ画面はまだ表示されています。この時点で、XCode を使用して MacBook Pro でテストしている間、コンソールは利用できません。console.log を使用した場合、上記のメッセージはコンソールに表示されませんでした。
2 回目は、jQueryMobile が最初のページを作成した直後に起動します。
この二重発射の原因は何ですか?どうすればよいですか?
編集:後で、pageinit が 2 回目の起動ではなく、新しい data-role='page' div を開くたびに起動することに気付きました。以下の私の答えを見てください。