ng-cordova
Version:
[ngCordova](http://ngcordova.com/) ==========
78 lines (65 loc) • 2.14 kB
JavaScript
// install : cordova plugin add cordova-plugin-contacts
// link : https://github.com/apache/cordova-plugin-contacts
angular.module('ngCordova.plugins.contacts', [])
.factory('$cordovaContacts', ['$q', function ($q) {
return {
save: function (contact) {
var q = $q.defer();
var deviceContact = navigator.contacts.create(contact);
deviceContact.save(function (result) {
q.resolve(result);
}, function (err) {
q.reject(err);
});
return q.promise;
},
remove: function (contact) {
var q = $q.defer();
var deviceContact = navigator.contacts.create(contact);
deviceContact.remove(function (result) {
q.resolve(result);
}, function (err) {
q.reject(err);
});
return q.promise;
},
clone: function (contact) {
var deviceContact = navigator.contacts.create(contact);
return deviceContact.clone(contact);
},
find: function (options) {
var q = $q.defer();
var fields = options.fields || ['id', 'displayName'];
delete options.fields;
if (Object.keys(options).length === 0) {
navigator.contacts.find(fields, function (results) {
q.resolve(results);
},function (err) {
q.reject(err);
});
}
else {
navigator.contacts.find(fields, function (results) {
q.resolve(results);
}, function (err) {
q.reject(err);
}, options);
}
return q.promise;
},
pickContact: function () {
var q = $q.defer();
navigator.contacts.pickContact(function (contact) {
q.resolve(contact);
}, function (err) {
q.reject(err);
});
return q.promise;
}
// TODO: method to set / get ContactAddress
// TODO: method to set / get ContactError
// TODO: method to set / get ContactField
// TODO: method to set / get ContactName
// TODO: method to set / get ContactOrganization
};
}]);