通过手机号码

时间:2015-07-19 16:10:21

标签: cordova ionic-framework ionic cordova-plugins

我使用本教程http://austinknight.net/ionic-framwork-import-phone-contacts/,因此我的代码是:

    function onSuccess(contacts) {

        for (var i = 0; i < contacts.length; i++) {
            var contact = contacts[i];
            $scope.phoneContacts.push(contact);
        }
        $ionicLoading.hide();

    };
    function onError(contactError) {
        alert(contactError);
    };
    var options = {};
    options.multiple = true;
    $cordovaContacts.find(options).then(onSuccess, onError);

在此代码中,所有联系人都会转到$scope.phoneContacts,我只需要与手机号码联系,我检查了contact中的console.log变量,我发现号码存储在{ {1}}属性,但是这个属性是一个数组,在这个数组中我们有phoneNumbers属性,表示这个数字是移动的还是没有,

这是样本记录:

type

由于[Log] Object (console-via-logger.js, line 173) $$hashKey: "object:52" addresses: Array[1] birthday: 254145600000 categories: null displayName: null emails: Array[2] id: 1 ims: null name: Object nickname: null note: null organizations: Array[1] phoneNumbers: Array[2] 0: Object id: 0 pref: false type: "mobile" value: "(555) 564-8583" __proto__: Object 1: Object length: 2 __proto__: Array[0] photos: null rawId: null urls: null __proto__: Object 是一个数组,我不知道如何找到phoneNumbers的联系人。

2 个答案:

答案 0 :(得分:0)

在添加到范围var

之前,验证每个联系人是否都有手机号码
function contactHasMobileNumber(contact) {
    for (var i = 0; i < contact.phoneNumbers.length; i++) {
        var phoneNumber = contact.phoneNumbers[i];
        if (phoneNumber.type == "mobile") {
            return true;
        }
    }
    return false;
}

然后更新现有功能以检查它。

for (var i = 0; i < contacts.length; i++) {
    var contact = contacts[i];
    if (contactHasMobileNumber(contact)) {
        $scope.phoneContacts.push(contact);
    }
}

答案 1 :(得分:0)

请按以下方式更新您的代码:

function onSuccess(contacts) {

    for (var i = 0; i < contacts.length; i++) {
        var contact = contacts[i];
        if(contact.phoneNumbers != null)
          $scope.phoneContacts.push(contact);
    }
    $ionicLoading.hide();

};
function onError(contactError) {
    alert(contactError);
};
var options = {};
options.multiple = true;
$cordovaContacts.find(options).then(onSuccess, onError);