Javascript navigator.contacts.find不工作(cordova/phonegap)

Javascript navigator.contacts.find不工作(cordova/phonegap),javascript,android,cordova,android-contacts,contact,Javascript,Android,Cordova,Android Contacts,Contact,我正在尝试通过电话访问联系人。我正在使用下面的代码来执行此操作,但是navigator.contacts.find不起作用。它不会返回错误或成功消息。如果我将任何类型的警报放在该代码行之后,它将不会出现 function read_contacts(){ var options = new ContactFindOptions( ); options.filter = ""; //leaving this empty will find return all contacts optio

我正在尝试通过电话访问联系人。我正在使用下面的代码来执行此操作,但是navigator.contacts.find不起作用。它不会返回错误或成功消息。如果我将任何类型的警报放在该代码行之后,它将不会出现

function read_contacts(){

var options = new ContactFindOptions( );

options.filter = "";  //leaving this empty will find return all contacts

options.multiple = true;  //return multiple results

var filter = ["displayName"];    //an array of fields to compare against the options.filter 

navigator.contacts.find(filter, successFunc, errFunc, options); //breaking the code

function successFunc( matches ){
    alert("reading contacts...");
  for( var i=0; i<matches.length; i++){
    alert( matches[i].displayName );
  }

function errFunc(){
    alert("Error finding contacts");
    }
}

}
function read_contacts(){
var options=newcontactfindoptions();
options.filter=“”;//保留此项为空将查找并返回所有联系人
options.multiple=true;//返回多个结果
var filter=[“displayName”];//要与options.filter进行比较的字段数组
navigator.contacts.find(filter,successFunc,errFunc,options);//中断代码
函数successFunc(匹配项){
警报(“读取联系人…”);
对于(var i=0;iHTML

<ol id="contact"></ol>

JAVASCRIPT

function read_contacts(){
   var options = new ContactFindOptions();
   options.filter="";
   options.filter="";
   options.multiple=true;
   var fields = ["*"];  //"*" will return all contact fields
   navigator.contacts.find(fields, onSuccess, onError, options);
}

// display the address information for all contacts
function onSuccess(contacts) {
  //console.log(JSON.stringify(contacts))
   var li = '';
   $.each(contacts, function(key, value) {
        if(value.name){
            $.each(value.name, function(key, value) {
               if(key == 'formatted'){
                   name = value;
               }                      
            });
        }
        if(value.phoneNumbers){
            $.each(value.phoneNumbers, function(key, value) {
                phone = value.value;
            });
        }                    
        li += '<li style="text-decoration:none;">'+name+' '+phone+'</li>';
   }); 

   $("#contact").html(li);   
}

function onError(contactError) {
   alert('onError!');
}
function read_contacts(){
var options=new ContactFindOptions();
选项。过滤器=”;
选项。过滤器=”;
options.multiple=true;
var fields=[“*”];/“*”将返回所有联系人字段
navigator.contacts.find(字段、onSuccess、onError、选项);
}
//显示所有联系人的地址信息
成功时的功能(联系人){
//console.log(JSON.stringify(contacts))
var li='';
$。每个(联系人、功能(键、值){
if(value.name){
$.each(value.name,函数(键,值){
如果(键==“格式化”){
名称=值;
}                      
});
}
if(值.电话号码){
$.each(value.phoneNumber,函数(键,值){
电话=value.value;
});
}                    
li+='
  • '+name+'+phone+'
  • '; }); $(“#contact”).html(li); } 函数onError(contactError){ 警报('onError!'); }

    试试这个-

    function onDeviceReady() {
        var options = new ContactFindOptions();
        options.filter = "";          // empty search string returns all contacts
        options.multiple = true;      // return multiple results
        filter = ["displayName", "name"];   // return contact.displayName 
        navigator.contacts.find(filter, onSuccess, onError, options);
    }
    
    // onSuccess: Get a snapshot of the current contacts
    
    function onSuccess(contacts) {
           for (var i = 0; i < contacts.length; i++) {
                console.log("Display Name = " + contacts[i].displayName);
            }
    }
    
    // onError: Failed to get the contacts
    
    function onError(contactError) {
         alert('onError!');
    }
    
    函数ondevicerady(){
    var options=new ContactFindOptions();
    options.filter=”“;//空搜索字符串返回所有联系人
    options.multiple=true;//返回多个结果
    筛选器=[“displayName”,“name”];//返回contact.displayName
    navigator.contacts.find(过滤器、onSuccess、onError、选项);
    }
    //onSuccess:获取当前联系人的快照
    成功时的功能(联系人){
    对于(变量i=0;i

    请尝试使用此代码查找具有显示名称的所有联系人。

    您不会要求输入所需字段:

    options.desiredFields = [navigator.contacts.fieldType.id, navigator.contacts.fieldType.formatted, navigator.contacts.fieldType.name, navigator.contacts.fieldType.phoneNumbers];
    

    在config.xml中还包括与联系人相关的插件。请参阅上面的Phonegap文档。有趣的是,cordova文档是错误的。人们可能会在这些小事情上花费数小时。