如何在Web浏览器和XCode中使用JavaScript运行HTML文件?

时间:2012-09-05 09:32:40

标签: javascript iphone html5 cordova xcode4.3

我想使用phonegap Cordova 2.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>

提前致谢。

2 个答案:

答案 0 :(得分:1)

首先,尝试:

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

是否反应正确。然后去:

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

<body onload='bodyLoaded();'>

答案 1 :(得分:1)

好的,所以你正在开发一个PhoneGap应用程序。

在PhoneGap中有一个名为“deviceready”的特殊事件,当PhoneGap完全加载时会触发该事件。

在此事件触发之前,不要调用任何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>
    
  4. 如何解决这些问题?

    1. 在XCode中开发。内置了一个模拟器。它还可以为您提供管道。无需外部Web浏览器。在您的问题中,您已经说过一些关于XCode的内容,所以这可能是个不错的选择。阅读有关在那里设置和运行项目的文章:http://www.adobe.com/devnet/html5/articles/getting-started-with-phonegap-in-xcode-for-ios.html

    2. 使用Ripple Emulator。它是一款模拟器,专为在Google Chrome浏览器中模拟手机而设计。它可以使您的应用程序相信它作为PhoneGap应用程序在您的手机内运行,并且您可以使用手机的所有功能,如加速度计,gps等。它还可以为您模拟deviceready事件。 :)

    3. 与每个框架一样,研究Documentation是一个非常好的主意。有一个非常好的入门指南,你可以找到关于PhoneGap的每个问题的答案。

      请阅读并研究我为您提供的链接。它将帮助您了解您的目标。