1

次の問題があり、Phonegap には少し慣れていません。私のインデックス ページには、ユーザーに名前、電子メール、役職 (役職) を尋ねる Javascript プロンプトを作成し、それぞれを localStorage に保存する 3 つの関数があります。こんな感じの3品。

function promptName(){
  var salesPName = prompt("Bitte geben Sie Ihren Namen","");
  if(salesPName == null || salesPName == ""){
    promptName()
  }else{
    localStorage.setItem("salesP", salesPName);
  }
}

次に、$(document).ready次の 3 つの関数を呼び出します。

$(document).ready(function(){
  if(!localStorage.getItem("salesP")){
    promptName();
    promptEmail();
    promptPosition();
  }
});

これはすべて正常に機能していますが、Android デバイスにデプロイするときにプロンプ​​トが表示されますが、3 つすべてを完了する前に、次のエラー ダイアログが表示されます。

サーバーへの接続に失敗しました (file:///android_asset/www/appname/index.html)

プロンプトを削除するとエラーは削除されますが、この機能が必要です。bodyタグのonloadイベントや使用など、関数を呼び出すさまざまな方法を試しました.load()。私はまだこのエラーが発生します。問題はJavascriptのブロック性によるものであると確信しているため、Javascript間隔を設定して数秒後(ページがロードされた後)にこれを呼び出すことを考えました。誰もこれに遭遇したことがありますか?

com.mypackage.xxx.javaファイル に次を追加したことに注意してください( phonegapからのアドバイスによると、サーバーへの接続に失敗しました

super.setIntegerProperty("loadUrlTimeoutValue", 10000); 

そして、私はまだ問題を抱えています!

4

1 に答える 1

3

何も機能していないsetTimeout() ので、自分の状態を次のように配置します...

$(document).ready(function(){

        setTimeout(function (){if(!localStorage.getItem("salesP")){
            // item doesn't exist... so let's raise some dialogs to capture the name, email address and title
            promptName();
            promptEmail();
            promptPosition();
            }
        }, 5000)

});

今は問題なく動作しています...少しごちゃごちゃしていますが、もし誰かがより良い解決策やこれに対する異議について何かアイデアを持っているなら、私に知らせてください

于 2012-08-14T08:44:54.057 に答える