PhoneGap – 只显示电话号码的联系人

有没有办法只显示具有电话号码的联系人

现在我得到所有的联系人,然后通过每个循环,找出他们的电话号码,但我想知道是否有一种方法来传递一个参数contactFindOptions对象,以便它只接通有电话号码的联系人?

这是我的代码目前的样子:

 var options = new ContactFindOptions(); options.filter=""; //Can i pass something here to pick only contacts with phone number options.multiple=true; var fields = ["displayName", "phoneNumbers"]; navigator.contacts.find(fields, onSuccess, onError, options); function onSuccess(contacts) { for (var i=0; i<contacts.length; i++) { console.log("Display Name = " + contacts[i].displayName); if(null != contacts[i].phoneNumbers) { for(var j=0;j<contacts[i].phoneNumbers.length;j++) { console.log("Name = " + contacts[i].displayName); console.log("Phone = " + contacts[i].phoneNumber[j].value); } } } } 

Solutions Collecting From Web of "PhoneGap – 只显示电话号码的联系人"

是的,我们可以使用hasPhoneNumber筛选器选项。 代码片段如下:

  var contactFindOptions = new ContactFindOptions(); contactFindOptions.filter = ""; contactFindOptions.multiple = true; contactFindOptions.hasPhoneNumber = true; navigator.contacts.find( ["phoneNumbers"], function (contacts) { // you will get contacts in this callback success function }, function (e) { if (e.code === ContactError.NOT_SUPPORTED_ERROR) { console.log("Searching for contacts is not supported."); } else { console.log("Search failed: error " + e.code); } }, contactFindOptions); 

注意:hasPhoneNumber(仅适用于Android):将search过滤为仅返回通知电话号码的联系人。 (布尔)(默认:false)

这个插件看起来是最好的方法: https : //github.com/dbaq/cordova-plugin-contacts-phone-numbers 。

它只search电话号码的联系人。

我相信cordovaAPI不允许过滤来完成你所需要的。

从他们的文档: http : //docs.phonegap.com/en/2.5.0/cordova_contacts_contacts.md.html#contacts.find

它说:

在查询联系人数据库时,contactFindOptions.filterstring可以用作searchfilter。 如果提供,则不区分大小写的部分值匹配应用于contactFields参数中指定的每个字段。 如果在与任何指定字段的比较中find匹配项,则返回联系人。

我不相信你可以使用它来确定电话号码字段非空。