tl;dr: PGB のドキュメントに記載されていることとは反対に、アプリのルート ディレクトリにファイルのコピーを保持する必要cordova.js
があります。このファイルは、PhoneGap のバージョン 2.0 から取得する必要があります。最新バージョンの Ripple Emulator はどちらでも動作しないためです。他のバージョンまたはこのファイルなし。
解決
ローカルの PhoneGap 環境ではなく、PhoneGap Build を使用して PhoneGap アプリを開発しています。そのため、指示に従ってphonegap.js
、アプリケーションの webroot からファイルを削除し、ファイルへの参照のみを に残しましたindex.html
。これは PhoneGap Build では問題ありませんが、Ripple Emulator ではまったく問題ありません。
そのファイルを元に戻して以来 (実際にcordova.js
はlib\android\example\assets\www\
フォルダーからphonegap-2.0.0.zip
ライセンスを確認し、Ripple Services を起動して、動作中の PhoneGap アプリケーションをローカルでテストしました。
同様の問題に苦しんでいる人への通知: Ripple Emulator の現在のバージョンは を使用していCordova 2.0
ます。正しいバージョンの PhoneGapをダウンロードして取得するようcordova.js
にしてください。cordova.js
新しいバージョン (現在は ) から使用しようとしないでください。3.0.0
多くの奇妙なalert()
が表示されたり、オーバーロードされた Chrome がハングアップしたりするなど、検出できない状況に遭遇する可能性があります。
Ripple の背後にあるバージョンと一致する PhoneGap の JS ファイル バージョンを使用していることを常に確認してください。
一歩一歩
Chrome と Ripple Emulator を使用して Windows で PhoneGap アプリケーションをテストできるようにするための主な手順:
ファイルをフォルダーcordova.js
のルートに戻し、それへの参照を確認します。lib\android\example\assets\www\
ダウンロード可能なバージョンのPhoneGapのフォルダーから取得できます(phonegap-2.0.0.zip
ただし、使用する必要があります。上記を参照してください)。
Ripple Emulator
Chrome ストアを使用して、Chrome ブラウザーの拡張機能をインストールします。有効にします。
ローカル Web サーバーを起動し、それを介してモバイル アプリケーションの HTML コードを実行します (直接ファイル アクセスによるテストは主に Ripple Emulator で可能ですが、あまりお勧めできず、予測できない結果が生じる可能性があります)。
Ripple Emulator アイコンをクリックし、Chrome オムニバーの右にあるので、クリックしますEnable
(または、コンテキスト メニューから適切なオプションを選択し、ページを右クリックします)。
使用許諾契約に同意し、適切なプラットフォームを選択します ( Cordova 2.0.0
)。
Ripple Emulator アイコンをもう一度クリックしStart Ripple Services
、自動的に起動しない場合はクリックします。
宛先プラットフォーム (デバイス) を設定し、ローカルでの PhoneGap アプリケーションの動作をお楽しみください。
バージョンと API の違い
また、 PhoneGap APIにも注目し、PhoneGap 2.0.0 で何が利用可能で、どのようにアクセスできたのかを注意深く確認する必要があります。たとえば、単純な接続タイプのチェックはそれ以来変更されています。2.9.0 APIではを介して行われましたがnavigator.connection
、2.0.0 APInavigator.network
ではインターフェースでアクセスされました。
Ripple Emulator は PhoneGap 2.0.0 を使用するため、現在サポートされているこのオブジェクトの呼び出し方法は次のとおりです。
var networkState = navigator.connection.type;
失敗します。次のように使用する必要があります。
var networkState = navigator.network.connection.type;
PhoneGap のバージョンを選択することはできますが、PhoneGap Build でコンパイルする場合 (このコードを変更せずにコンパイルしてもバージョン 2.0.0 を強制的に使用することもできます)、最新バージョンの PhoneGap を使用してアプリケーションを開発することをお勧めします。
この場合、Ripple と PhoneGap の両方で機能する「安全な」アプローチを使用する必要があります。
var networkState = ((navigator.connection) ? navigator.connection.type : ((navigator.network && navigator.network.connection) ? navigator.network.connection.type : 'unknown'));
または、特別な変数を宣言することもできます:
var debugMode = typeof(window.tinyHippos) !== 'undefined';
そしてそれをスイッチとして使用します:
var networkState = (debugMode) ? navigator.network.connection.type : navigator.connection.type;
願わくば、Ripple がすぐに最新の PhoneGap に更新されることを願っています。