使用本教程cordova_contacts_contacts,我尝试获取具有姓名和号码的联系人列表,并且我正确地得到了所有这些内容,但是检索号码存在问题。 当我要阅读联系人列表时,重复相同的号码(仅限某些号码)。喜欢这个
姓名abc,
电话号码1234,
电话号码1234
此问题只出现在设备上。
下面是我的代码,请找出我的问题。
var s = "";
for (var i=0; i < contacts.length; i++) {
var contactInfo = contacts[i];
if ((contactInfo.name != null) && (contactInfo.phoneNumbers != null)){
s += "Name : " + contactInfo.name.formatted + ", Birthday : " +contactInfo.birthday;
for (var j=0; j < contactInfo.phoneNumbers.length; j++) {
s += ", Contacts Type : " + contactInfo.phoneNumbers[j].type + " & No : " + contactInfo.phoneNumbers[j].value;
}
document.getElementById("results").innerHTML=s;
console.log(s);
}
}
答案 0 :(得分:0)
我使用以下代码解决了:
var s = "";
for (var i=0; i < contacts.length; i++) {
var contactInfo = contacts[i];
if (contactInfo.name != null){
s += i+1+")" + "Name : " + contactInfo.name.formatted + "<br>";
if (contactInfo.phoneNumbers != null){
for (var j = 0; j < contactInfo.phoneNumbers.length; j++){
if ((j != 0) && ((contactInfo.phoneNumbers[j-1].value) == (contactInfo.phoneNumbers[j].value)))
console.log("same no");
else
s += "Contacts Type : " + contactInfo.phoneNumbers[j].type + " & No : " + contactInfo.phoneNumbers[j].value + "<br>";
}
}
if (contactInfo.emails != null){
for (var k = 0; k < contactInfo.emails.length; k++) {
if ( (k != 0) && ((contactInfo.emails[k-1].value) == (contactInfo.emails[k].value)))
console.log("same email");
else
s += "Email Type : " + contactInfo.emails[k].type + " & email : " + contactInfo.emails[k].value + "<br>";
}
}
if (contactInfo.birthday != null){
s += ", Birthday : " + contactInfo.birthday;
}
s += "<br><br>"
}
}
document.getElementById("results").innerHTML=s;