我想使用$cordovaContacts
。
我用离子创建了一个应用程序。然后我将“ng-cordova.min.js
”复制到“www
”文件夹中。我在'index.html'中调用它。
然后我将http://ngcordova.com/docs/plugins/contacts/
复制到我的控制器js文件。
然后我将此代码复制到我的app js文件中:
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
};
}]);
最后我写了这段代码:
<ion-item ng-repeat="contact in contacts">
{{contact.name}}
</ion-item>
但它在我的Android设备上不起作用。 (我没有尝试其他设备。我现在不需要其他设备。)
和控制台错误:
我在互联网上研究过。但我不能使用任何cordova或离子插件。我是新人,对不起英语。