2

最新の Ripple Emulator をインストールしました (Chrome ストアで最新のものを入手できます)。イベント以外はすべて正常に動作します。それらのどれも発火しません(deviceready他のスタックオーバーフローの質問のように、どれもありません)。

手動 (Eventsペインを使用) も自動 ( deviceready) も発射されませんでした。

手動の方法を使用すると、Ripple はコンソールに、イベントを発生させているという行を書き込みますが、実際には何も起こりません。アプリケーションがまったく反応しません。イベント バインドがbackbuttonありますが、Ripple では機能しません。そして、アプリケーションが起動されていないため、init部分をdevicereadyイベントに移動したときに、アプリケーションがまったく機能しなくなりました。もちろん、ターゲット デバイスではすべて問題ないので、コードは正しいはずです。

このような動作の原因は何ですか?また、回避策はありますか?

編集: Ripple Emulator (Beta) 0.9.15Windows 7 に Chrome 拡張機能としてインストールしました。宛先デバイスではすべて問題ないため、JS コード (イベント ハンドラー) は問題ないはずです。

4

1 に答える 1

3

詳細な調査の後、私はこの問題を解決することができました (少なくとも部分的に -- 一部のイベントは発生し、一部のイベントは発生しません)。私の場合、欠落している.js(PhoneGap ソース)ファイルの問題でした。

成功の鍵は次のとおりでした。

  1. 実際に PhoneGap / Cordova JSファイルをアプリ コンテンツに配置し、ソース ファイルで正しく参照(有効なパスとファイル名) を設定します。

  2. これを書いている時点で、ソースファイルは正しいバージョン(2.0.0) になっています。

最初は、ソース ファイルを削除するように指示されている PhoneGap Build ユーザーにとって特に混乱を招く可能性があります。ソース ファイル ( <script type="text/javascript" src="cordova.js"></script>) 内の参照はそのままにしておく必要がありますが、参照しているファイルは終了しないでください。PhoneGap Build は、コンパイル/ビルド プロセス中にこのファイルを (適切なバージョンで) 挿入します。

これは PhoneGap では問題ありませんが、 Ripple では完全に間違っています。Ripple を完全に機能させ、(少なくとも確実に) イベントを発生させたい場合は、そのファイルをそのままにしておく必要があります。これは PhoneGap にまったく干渉しないことがわかりました。アプリは、そのファイルが配置されているかどうかに関係なく、問題なくビルドされます。

2番目も重要です。Ripple の現在のバージョンはPhoneGap API 2.0.0に基づいて構築されていることがわかりました。これは、現在利用可能なPhoneGap API 3.0.0に対して非常に古いものです。したがって、Ripple をほぼ問題なく動作させるには、[PhoneGap リポジトリ ( http://phonegap.com/install/ ) をブラウズし、 2012 年 7 月 20 日にリリースされたPhoneGap 2.0.0のソースを取得し、そこからファイルを抽出する必要があります。次に、それを webapp のソース フォルダーに配置し、正しい参照を追加して、Ripple を試します。cordova.js

少なくともいくつかのイベント ( など) が発生するはずですが、devicereadyまだ失敗する可能性があります。

また、イベント ハンドラーを含むすべてをイベ​​ントリスナー コードで定義する必要があることdevicereadyに注意してください。そうしないと、すべてが失敗します。

関連する可能性のある Ripple の JIRA の問題:

ところで: ブラウザのコンソールを開いて手動でイベントを発生させると、Ripple によってコンソールに書き込まれた適切な通知が表示されます。つまり、Rippleは、エミュレートされた Web アプリケーションでも を起動すると考えますが、実際には起動しません

于 2013-09-19T09:23:21.563 に答える