2013-02-12 21 views
9

Sadece telefon numarası olan kişileri göstermenin bir yolu var mı?PhoneGap - sadece telefon numaraları içeren kişileri göster

Şu anda tüm kişileri alıyorum ve her biri arasında döngü alıp telefon numaralarını buluyorum ama bir parametre contactFindOptions nesnesine geçirmenin bir yolu olup olmadığını merak ediyorum, böylece yalnızca telefon numarası olan kişileri alır ? Ben Cordova API filtreleme ne gerektirir gerçekleştirmek için izin vermez inanıyoruz

var options = new ContactFindOptions(); 
options.filter=""; //Can i pass something here to pick only contacts with phone number 
options.multiple=true; 
var fields = ["displayName", "phoneNumbers"]; 
navigator.contacts.find(fields, onSuccess, onError, options); 


function onSuccess(contacts) { 
    for (var i=0; i<contacts.length; i++) { 
     console.log("Display Name = " + contacts[i].displayName); 
     if(null != contacts[i].phoneNumbers) 
      { 
       for(var j=0;j<contacts[i].phoneNumbers.length;j++) 
       { 
         console.log("Name = " + contacts[i].displayName); 
         console.log("Phone = " + contacts[i].phoneNumber[j].value); 

       } 
      } 
    } 
} 

cevap

0

: gibi benim Kod şu anda nasıl göründüğünü

budur. http://docs.phonegap.com/en/2.5.0/cordova_contacts_contacts.md.html#contacts.find

Diyor ki: rehber veritabanını sorgularken

contactFindOptions.filter dize arama filtresi olarak kullanılabilir burada kendi belgelerine

. Sağlandığında, contactFields parametresinde belirtilen her alana büyük/küçük harfe duyarlı, kısmi değer eşleme uygulanır. Belirtilen alanlardan herhangi biriyle karşılaştırmada bir eşleşme bulunursa, kişi döndürülür.

Telefon numarası alanı için boş olmayan bir değer belirlemek için bunu kullanabileceğinizi düşünmüyorum.

2

Evet, hasPhoneNumber filtre seçeneğini kullanabiliriz.

  var contactFindOptions = new ContactFindOptions(); 
      contactFindOptions.filter = ""; 
      contactFindOptions.multiple = true; 
      contactFindOptions.hasPhoneNumber = true; 
      navigator.contacts.find(
        ["phoneNumbers"], 
        function (contacts) { 
         // you will get contacts in this callback success function 
        }, 
        function (e) { 
         if (e.code === ContactError.NOT_SUPPORTED_ERROR) { 
          console.log("Searching for contacts is not supported."); 
         } else { 
          console.log("Search failed: error " + e.code); 
         } 
        }, 
        contactFindOptions); 

Not: hasPhoneNumber (yalnızca Android): Sadece bilgili bir telefon numarasıyla kişileri dönmek için arama Filtreler şöyle Kod pasajıdır. (Boolean) (Varsayılan: false)