La gestione della rubrica dei contatti è affidata al servizio $cordovaContacts che mette a disposizione le funzionalità del plugin cordova-plugin-contacts. Prima di accedere al servizio è necessario installare il plugin tramite il seguente comando:
ionic plugin add cordova-plugin-contacts
Cercare un contatto in rubrica
Il metodo find() ci permette di cercare un contatto nella rubrica del dispositivo. Ad esempio esaminiamo il codice che possiamo usare per ottenere tutti i contatti che contengono il valore Mario
nel nome visualizzato:
$ionicPlatform.ready(function() {
$cordovaContacts.find({
filter: "Mario",
multiple: true,
fields: ["displayName"]
})
.then(function(result) {
$scope.contacts = result;
},
function(err) {
console.error("Errore nella ricerca in rubrica");
});
});
L'oggetto che passiamo al metodo find()
contiene:
Parametro | Descrizione |
---|---|
filter |
La stringa da ricercare |
fields |
I campi in cui effettuare la ricerca della stringa |
multiple |
L'indicazione che vogliamo tutti i contatti che soddisfano i criteri di ricerca e non soltanto il primo |
Il risultato ottenuto sarà un array dei contatti individuati.
Se invochiamo find()
senza alcun parametro otterremo l'elenco di tutti i contatti della rubrica.
Se si vuole ottenere un contatto selezionato dall'utente possiamo utilizzare il metodo pickContact()
. Questo metodo apre l'applicazione nativa per la selezione dei contatti e restituisce il contatto selezionato dall'utente. Il seguente è un esempio d'uso del metodo:
$ionicPlatform.ready(function() {
$cordovaContacts.pickContact()
.then(function(contact) {
$scope.selectedContact = contact;
},
function(err) {
console.error("Errore nella ricerca in rubrica");
});
});
Creare e cancellare un contatto
La creazione di un contatto può essere effettuata tramite i metodi create() e save() mentre per l'eliminazione possiamo utilizzare il metodo remove(). Il seguente è un esempio di codice che utilizza questi metodi:
$ionicPlatform.ready(function() {
var contatto = $cordovaContacts.create();
contatto.displayName = "Mario Rossi";
contatto.nickname = "Marione";
$cordovaContacts.save(contatto).then(function() {
console.log("Contatto salvato!");
},
function(err) {
console.error("Errore nel salvataggio in rubrica");
});
$cordovaContacts.remove(contatto).then(function() {
console.log("Contatto eliminato!");
},
function(err) {
console.error("Errore nell'eliminazione del contatto");
});
});
Infine, il metodo clone() consente di effettuare una copia di un contatto esistente.