为什么这太难了?我想要的只是Phonegap Contacts API中的字段名称列表。你想的不是什么大不了的事,但事实上,这几乎是Phonegap文档中的一般问题:没有方法所采用参数的细节。这些例子并非详尽无遗,这使得用户可以在其他地方进行搜索。
所以我去http://www.w3.org/TR/2010/WD-contacts-api-20100121/#widl-ContactProperties-name看到标准字段是姓名,昵称,电话,电子邮件和地址。 Hmmmm!让我们看看这是否有效:
var fieldArray = new Array('name','displayName','phoneNumbers','addresses','emails');
for (i=0;i
for(j = 0; j < fieldArray.length; j++){
alert("Field Name: "+fieldArray[j]+"\n Data: "+contacts[i].name[0]+"\n Data: "+contacts[i].displayName);
alert("\n Name: "+contacts[i].name[0]);
}
alert("Field Name: "+fieldArray[j]+"\n Data: "+contacts[i].name[0]+"\n Data: "+contacts[i].displayName);
alert("\n Name: "+contacts[i].name[0]);
没有机会。特别是,第二个警报 - contacts [i] .name [0] - 是我最感兴趣的那个。它只返回“undefined”。试过这个:contacts [i] .name [0] .value。纳达。
所以问题:联系人列表中的字段名称是什么,在Phonegap中有联系人的人可以问他们请对他们文档的糟糕状态做些什么。我会做志愿者,但我不具备做正义工作所需的Phonegap知识。
答案 0 :(得分:1)
该应用程序如下所示:出于性能原因,我想将所有联系人详细信息放在SQLite数据库中,并允许我更轻松地操作数据。所以,我提取所有的联系人:
var options = new ContactFindOptions();
options.filter=""; // Note empty filter will pick up all contacts
options.multiple = true;
var fields = ["*"]; // Picks up all fields
navigator.contacts.find(fields, findSuccess, onError, options);
var options = new ContactFindOptions();
options.filter=""; // Note empty filter will pick up all contacts
options.multiple = true;
var fields = ["*"]; // Picks up all fields
navigator.contacts.find(fields, findSuccess, onError, options);
然后我把它全部放在一个带有选定字段名称的数据库中:displayNmae,phoneNumbers,address,emails.What我真的想做什么虽然在所有字段中都是isiterate,并将数据粘贴到数据库中,并在findSuccess回调函数:
不幸的是,这需要一些可用字段的id。它必须比出现时更容易。var contactsArray=new Array();
var contactFieldsArray = new Array('displayName','firstName','lastName' ...);
for(var i = 0; i < contacts.length;i++){
for(var j = 0; j < contactFieldsArray.length; j++){
if(contactFieldsArray[j].match(/(phoneNumbers)|(emails)/i){
contactsArray,push(contacts[i].contactFieldsArray[j][0].value);
}else{
contactsArray.push(contacts[i].contactFieldsArray[j]);
}
}
}
答案 1 :(得分:0)
首先,您正在查看旧版W3C Contact规范。你会想看看这个:
http://www.w3.org/TR/contacts-api/
关于联系人中哪些字段名称的问题,他们列在docs under the Contact object中。如果您想知道创建联系人,请不要使用“new Contact()”而是使用navigator.contacts.create()。基本上,您将对象文字传递给方法,并从对象中提取匹配属性并填充联系人。
我不确定您如何使用示例中的联系人数组,但如果您使用navigator.contacts.find(),则需要指定find应返回哪个contact fields。这是根据W3C规范,我不完全同意它,但我们尝试编码规范。
希望能回答你的问题,如果它不仅仅是我,我会尽力回答。