#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. Да, это не сработало : (На самом деле я пытаюсь получить телефонные номера сейчас, но не могу