Rájöttem, hogy a kettő között mi a különbség.
A kódban, amit Te mutattál, ez van:
options.filter="";
var fields = ["phoneNumbers", "name"];
a példakódban ez:
filter = ["displayName"]; // return contact.displayName field
Itt mondjuk elcseszték, filter helyett itt fields akart szerintem lenni az elnevezés, de mindegy, nem is ez a lényeg.
Tehát ott displayName-et használnak, nálad a sima name van. Lehet, hogy a name valamiért üres (ezért nem jelenik meg nálad), a displayName viszont nem.
Ezért az itt lévő kódodat közelítsük meg másképpen, próbáld átírni így a JavaScript-kódot:
function onDeviceReady() {
var options = new ContactFindOptions();
options.filter = "";
var fields = ["displayName", "phoneNumbers", "name"];
navigator.contacts.find(fields, onSuccess, onError, options);
}
function onSuccess(contacts) {
var ul = document.getElementById("list");
for (var index = 0; index < contacts.length; index++) {
var name = contacts[index].name.formatted;
var phoneNumber = contacts[index].phoneNumbers[0].value;
var li = document.createElement('li');
li.innerHTML = "<a href=\"tell://" + phoneNumber + "\>name: " + name + ", name in other form: " + contacts[index].name + " displayName: " + contacts[index].displayName + ";</a>, ";
ul.appendChild(li);
}
}
function onError(error) {
alert('hiba!');
}
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
}
===
(#2466) SektorFlop : az entries tömb hosszát adja meg.