0

私は想像できる最も単純な PhoneGap アプリを持っています!

私がやろうとしているのは、deviceready イベントで警告メッセージを表示することだけです。

HTML コード

<!DOCTYPE HTML>
<html>
<head>
    <title>PhoneGap</title>
    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8" src="common.js"></script>
</head>
<body>
    <div data-role="page" id="index-page">
        <h1>Hello World!</h1>
</body>
</html> 

common.js コード

var isPhoneGapReady = false;
function init() {

        document.addEventListener("deviceready", 
            onDeviceReady, false);

        // Older versions of Blackberry < 5.0 don't support 
        // PhoneGap's custom events, so instead we need to 
        // perform an interval check every 500 milliseconds 
        // to see if PhoneGap is ready.  Once done, the 
        // interval will be cleared and normal processing
        // can begin
        var intervalID = window.setInterval(function() {
              if (PhoneGap.available) {
                  onDeviceReady();
              }
          }, 500);
  }

function onDeviceReady() {
    window.clearInterval(intervalID);

    // set to true
    isPhoneGapReady = true;
alert("The device is now ready");
}

// Set an onload handler to call the init function
window.onload = init;

クラウド サービスを使用して APK ファイルを取得し、ANdroid シミュレーター バージョン 4.0.3 内で実行しています。

コンソールのエラー:

init
Ignote this event
W/webcore(6387): java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up.
at android.webkit.WebViewCore$EventHub.removeMessages(WebViewCore.java:1683)

誰かがエラーを修正するために何をする必要があるかを指摘していただければ幸いです.

ありがとう、

4

1 に答える 1

1

あなたが抱えている問題は、あなたintervalIDのスコープがあなたの機能に達していないことだと思いますonDeviceReady()。次のように、関数内でその関数を作成する必要がありますinit()-

var isPhoneGapReady = false;

function init() {

    document.addEventListener("deviceready", onDeviceReady, false);

    // Older versions of Blackberry < 5.0 don't support 
    // PhoneGap's custom events, so instead we need to 
    // perform an interval check every 500 milliseconds 
    // to see if PhoneGap is ready.  Once done, the 
    // interval will be cleared and normal processing
    // can begin

    var intervalID = window.setInterval(function() {
          if (PhoneGap.available) {
              onDeviceReady();
          }
      }, 500);

        // REMOVE THIS
        // }

    function onDeviceReady() {
        window.clearInterval(intervalID);

        // set to true
        isPhoneGapReady = true;
    alert("The device is now ready");
    }

// PUT THIS HERE
}

// Set an onload handler to call the init function
window.onload = init;
于 2012-06-20T23:32:54.243 に答える