0

アプリを作成するときは、JQueryMobile を使用して作成しました。の使用を含め、すべてが機能しました

 jquery($document).on('pageinit','#someID',function(){ ...});

トランジションはうまく機能しました...新しいページへの移動は、すべてのブラウザーでうまく機能しました。

次に、PhoneGap 2.9.0 を使用してセットアップしました。cordova.js のインクルードを追加しました。アプリを初期化し、 var app = ; も追加しました。私のmain.jsファイルに。var app 内で呼び出される関数は、基本的に、すべての pageinit 呼び出しをラップするダミー関数です。もう機能させることができず、window.console.log エントリに基づいて、pageinit 呼び出しが行われていないことがわかっています。

私の質問は、私がこの件に関して顧客のためにあまりにも多くの時間を吹き飛ばしてしまったので、絶望的なものです. ページを起動するにはどうすればよいですか? これが問題の核心だと確信しています。

ここに jsfiddle があります - http://jsfiddle.net/3Nz9t/。それはまったくレンダリングされません。しかし、それは私が上で説明したことについてのアイデアを与えるでしょう

4

4 に答える 4

0

ドキュメントの例のように、body onload の後に deviceready を追加してみてください: http://docs.phonegap.com/en/edge/cordova_events_events.md.html#deviceready

onBodyLoad メソッドが追加された修正されたフィドル: http://jsfiddle.net/3Nz9t/2/

追加することを忘れないでください:

<body onload="onBodyLoad()">
于 2013-08-14T18:32:58.473 に答える
0

私を共有し、支援してくれたすべての人に感謝します。最後に、私はいくつかの調査を行い、デバッグが非常に遅くなり、以下の解決策にたどり着きました。

誰かがこれに出くわした場合に備えて、どうやってこれを修正したのか疑問に思っています。

すべての JQueryMobile pageinit 呼び出しをそのままにしておきます。Web サイトと同じようにロードします。それらを app.initialize() 関数に入れたいという衝動に抵抗してください。この問題は、pageinit 内に、app.initialize() 中にオンラインにする必要があるプラグインに依存する関数がある場合に発生します。PhoneGap のすべてのプラグインは、その段階でオンラインになる必要があります。

これを回避するために、main.js ファイルと私の<script type="text/javascript">app.initialize();</script>: http://jsfiddle.net/BtzJJ/の両方の前に、jsFiddle にあるコードを追加しました。

*注、フィドルはレンダリングされません。これは単に私のコードを示すためのものです。

注意すべき重要な部分は、var を作成して false に設定することです。この var は、pageinit 内で調べられます。var = 0 なので、プラグインに依存する init の部分はスキップされます。これにより、JQueryMobile を使用してページを適切に読み込むことができます。

HTML 内で、var app と onDeviceReady 関数の両方を定義したことがわかります。関数内にプラグイン js ファイルを含めています。そのファイルをインクルードしている最中に、スキップされた pageinit からコードを呼び出す関数を実行します

これがあなたの時間を節約するのに役立つことを願っています。

于 2013-08-22T13:50:07.367 に答える