0

メディアクエリを使用してモバイルで見栄えを良くする Web サイトを持っています。これを phonegap でラップして、アプリケーションとしても使用できるようにしました。私は自分のサイトに super.loadUrl を設定しましたが、これは機能します。また、サイトが読み込まれるまで維持したいスプラッシュ画面も動作しています。このブログ投稿に出くわし、指示に従いました。index.html (アプリのホームページ) への super.loadUrl の場合は機能しますが、実際のサイトの loadUrl の場合は機能しません。

スプラッシュ スクリーン コード (メイン Java ファイル)

super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl("My External Site Url", 20000);

Index.html コード (これは loadUrl にすると機能しますが、自分のサイトに loadUrl を追加したい)

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    navigator.splashscreen.hide();
}

ただし、外部の html ファイルで上記のコード (および cordova.js を含める) を使用すると、onDeviceReady が認識されないため、スプラッシュ スクリーンが非表示にならず、20 秒間待機してスタックします。

何か不足していますか?外部の html ファイル (アプリに組み込まれていないものなど) から onDeviceReady を使用することも許可されていますか?

4

3 に答える 3

1

これは、prototype.js の古いインクルードが原因であることがわかりました。それを削除すると、驚くほど機能します。

将来の人々のために、私が得たエラーは次のとおりです。

  • アプリはタッチに反応せず、入力ボタンとハイパーリンクは使用できません。
  • 入力、ハイパーリンクなどを長押しすると、オレンジ色のフォーカス ボックスが表示されますが、リンクに移動したり、入力ボタン (カーソルまたはキーボード) をアクティブにしたりしませんでした
  • プロトタイプにより、どの時点でも deviceready の取得が停止しましたが、JS エラーはスローされませんでした (IE が addEventListener を好まないことを除いて)。
于 2012-10-11T11:20:13.940 に答える
0

これを試してみてください:

<script> 
function init() {
    document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
    navigator.splashscreen.hide();
}
</script>
<body onload="init()">

jQueryを使用しているので、次のように変更することをお勧めします。

$(document).ready(function() {
  document.addEventListener("deviceready", onDeviceReady, false);
});
于 2012-10-04T14:47:28.323 に答える