我有以下代码:
<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 app/lib/jquery.min.js
没有cordova-2.2.0.js,没有config.xml。
当我在 Ripple 中进行测试时,它会按预期给我一个联系人列表。
当我在我的手机(三星 Galaxy Nexus,运行 Jelly Bean)上部署应用程序时,它会给我一个警报窗口,上面写着“Contacts.find failed: JSON error”。
看起来方法“navigator.contacts.find”失败了。
起初我认为这是一个权限问题,但当我安装该应用程序时,我能够看到该应用程序要求“您的个人信息”,其中包含从手机读取联系人。
我想知道出了什么问题?