使用$ cordova联系人获取电话号码

时间:2014-12-12 19:23:25

标签: angularjs cordova

我正在尝试使用ng-cordova获取手机中的所有联系人,我成功完成以下操作,我在AngularJS中创建了一项服务:

    .factory("ContactManager", function($cordovaContacts) {
    return {
        getContacts: function() {
            var options = {};
            options.filter = "";
            options.multiple = true;

            //get the phone contacts
            return $cordovaContacts.find(options);
        }
    }
})

find中的ng-cordova方法也不像以下那样:

 find: function (options) {
    var q = $q.defer();
    var fields = options.fields || ['id', 'displayName'];
    delete options.fields;

    navigator.contacts.find(fields, function (results) {
        q.resolve(results);
      },
      function (err) {
        q.reject(err);
      },
      options);

    return q.promise;
  }

在控制器内执行以下操作:

        ContactManager.getContacts().then(function(result){
            $scope.users= result;

        }, function(error){
            console.log(error);
        });

我注意到在$scope.users我找到formatted, middleName ...,但我找不到phoneNumber,我怎样才能得到phoneNumbers?

1 个答案:

答案 0 :(得分:1)

如果您log有联系人,则应该看到其中包含phoneNumbers 数组的对象。

   ContactManager.getContacts().then(function(result){
        $scope.users= result;
        console.log(result);
    ...

如果你不这样做,那就是别的了。

我还做了一个有点接近模拟 json 的回报。