我有以下代码:
<html>
<head>
<title>Contact test</title>
<script type="text/javascript" src="cordova-2.2.0.js"></script>
<script type="text/javascript" src="app/lib/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript" charset="utf-8">
alert('Add Listener');
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
alert('Device is ready');
navigator.contacts.find("*", function(contacts) {
for (var i = 0; i < contacts.length; i++) {
$('body').append('<div>' + contacts[i].displayName + '</div>');
}
}, function(error) {
alert('Contacts.find failed: ' + error);
});
}
</script>
</body>
</html>
我的PhoneGap已设置为2.2.0版。代码位于zip文件中,只有:
的index.html 应用程序/ LIB / jquery.min.js
没有cordova-2.2.0.js,没有config.xml。
当我在Ripple中测试时,它会按预期给出一个联系人列表。
当我在手机上部署应用程序(三星Galaxy Nexus,运行Jelly Bean)时,它会给我一个警告窗口,上面写着“Contacts.find failed:JSON error”。
看起来方法“navigator.contacts.find”失败了。
起初我认为这是一个权限问题,但是当我安装应用程序时,我能够看到该应用程序要求“您的个人信息”,其中包含来自手机的阅读联系人。
我想知道出了什么问题?
答案 0 :(得分:5)
我也有这个问题。我找到了一个解决方案来解决它。
请在navigator.contacts.find方法中添加'option'参数。
http://docs.phonegap.com/en/2.3.0/cordova_contacts_contacts.md.html#contacts.find
添加参数后,它可以正常工作。
答案 1 :(得分:3)
我发现了这个问题。有两个问题。
第一个问题是:
navigator.contacts.find("*", function(contacts) { ...
它应该是:
navigator.contacts.find(["*"], function(contacts) { ...
第二个问题是使用cordova 2.2.0。出于某种原因,使用cordova 2.1.0可以正常工作。也许这是在PhoneGap构建中的设置中。
答案 2 :(得分:0)
如果您在dident创建config.xml文件时,当您在真实手机上安装它时它将无法工作:)
如果您想使用来自phonegap的手机功能,您需要授予对它们的访问权限。
创建一个config.xml文件并添加以下行:
<feature name="http://api.phonegap.com/1.0/contacts"/>
Here is an example of the config file. Also read:
https://build.phonegap.com/docs/config-xml
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.phonegap.example"
versionCode="10"
version = "1.0.0">
<name>PhoneGap Example</name>
<description>
An example for phonegap build docs.
</description>
<author href="https://build.phonegap.com" email="support@phonegap.com">
Hardeep Shoker
</author>
<feature name="http://api.phonegap.com/1.0/contacts"/>
</widget>
您不需要在HDD上使用cordova-2.2.0.js文件。只要你用这样的标签来引用它:
<script type="text/javascript" src="cordova-2.2.0.js"></script>
在这方面一切都很好。