PhoneGap – sólo muestra contactos con números de teléfono

¿Hay una manera de mostrar sólo los contactos que tiene número de teléfono?

Ahora mismo estoy recibiendo todos los contactos y luego bucle a través de cada uno y encontrar su número de teléfono, pero me preguntaba si hay una manera de pasar un parámetro a contactFindOptions objeto para que sólo recoge los contactos que tiene número de teléfono?

Así es como se ve mi código actualmente:

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

3 Solutions collect form web for “PhoneGap – sólo muestra contactos con números de teléfono”

Sí, podemos usar la opción de filtro hasPhoneNumber . El fragmento de código es el siguiente:

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

Nota: hasPhoneNumber (sólo para Android): Filtra la búsqueda para devolver sólo los contactos con un número de teléfono informado. (Boolean) (Valor predeterminado: false)

Este complemento parece el mejor enfoque: https://github.com/dbaq/cordova-plugin-contacts-phone-numbers .

Sólo busca contactos con números de teléfono.

Creo que la API de Cordova no permite el filtrado para lograr lo que usted requiere.

De su documentación aquí: http://docs.phonegap.com/es/2.5.0/cordova_contacts_contacts.md.html#contacts.find

Dice:

La cadena contactFindOptions.filter se puede utilizar como filtro de búsqueda al consultar la base de datos de contactos. Si se proporciona, se aplica una coincidencia de mayúsculas y minúsculas no sensible a mayúsculas y minúsculas en cada campo especificado en el parámetro contactFields. Si se encuentra una coincidencia en una comparación con cualquiera de los campos especificados, se devuelve el contacto.

No creo que pueda usar esto para determinar un campo no nulo para el número de teléfono.

  • Phonegap contact.save duplicate phoneNumbers cuando actualiza un contacto
  • ¿Cómo comprobar la conexión a Internet en una aplicación Cordova?
  • Android Cordova 5.0+ caída de la cámara
  • Error de INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES en PhoneGap
  • Uso de complementos con Cordova CLI
  • PhoneGap 3 Error de implementación / instalación de Android
  • Actualización de Cordova Local Notification Android Plugin 2.2
  • Nuevo PhoneGap 3.0 No se puede resolver la importación org.apache.cordova
  • Visual Studio 2015 RTM Cordova proyecto no depurar / desplegar a Android, Windows, Windows Phone
  • Ocultar indicador de descarga de la barra de estado
  • ¿Cómo utilizar iconos personalizados en jQuery móvil?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.