2013-12-11 109 views
1

我无法获得所有联系人的麻烦。这里是我的代码PhoneGap - 联系人未加载

<!DOCTYPE html> 
<html> 
<head> 
    <title>Contact Example</title> 
    <script type="text/javascript" charset="utf-8" src="cordova-2.9.0.js"></script> 
    <!-- jQuery and jQuery Mobile --> 
    <script src="jquery-1.9.1.min.js"></script> 
    <script src="jquery.mobile-1.3.1.min.js"></script> 

    <script type="text/javascript" charset="utf-8"> 

     document.addEventListener("deviceready", getContactList, false); 

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

     function getContactFields(contacts) { 
      for (var i=0; i<contacts.length; i++) 
      { 
       alert(contacts.length); 
       alert("Name:" + contacts[i].displayName + "\n"+ 
         "Birthday:"+ contacts[i].birthday) 

       for (var j=0; j<contacts[i].phoneNumbers.length; j++) { 
        alert("Type: " + contacts[i].phoneNumbers[j].type + "\n" + 
         "Value: " + contacts[i].phoneNumbers[j].value); 
       } 
     } 

     alert("loaded"); 
    } 
    </script> 

请帮我在哪里我错了。

回答

2

最后我解决我的问题。如果任何人需要列出他的电话号码列表,那么这个代码将是有益的。以下是源代码。

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 
<title></title> 

<link rel="stylesheet" href="jquery.mobile-1.3.1.min.css"> 
<!-- jQuery and jQuery Mobile --> 
<script src="jquery-1.9.1.min.js"></script> 
<script src="jquery.mobile-1.3.1.min.js"></script> 

<!-- for codova plugins --> 
<script type="text/javascript" charset="utf-8" src="cordova-2.9.0.js"> </script>  

<script type="text/javascript" charset="utf-8"> 

    document.addEventListener("deviceready", onDeviceReady, false); 
    function onDeviceReady() { 
     var options = new ContactFindOptions(); 
     options.filter = "";   
     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++) 
     { 
      if (contacts[i].phoneNumbers) 
      { 
       for (var j=0; j<contacts[i].phoneNumbers.length; j++) 
       { 
        $('#contactlist').append(
        '<li>' + 
         '<a href="tel:'+ contacts[i].phoneNumbers[j].value +'">' + 

          '<h4>'+ contacts[i].displayName +'</h4>' + 
          '<h4>'+ contacts[i].phoneNumbers[j].value +'</h4>' + 
         '</a>' + 
        '</li>'); 
       } 
      } 
     } 
     $('#contactlist').listview('refresh'); 
    } 

    function onError(contactError) { 
     alert('Error in getting Phone Contacts'); 
    } 

</script> 

</head> 
<body> 
    <div id="contactListPage" data-role="page" > 

<div data-role="header" data-position="fixed"> 
    <h1>Contacts</h1> 
</div> 

<div data-role="content"> 
    <ul id="contactlist" data-role="listview" data-filter="true"></ul> 
</div>  

</div> 
</body> 
</html> 
0

尝试这个 -

document.addEventListener("deviceready", onDeviceReady, false); 
// Cordova is ready 
function onDeviceReady() { 
    var options = new ContactFindOptions(); 
    options.filter = "";   // empty search string returns all contacts 
    options.multiple = true;  // return multiple results 
    var fields = ["displayName", "name"]; // Optional If you want particular fields then use filters 
    navigator.contacts.find(fields, onSuccess, onError, options); 
} 

function onSuccess(contacts) { 

    alert(contacts.length); 
    for (var i = 0; i < contacts.length; i++) { 
    } 
} 

function onError(contactError) { 
    alert('Error in getting Phone Contacts'); 
} 

关注Link

+0

@Imdad Sarkar-如果您想要与生日或与其他字段的联系人进行联系,则可以对此进行分类并仅使用筛选器显示那些联系人。 – Suhas

+0

我以前使用过这个代码。我无法弄清楚我犯了什么错误。 –

+0

您的手机中有多少联系人,以及您使用此代码到达的程度如何? (在alert中) – Suhas