Cordova Contacts插件ContactFindOptions

时间:2014-07-10 22:03:44

标签: javascript cordova contact

我正在使用Cordova作为我的应用程序,我正在尝试使用用户的联系人填充列表视图。我正在使用ContactFindOption()函数,我尝试了示例代码。

这是我的代码:

function onDeviceReady() {
    var options = new ContactFindOptions();
    options.filter="";          // empty search string returns all contacts
    options.multiple=true;      // return multiple results
    filter = ["displayName","phoneNumber"];   // return contact.displayName field

    navigator.contacts.find(filter, onSuccess, onError, options);
}

var contactsArray = [];

function onSuccess(contacts) {
    for (var i=0; i<contacts.length; i++) {
        if (contacts[i].displayName) {
            contactArray.push(contacts[i]);
        }
    }
    alert(contactsArray);
}

当我运行应用程序时,有一个控制台日志,上面写着

Uncaught ReferenceError: ContactFindOptions is not defined.

提前致谢!

3 个答案:

答案 0 :(得分:1)

你没有为onError定义回调函数,就像你使用“onSuccess”函数一样

答案 1 :(得分:0)

您需要安装联系人插件

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts.git

答案 2 :(得分:0)

您已将过滤器设置为abstract class Campaign { protected $ages; protected $countries; protected $dailyBudget; protected $recipientsStatus = array(); // associative array or a composition of Recipients object public function startCampaign() { // check there is not another run $this->executeCampaign(); $this->collectRecipientsStatus(); $this->generateStatistics(); } abstract protected function executeCampaign(); abstract protected function collectRecipientsStatus(); abstract protected function generateStatistics(); } class EmailCampaign extends Campaign { protected $addresses; protected function executeCampaign() { $this->filterEmailsByCampaignData(); $this->sendEmails(); } protected function filterEmailsByCampaignData() { // populate $this->addresses based on ages, countries etc. } protected function sendEmails() { // send email to addresses } protected function collectRecipientsStatus() { // collect status and fill parent $recipientsStatus } protected function generateStatistics() { // generate statistics } } 这是不正确的。

这方面的文档有点过时了。继承人你想做什么。

首先,您需要为查找创建["displayName","phoneNumber"];函数。因为这是一个必需的功能。您可以像执行onError功能一样执行此操作。

其次,您的onSuccess不正确。而不是filter = ["displayName","phoneNumber"];,您需要声明filter。这将仅返回联系人的displayName和phoneNumber字段。

以下是您的完整代码的样子。

&#13;
&#13;
fields = ["displayName","phoneNumber"];
&#13;
&#13;
&#13;