我正在使用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.
提前致谢!
答案 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字段。
以下是您的完整代码的样子。
fields = ["displayName","phoneNumber"];
&#13;