如何在Web浏览器和XCode中使用JavaScript运行HTML文件?
我想使用phonegap Cordova 2.0创建iPhone应用程序。现在,我编写了Javascript外部代码和HTML代码。然后我将如何在Web浏览器和XCode中使用JavaScript运行HTML文件?,javascript,iphone,html,cordova,xcode4.3,Javascript,Iphone,Html,Cordova,Xcode4.3,我想使用phonegap Cordova 2.0创建iPhone应用程序。现在,我编写了Javascript外部代码和HTML代码。然后我将JavaScript代码放入HTML5文件。现在我想在web浏览器上运行HTML文件。当我在浏览器中运行HTML时,Javascript不起作用。浏览器显示HTML中的任何内容。因此,请您帮助我在浏览器和XCode Phonegap中使用JavaScript运行HTML5文件 下面的代码是JavaScript代码 var bodyLoaded =
JavaScript代码放入HTML5文件
。现在我想在web浏览器上运行HTML文件。当我在浏览器中运行HTML时,Javascript不起作用。浏览器显示HTML中的任何内容。因此,请您帮助我在浏览器和XCode Phonegap中使用JavaScript运行HTML5文件
下面的代码是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!');
}
var bodyLoaded=函数()
{
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
//科尔多瓦准备好了
//
函数ondevicerady(){
var options=new ContactFindOptions();
选项。过滤器=”;
过滤器=[“显示名称”,“组织”];
navigator.contacts.find(过滤器、onSuccess、onError、选项);
}
//onSuccess:获取当前联系人的快照
//
成功时的功能(联系人){
对于(var i=0;i首先,尝试:
<body onload='alert(1);' ...>
它的反应是否正确。然后继续:
var bodyLoaded = function() {
document.addEventListener("deviceready", onDeviceReady, false);
}
<body onload='bodyLoaded();'>
var bodyload=function(){
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
好的,您正在开发PhoneGap应用程序
在PhoneGap中有一个称为“deviceready”的特殊事件,当PhoneGap完全加载时触发
在此事件触发之前,不要调用任何PhoneGap函数,这一点非常重要。这些函数可能尚未加载
你的问题是:
您正在尝试在浏览器中测试javascript。PhoneGap提供从手机到应用程序的服务。由于您是从web浏览器运行它,因此没有手机提供服务。您不能简单地在web浏览器中运行应用程序
您没有引用phonegap.js。phonegap有一个javascript部分,必须加载该部分才能使应用程序正常工作。在您自己的脚本之前,应该有一行类似于
(当然,文件名可能会因您使用的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的内容,因此这可能是一个不错的选择。请阅读这篇关于在那里设置和运行项目的文章:
使用。它是一个专为在google chrome浏览器中模拟手机而设计的模拟器。它可以让您的应用程序相信它在您的手机内作为PhoneGap应用程序运行,并且手机的所有功能都可用,如加速计、gps等。它还可以为您模拟deviceready事件。:)
就像在每个框架中一样,这是一个非常好的学习方法。有一个非常好的入门指南,你可以找到关于PhoneGap的每个问题的答案
请阅读并研究我为您提供的链接。它将帮助您了解您正在尝试做什么。为什么一开始就设置window.location.href?为什么要使用javascript的绝对路径?@SoonDead我遵循了您的想法并再次尝试,但没有得到解决方案。我已编辑了我的问题。示例请看一看并帮助获取解决方案。提前感谢。您可以调试javascript吗?如果不可以,请尝试添加一些警报(“已达到”);行代码以查看到达的内容和未到达的内容。此外,我不确定web浏览器是否有“DeviceRady”事件?@SoonDead我遵循了您的想法,但没有得到解决方案。因此我编辑了我的问题并添加了完整的HTML源代码供您参考。请建议我在代码中犯了什么错误。提前谢谢。我很高兴我遵循了你的代码,但没有得到解决方案。因此,我编辑了我的问题,并添加了完整的HTML源代码供你参考。请告诉我我在代码中犯了什么错误。提前谢谢。不要同时添加它们:)。这只是确认触发了你的body onload(没有任何干扰)。因此,请先尝试一下,然后再尝试bodyLoaded函数。感谢您的回复。我已从HTML代码中删除,并在每个方法中添加了警报。但bodyLoaded只调用了,其他方法没有调用。我已在所有方法中添加了警报,如function OnDevicerady()、function onSuccess(contacts)但是这些方法没有调用。您能指导我解决这个问题吗?提前谢谢。
<!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>