3

phonegapCordova2.0を使用してiPhoneアプリを作成したいと思います。今i wrote Javascript external and HTML code。それから私は入れましたJavaScript code into the HTML5 file。次に、WebブラウザでHTMLファイルを実行します。ブラウザでHTMLを実行すると、Javascriptが機能しません。ブラウザはHTMLに何でも表示します。だから私を助けてくれませんかrun the HTML5 file with JavaScript on the browser and in XCode Phonegap

以下のコーディングはJavaScriptコーディングです。

    

var bodyLoaded = function()
 {
    document.addEventListener("deviceready", onDeviceReady, false);
 }

    // Cordova is ready
    //
    function onDeviceReady() {
        var options = new ContactFindOptions();
        options.filter="";
        filter = ["displayName","organizations"];
        navigator.contacts.find(filter, onSuccess, onError, options);
    }

    // onSuccess: Get a snapshot of the current contacts
    //
    function onSuccess(contacts) {
        for (var i=0; i<contacts.length; i++) {
            for (var j=0; j<contacts[i].organizations.length; j++) {
                alert("Pref: " + contacts[i].organizations[j].pref + "\n" +
                        "Type: " + contacts[i].organizations[j].type + "\n" +
                        "Name: " + contacts[i].organizations[j].name + "\n" + 
                        "Department: "  + contacts[i].organizations[j].department + "\n" + 
                        "Title: "  + contacts[i].organizations[j].title);
            }
        }
    };

    // onError: Failed to get the contacts
    //
    function onError(contactError) {
        alert('onError!');
    }

以下のコーディングは私のHTML5にあります

 <!DOCTYPE html>
<html>
  <head>
 <meta charset="utf-8" /> 

    <title>Contact Example</title>
    <script type="text/javascript" charset="utf-8" src="Contectscript.js"></script>
   
  </head>
  <body>
    <body onload='alert(1);'>
    <body onload='bodyLoaded();'>
    <h1>Example</h1>
    <p>Find Contacts</p>
  </body>
</html>

前もって感謝します。

4

2 に答える 2

1

まず、次のことを試してください。

<body onload='alert(1);' ...>

正しく反応するかどうか。次に、次のようにします。

var bodyLoaded = function() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

<body onload='bodyLoaded();'>
于 2012-09-05T10:40:56.410 に答える
1

さて、あなたはPhoneGapアプリケーションを開発しています。

PhoneGapには、PhoneGapが完全にロードされたときに発生する「deviceready」と呼ばれる特別なイベントがあります。

このイベントが発生する前に、PhoneGap関数を呼び出さないことが非常に重要です。関数がまだロードされていない可能性があります。

あなたの問題は次のとおりです。

  1. ブラウザでJavaScriptをテストしようとしています。PhoneGapは、携帯電話からアプリにサービスを提供します。Webブラウザから実行しているため、サービスを提供する電話はありません。Webブラウザでアプリケーションを単純に実行することはできません。

  2. phonegap.jsが参照されていません。PhoneGapには、アプリケーションが機能するためにロードする必要のあるjavascript部分があります。独自のスクリプトの前のような行が必要です<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>(もちろん、ファイル名は使用しているphonegapのバージョンによって異なる場合があり、cordova.jsと呼ばれる場合があります)。

  3. あなたのhtmlにはばかげたものが含まれています。オープニングボディタグは3つあります。1つだけ存在する必要があります。次のようなHTMLが必要です。

    <!DOCTYPE html>
    <html>
      <head>
      <meta charset="utf-8" /> 
        <title>Contact Example</title>
        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8" src="Contectscript.js"></script>
      </head>
      <body onload="bodyLoaded();">
        <h1>Example</h1>
        <p>Find Contacts</p>
      </body>
    </html>
    

これらの問題を解決する方法は?

  1. XCodeで開発します。エミュレーターが組み込まれています。それはまたあなたのために配管を行います。外部のWebブラウザは必要ありません。あなたの質問では、XCodeについてすでに何か言っているので、これは良いオプションかもしれません。プロジェクトのセットアップと実行に関するこの記事を読んでください:http ://www.adobe.com/devnet/html5/articles/getting-started-with-phonegap-in-xcode-for-ios.html

  2. リップルエミュレータを使用します。これは、グーグルクロームブラウザで電話をエミュレートするために設計されたエミュレータです。これにより、アプリケーションはPhoneGapアプリとして電話内で実行されていると見なすことができ、加速度計、GPSなどの電話のすべての機能を利用できます。また、devicereadyイベントをエミュレートします。:)

すべてのフレームワークと同様に、ドキュメンテーションを研究することは非常に良い考えです。非常に優れた入門ガイドがあり、PhoneGapに関するすべての質問に対する回答を見つけることができます。

私があなたに提供したリンクを読んで研究してください。それはあなたが何をしようとしているのかを理解するのに役立ちます。

于 2012-09-06T07:15:42.480 に答える