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.

  • Cómo solucionar los archivos / carpetas de autoomitar que empiezan con "_" (subrayado) en la carpeta de activos
  • La compilación de Cordova falla, no se puede encontrar $ {appt}
  • Phonegap descargar archivo de url a sdcard
  • Phonegap ejecutar android no funciona y no hay mensaje de error
  • Configuración de Android Home path en marco iónico
  • Cordova 4.3.0 Error: Instala Android target: "android-21"
  • Duplicado de animación después de la actualización a Android Jelly Beans
  • Algunos ionicones no mostrando
  • Abrir imagen con el visor de imágenes predeterminado en Android
  • Cordova ejecutar androide se ejecuta bien. Pero Android 4.1.2 no inicia la aplicación
  • Phonegap funciones no definidas en Phonegap construir aplicaciones - también pushNotifications no funcionan
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.