Contact
Contiene propiedades que describen un contacto, como su información personal o de trabajo.
Atributos
- id: Un identificador unico y global. (DOMString)
- displayName: El nombre de este contacto. Ideal para mostrar al usuario final. (DOMString)
- name: Un objeto conteniendo todos las partes del nombre de una persona. (ContactName)
- nickname: Un apodo por el que conoces a la persona. (DOMString)
- phoneNumbers: Un array de todos sus números de teléfono. (ContactField[])
- emails: Un array de todas sus direcciones de email. (ContactField[])
- addresses: Un array de todas sus direcciones de contacto. (ContactAddresses[])
- ims: Un array de todas las direcciones de mensajeria instantanea. (ContactField[])
- organizations: Un array con todos sus nombres de organizaciones. (ContactOrganization[])
- birthday: La fecha de nacimiento del contacto. (Date)
- note: Una nota sobre este contacto. (DOMString)
- photos: Un array de fotos del contacto. (ContactField[])
- categories: Un array de todas las categorías del contacto. (ContactField[])
- urls: Un array de sitios webs asociados a este contacto. (ContactField[])
Metodos
- clone: Retorna un nuevo objeto del contacto, es una copia de este contacto con la propiedad ID
null
. - remove: Elimina el contacto de la base de datos del dispositivo. Se disparara una función ‘callback’ de error si no se pudo eliminar.
- save: Guarda el contacto en la base de datos, o actualiza el contacto si ya existe un contacto con la misma id.
Detalles
El objeto Contact
representa un contacto. Los contactos pueden ser creados, guardados o eliminados de la base de datos del dispositivo. También pueden ser retornados (Individualmente o en masa) llamando al método contacts.find
.
Nota: No todos los campos de contactos están soportados en todas las plataformas. Comprueba las peculiaridades de cada plataforma para saber que campos están soportados.
Plataformas Soportadas
- Android
- BlackBerry WebWorks (OS 5.0 y superior)
- iOS
Ejemplo Rápido de Guardado
function onSuccess(contact) {
alert("Se guardo satisfactoriamente");
};
function onError(contactError) {
alert("Error = " + contactError.code);
};
// crea un nuevo objeto contacto
var contact = navigator.contacts.create();
contact.displayName = "Plumber";
contact.nickname = "Plumber"; // especifica ambos para soportar todos los dispositivos
// Rellena varios campos
var name = new ContactName();
name.givenName = "Jane";
name.familyName = "Doe";
contact.name = name;
// guarda en el dispositivo
contact.save(onSuccess,onError);
Ejemplo Rápido de Clonación
// Clona el objeto contacto
var clone = contact.clone();
clone.name.givenName = "John";
console.log("Nombre del contacto original = " + contact.name.givenName);
console.log("Nombre del contacto clonado = " + clone.name.givenName);
Ejemplo Rápido de eliminación
function onSuccess() {
alert("Se elimino satisfactoriamente");
};
function onError(contactError) {
alert("Error = " + contactError.code);
};
// elimina el contacto del dispositivo
contact.remove(onSuccess,onError);
Ejemplo Completo
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo de Contacts</title>
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">
// Espere a que PhoneGap se inicie
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap esta listo
//
function onDeviceReady() {
// crea
var contact = navigator.contacts.create();
contact.displayName = "Plumber";
contact.nickname = "Plumber"; //especifica ambos para soportar todos los dispositivos
var name = new ContactName();
name.givenName = "Jane";
name.familyName = "Doe";
contact.name = name;
// guarda
contact.save(onSaveSuccess,onSaveError);
// clona
var clone = contact.clone();
clone.name.givenName = "John";
console.log("Nombre del contacto original = " + contact.name.givenName);
console.log("Nombre del contacto clonado = " + clone.name.givenName);
// elimina
contact.remove(onRemoveSuccess,onRemoveError);
}
// onSaveSuccess: Obtiene el contacto guardado satisfactoriamente
//
function onSaveSuccess(contact) {
alert("Se guardo satisfactoriamente");
}
// onSaveError: Fallo al guardar el contacto
//
function onSaveError(contactError) {
alert("Error = " + contactError.code);
}
// onRemoveSuccess: Obtiene el contacto eliminado satisfactoriamente
//
function onRemoveSuccess(contacts) {
alert("Eliminado satisfactoriamente");
}
// onRemoveError: Fallo al eliminar el contacto
//
function onRemoveError(contactError) {
alert("Error = " + contactError.code);
}
</script>
</head>
<body>
<h1>Ejemplo</h1>
<p>Búsqueda de Contactos</p>
</body>
</html>
Peculiaridades Android 2.X
- categories: Esta propiedad no esta soportada por dispositivos Android 2.X, y siempre retornara
null
.
Peculiaridades Android 1.X
- name: Esta propiedad no esta soportada por dispositivos Android 1.X, y siempre retornara
null
. - nickname: Esta propiedad no esta soportada por dispositivos Android 1.X, y siempre retornara
null
. - birthday: Esta propiedad no esta soportada por dispositivos Android 1.X, y siempre retornara
null
. - photos: Esta propiedad no esta soportada por dispositivos Android 1.X, y siempre retornara
null
. - categories: Esta propiedad no esta soportada por dispositivos Android 1.X, y siempre retornara
null
. - urls: Esta propiedad no esta soportada por dispositivos Android 1.X, y siempre retornara
null
.
Peculiaridades BlackBerry WebWorks (OS 5.0 y superior)
- id: Soportada. Asignada por el dispositivo cuando un contacto es guardado.
- displayName: Soportada. Almacenada en el campo user1.
- nickname: Esta propiedad no esta soportada, y siempre retornara
null
. - phoneNumbers: Soportada parcialmente. Los números de teléfonos seran almacenados en los campos homePhone1 y homePhone2 si el type es ‘home’, workPhone1 y workPhone2 si el type es ‘work’, mobilePhone si el type es ‘mobile’, faxPhone si el type es ‘fax’, pagerPhone si el type es ‘pager’, y otherPhone si el type no es ninguno de los anteriores.
- emails: Soportada parcialmente. Los primeros tres direcciones de emails serán almacenadas en los campos email1, email2, y email3 respectivamente.
- addresses: Soportada parcialmente. La primera y la segunda dirección serán almacenadas en los campos homeAddress y workAddress respectivamente.
- ims: Esta propiedad no esta soportada, y siempre retornara
null
. - organizations: Soportada parcialmente. el campo name y title de la primera organización serán almacenadas en los campos company y title respectivamente.
- photos: Soportada Parcialmente. Solo se permite una miniatura de foto. Para poner una imagen del contacto pásala codificada en Base64, o la ruta URL que apunta a la imagen. La imagen sera dimensionada antes de guardarla en la base de datos de BlackBerry. La foto de contacto sera retornada como Base64.
- categories: Soportada parcialmente. Solo están soportadas las categorías ‘Business’ y ‘Personal’.
- urls: Soportada parcialmente. Solo la primera URL se almacenara en el campo webpage.
Peculiaridades iOS
- displayName: Esta propiedad no esta soportada por iOS y siempre retornara
null
a menos que no halla un ContactName especificado. Si no hay ningún ContactName, entonces respectivamente el nombre compuesto, el nickame o "" como valor de displayName. - birthday: Cuando introduzcas esta propiedad, esta debe ser dada como un objeto Date de JavaScript. También se retorna como un objeto Date de JavaScript.
- photos: La foto se guarda en el directorio temporal de aplicaciones, y retorna una URL hacia esta. El contenido de este directorio temporal se eliminara cuando la aplicacion termine.
- categories: Esta propiedad no esta soportada, y siempre retornara
null
.