访问本机联系人列表

时间:2013-12-26 07:01:31

标签: cordova

我正在尝试通过我的应用程序(基于HTML5,JqueryMobile和PhoneGap)从手机中获取联系人。我最初过滤了按名称的联系人,我的意思是硬编码名称,以便过滤名称,但不通过此本机应用程序获取号码。我认为访问联系人列表存在一些问题。有人可以通过一些代码帮助我解决这个问题。我正在为此应用以下JavaScript。

<script type="text/javascript"> 
   var options = new ContactFindOptions();
    options.filter="John"; 
   alert("options.filter = "+options.filter);
    var fields = ["displayName", "name"];
  //  var fields_number = ["displayNumber","number"];
    navigator.contacts.find(fields, onSuccess, onError, options);


}

      // onSuccess: Get a snapshot of the current contacts
//
function onSuccess(contacts) {
//alert("Success");
    for (var i=0; i<contacts.length; i++) {
        alert("Display Name = " + contacts[i].displayName);
        alert("Display Number = " + contacts[i].displayNumber);
    }
}

// onError: Failed to get the contacts
//
function onError(contactError) {
    alert('onError!');
}

</script>

2 个答案:

答案 0 :(得分:0)

此代码适用于我,我已经在iOS,Android和Blackberry设备上进行了测试。

var filter = ["id","displayName", "name"];
var options = new ContactFindOptions(); 
options.filter= "John";
options.multiple= true; 
navigator.contacts.find(   filter , 
function(contacts){
          console.log("contacts found::");
          console.log(contacts);                                                  
}, function(error){
    console.log("Contacts Error : "+error);
},options);

答案 1 :(得分:0)

显示phoneNumbers,正确的方法是使用&#34; for&#34;像这样

for(var i = 0; i < contacts.length; i++){ contacts[i].phoneNumbers[0].value }