Events

Events

PhoneGapがサポートする唯一のイベントで、PhoneGapの読み込みが完了したときに実行されます。

イベントタイプ


deviceready

このイベントはPhoneGapが完全にロードされたときに呼び出されます。

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

詳細

このイベントはすべてのPhoneGapアプリケーションで使用される重要なイベントです。

PhoneGapはネイティブとJavaScriptの2つのコードで形成されます。ネイティブコードがロードされている間は、カスタムのロード画面が表示されます。 しかし、JavaScriptはDOMが読み込まれるまではロードされません。そのため、PhoneGapのJavascript関数群がロードされる前に、それらの関数が呼ばれる可能性があります。

deviceready イベントはPhoneGapが完全にロードした後で発動されます。安全にPhoneGap関数を呼び出すためには、デバイスが完全に発動したことを確認してください。

通常はHTML文書のDOMが読み込まれた後、 document.addEventListener を通じてイベントリスナをセットします。

サポートされているプラットフォーム

使用例

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

function onDeviceReady() {
    // PhoneGap APIを安全に使用できます
}

詳細な使用例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>PhoneGap Device Ready 使用例</title>

    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">

    // PhoneGapの読み込み完了とともにonDeviceReadyを呼び出します。
    //
    // この時点ではドキュメントの読み込みは完了していますが、PhoneGapの読み込みはまだ完了していません。
    // PhoneGapが読み込み完了とともに `deviceready` イベントが呼び出されます。
    // 
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    // PhoneGapの読み込みが完了したので、PhoneGapのメソッドを安全に呼び出すことができます。
    //
    function onDeviceReady() {
        // PhoneGap APIを安全に使用できます。
    }

    </script>
  </head>
  <body onload="onLoad()">
  </body>
</html>

BlackBerry (OS 4.6) に関する注意点

カスタムイベントはRIM BrowserField上ではサポートされていないため deviceready イベントは発動されません。

回避策としてPhoneGapが完全にロードされるまで PhoneGap.available に問い合わせを行うことが挙げられます。

function onLoad() {
    // BlackBerry OS 4ブラウザはイベントに対応しません
    // 下記の通りPhoneGapが利用可能になるまで待機します
    //
    var intervalID = window.setInterval(
      function() {
          if (PhoneGap.available) {
              window.clearInterval(intervalID);
              onDeviceReady();
          }
      },
      500
    );
}

function onDeviceReady() {
    // PhoneGap APIを安全に使用できます
}