我想使用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>
提前致谢。
答案 0 :(得分:1)
首先,尝试:
<body onload='alert(1);' ...>
是否反应正确。然后去:
var bodyLoaded = function() {
document.addEventListener("deviceready", onDeviceReady, false);
}
<body onload='bodyLoaded();'>
答案 1 :(得分:1)
好的,所以你正在开发一个PhoneGap应用程序。
在PhoneGap中有一个名为“deviceready”的特殊事件,当PhoneGap完全加载时会触发该事件。
在此事件触发之前,不要调用任何PhoneGap函数非常重要。这些功能可能尚未加载。
你的问题是:
您正在尝试在浏览器中测试javascript。 PhoneGap提供从手机到应用的服务。由于您是从Web浏览器运行它,因此没有电话提供服务。您不能简单地在Web浏览器中运行您的应用程序。
您没有引用phonegap.js。 PhoneGap有一个必须加载的javascript部分才能使您的应用程序正常工作。在您自己的脚本之前,您应该有一个类似<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
的行(当然,根据您使用的phonegap版本,文件名可能会有所不同,可以称为cordova.js)。
你的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>
如何解决这些问题?
在XCode中开发。内置了一个模拟器。它还可以为您提供管道。无需外部Web浏览器。在您的问题中,您已经说过一些关于XCode的内容,所以这可能是个不错的选择。阅读有关在那里设置和运行项目的文章:http://www.adobe.com/devnet/html5/articles/getting-started-with-phonegap-in-xcode-for-ios.html
使用Ripple Emulator。它是一款模拟器,专为在Google Chrome浏览器中模拟手机而设计。它可以使您的应用程序相信它作为PhoneGap应用程序在您的手机内运行,并且您可以使用手机的所有功能,如加速度计,gps等。它还可以为您模拟deviceready事件。 :)
与每个框架一样,研究Documentation是一个非常好的主意。有一个非常好的入门指南,你可以找到关于PhoneGap的每个问题的答案。
请阅读并研究我为您提供的链接。它将帮助您了解您的目标。