如何使用 phonegap 作为复选框列表显示从 android 设备获取的联系人?

Posted

技术标签:

【中文标题】如何使用 phonegap 作为复选框列表显示从 android 设备获取的联系人?【英文标题】:How to display the fetched contacts from android device using phonegap as a checkbox list? 【发布时间】:2015-04-09 06:08:57 【问题描述】:

我已从设备中获取联系人,但它们完全列在单个控件中。我必须在复选框控件的循环结构中列出它们。下面是我的脚本

<script type="text/javascript" charset="utf-8">
    document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() 
        alert("welcome");
                    var options = new ContactFindOptions();
                    options.filter="";
                    options.multiple=true;
                    var fields = ["*"];
                    navigator.contacts.find(fields, onSuccess, onError, options);                      
                
    function onSuccess(contacts) 
    
        alert('Total Contacts '+contacts.length);
               for (var i = 0; i < contacts.length; i++) 
               
                   contacts = contacts.sort(compare);                           
                   if(contacts[i].phoneNumbers)
                    
                     document.getElementById("demo").innerhtml += "</br>" + contacts[i].displayName;
                     for( var j = 0; j < contacts[i].phoneNumbers.length; j++)
                        
                         document.getElementById("demo").innerHTML += " - " +contacts[i].phoneNumbers[j].value;
                     // document.getElementById("demo").innerHTML += " - " +contacts[i].phoneNumbers[j].type;
                          
                      
               
     
    function compare(a,b)   
         if (a.displayName > b.displayName)
            return 1;
          if (a.displayName < b.displayName)
             return -1;    
         // return 0;
        
    function onError()
    
    alert("Some Error Occured");
    
</script>

下面是html正文结构

<body>
<h1>Example</h1>
<p >Create Contact</p>
<p id="demo"> </p><p id="demo_no">no.</p></body>

请帮帮我..提前谢谢

【问题讨论】:

您希望最终列表是什么样的? 我想在一个新的复选框上显示每条记录。这样我就可以选择多个并创建组。我还需要将此数据从 index.js 发送到新创建的页面,即contact.html。现在你得到我想要的了吗? 【参考方案1】:

将您的演示元素更改为 jQM controlgroup

<h1>Example</h1>
<p >Create Contact</p>         
<div id="demo" data-role="controlgroup"></div>

然后在你的脚本中,

您只需要对联系人进行一次排序,因此将排序调用移到 for 循环之外。

为每个带有电话号码的联系人,创建一个复选框输入和一个标签。

最后将所有复选框和标签添加到控制组的container元素,告诉jQM到enhance复选框,然后刷新控制组:

var html = '';
contacts = contacts.sort(compare); 
for (var i = 0; i < contacts.length; i++) 

    if(contacts[i].phoneNumbers)
    
        html += '<input type="checkbox" name="chk' + i + '" id="chk' + i + '">';
        html += '<label for="chk' + i + '">' + contacts[i].displayName;
        for( var j = 0; j < contacts[i].phoneNumbers.length; j++)
        
            html += " / " + contacts[i].phoneNumbers[j].value;
        
        html += "</label>";
    

$("#demo").controlgroup("container").empty().append(html);    
$("#demo").enhanceWithin().controlgroup( "refresh" );

工作DEMO

【讨论】:

以上是关于如何使用 phonegap 作为复选框列表显示从 android 设备获取的联系人?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 phonegap 从 Facebook API 获取朋友出生日期列表

Phonegap:显示相机胶卷中的照片列表?

如何在复选框列表中显示数据库中的值?

如何使用 jquery 从 php 变量中显示 div

从db查询中检索数据以获取复选框列表

如何使用 iOS 的 phonegap 在弹出窗口中打开 PDF 文件