Почему я могу загружать контакты со своего телефона Android с помощью Cordova Contact API, но не на ios?

#javascript #cordova

#javascript #кордова

Вопрос:

Я создаю кроссплатформенное приложение для телефона, используя dhtml и steroids.js который построен поверх Phonegap. Я пытаюсь использовать Cordova Contact API для загрузки контактов с моего телефона в элемент ul. Вот код, который у меня есть внутри тегов head. Это отлично работает, когда я загружаю свое приложение на свое устройство Android, но не на iphone4 или 5.

 <script type="text/javascript" charset="utf-8">
 // Wait for Cordova to load
 //
document.addEventListener("deviceready", onDeviceReady, false);

// Cordova is ready
//
function onDeviceReady() {
// find all contacts
var options = new ContactFindOptions();
options.filter=""; 
options.multiple=true;
var filter = ["*"];
navigator.contacts.find(filter, onSuccess, onError, options);
}

// onSuccess: Get a snapshot of the current contacts
//
function onSuccess(contacts) {

for (var i=0; i<contacts.length; i  ) {
//alert(contacts[i].displayName);

var mycontact = contacts[i].displayName;
alert(mycontact);

//Just making sure if a contact is null, it won't be appended to the ul. 
if(mycontact == null){
}   
else
{
// Using a little jQuery to append to contacts to the ul
$("#contactlist").append('<li style="background-color:rgb (184,249,255);height:70px;overflow:hidden;border-top:solid 1px; border-bottom:solid 1px background-color:rgb(184,249,255);"><p style="font-family: Arial;font-size: 18px;top: 5px;position:   relative;left: 10px;">'   mycontact   '</p></li>');
  }

 }

 // ele.innerHTML = str;
 }

// onError: Failed to get the contacts
//
function onError(contactError) {
alert('onError!');
}
</script>
  

Ответ №1:

Кажется, что использование filter = ["*"] фактически возвращает не все поля контактов. Попробуйте явно указать, какие поля вы хотите вернуть, например filter = ["displayName", "phoneNumbers"] .

Похоже, что это проблема Cordova, но я не смог быстро найти что-либо, подтверждающее мое предположение.

Комментарии:

1. Да, это не сработало : (На самом деле я пытаюсь получить телефонные номера сейчас, но не могу