1

Ripple 0.9.9 を使用して PhoneGap 2.0 アプリをテストしていますが、セットアップに問題があります。このサイトで関連する質問を読みましたが、私の問題に対処するものは何もありません:

phonegap deviceready イベント (ripple エミュレーター)によると、ripple エミュレーターはripple.js をページに挿入し、これには phonegap api エミュレーターが含まれます。したがって、Ripple 内でテストするときは、phonegap.js/cordova.js をページに含めないでください。

<body onload="onLoad()">onload ハンドラーを呼び出すために使用するのは、次の JavaScript です。

var mobile=false;

function onLoad() {
console.info("inside onload...");
var uA = navigator.userAgent;
if (uA.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)) {
    console.info("on phone: " + navigator.userAgent);
    document.addEventListener("deviceready", function() { mobile=true; appReady(); }, false);
} else {
    if (uA.match(/Chrome/)) {
        console.info("on browser: " + navigator.userAgent + ", do not initiate mobile app for Chrome since will be init. by Ripple");

    } else {
        /* not running on Chrome so no Ripple */
        appReady();
    }
}

}

iPhone 4 で実行されている Ripple エミュレーター (Phonegap/Cordova 2.0 に設定) 内で index.html を実行すると、次のデバッグが表示されます (init.js は私の js ファイルです)。

inside onload... init.js:19

on browser: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) 

Chrome/23.0.1271.64 Safari/537.11, do not initiate mobile app for Chrome since will be init. by Ripple init.js:26

Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.) ripple.js:475

cordova :: Initialization Finished (Make it so.) ripple.js:475

inside onload... init.js:19

on phone: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/1A542a Safari/419.3 

onload イベントが 2 回発生していることがわかります。a) 通常のブラウザーの場合と、b) リップルがユーザー エージェントを iPhone 4 のユーザー エージェントに変更してから、ページをリロードするようです。

これは正常な動作ですか?

「deviceready」イベントは呼び出されません。理由はありますか?

4

1 に答える 1

0

devicereadyイベントの場合、Rippleの左側の「プラットフォーム」パネルからphonegapプラットフォームが有効になっていることを確認してください。PhoneGap以外のプラットフォームが使用されている場合、devicereadyイベントは発生しないと思います。

ダブルページのリロードに関しては、はい、それは特定のページイベントを必要な順序で強制的に発生させるように設計されたRippleの一時的な動作でした。ただし、最新バージョン(0.9.11)で問題が修正されています。コンテンツがすでにロードされた後、Rippleが追加のページロードを強制することはありません。

0.9.11に更新することをお勧めします

于 2013-01-14T15:05:28.600 に答える