我使用本教程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
的联系人。
答案 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);