2013-02-12 11 views
9

Có cách nào để chỉ hiển thị các số liên lạc có số điện thoại không?PhoneGap - chỉ hiển thị các số liên lạc có số điện thoại

Ngay bây giờ tôi đang nhận được tất cả các địa chỉ liên lạc và sau đó lặp lại từng và tìm ra số điện thoại của họ, nhưng tôi đã tự hỏi nếu có một cách để vượt qua một tham số để contactFindOptions đối tượng để nó chỉ chọn lên địa chỉ liên lạc có số điện thoại ?

Đây là cách mã của tôi hiện trông giống như:

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); 

       } 
      } 
    } 
} 

Trả lời

0

Tôi tin Cordova API không cho phép lọc để thực hiện những gì bạn yêu cầu.

Từ tài liệu của họ vào đây: http://docs.phonegap.com/en/2.5.0/cordova_contacts_contacts.md.html#contacts.find

Nó nói:

Chuỗi contactFindOptions.filter thể được sử dụng như một bộ lọc tìm kiếm khi truy vấn cơ sở dữ liệu địa chỉ liên lạc. Nếu được cung cấp, trường hợp khớp giá trị một phần không phân biệt chữ hoa chữ thường được áp dụng cho từng trường được chỉ định trong tham số contactFields. Nếu một kết quả trùng khớp được tìm thấy trong một so sánh với bất kỳ trường nào được chỉ định, thì số liên lạc sẽ được trả về.

Tôi không tin rằng bạn có thể sử dụng điều này để xác định không trống cho trường số điện thoại.

2

có, chúng tôi có thể sử dụng tùy chọn lọc hasPhoneNumber. đoạn mã như sau:

  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); 

Lưu ý: hasPhoneNumber (chỉ Android): Bộ lọc tìm kiếm để chỉ trả lại địa chỉ liên lạc với một số điện thoại thông báo. (Boolean) (Mặc định: sai)