详解HTML5通讯录获取指定多个人的信息


Posted in HTML / CSS onDecember 20, 2016

本文介绍了HTML5通讯录获取指定多个人的信息,具体如下:

一、获取多个人的信息:要解决通讯录导入多个人的信息之前,要解决获取多个人的信息。我通过plus.contacts.getAddressBook和address.find的套用把通讯录里面的所有联系人的id和displayName获取出来,然后通过自己写的通讯录获取页面显示出来。

1、解决这个问题首先你要自己写一个js通讯录,这样可以把你所有联系人首字母分离出来,并且旁边可以跳转到你要的首字母。

2、解决获取所有联系人信息

plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(addressbook) { //获取通讯录信息
                // 可通过addressbook进行通讯录操作
                addressbook.find(null, function(contacts) {
                    var username = new Array();
                    var LinkList = new LinkedList();
                    if(contacts.length > 0) { //获取当前通讯录里面所有人
                        for(var i = 0; i < contacts.length; i  ) {
                            username[i] = contacts[i].displayName   "-"   contacts[i].id; //连接id和username,为后面筛选最准备
                        }
                        //这下面的代码是把所有联系人的信息分类,这就涉及到了自己写的JS页面代码
                        LinkList = sortPY(username); //把联系人数组分类
                        //LinkList.show();
                        createLiCheckBox(LinkList); //分类信息显示至页面,我使用checkBox进行多个联系人选择
                    }

                }, function(e) {
                    alert("Find contact error: "   e.message);
                });

            }, function(e) {

    });

二、从通讯录导入多个选定的个人信息:解决这个问题在先前创建通讯录页面的时候就一定要把联系人的id放在在页面上(使用display隐藏),这样我获取被选中的checkBox的时候就可以直接获取id,并且把这些id放到一个数组里面。再通过plus.contacts.getAddressBook和address.find的套用把这些id的联系人信息筛选出来。

1、解决使用checkBox获取联系人id,这里我使用了JQuery。

//筛选已经被选中的checkbox
    $("input:checked").each(function() {
            var index = $(this).parent().prev().children('label').text(); //获取id
            var name = $(this).parent().prev().children('p').text(); //获取姓名
            username.push(name);
            usernameIndex.push(index);
    });

2、解决把这些index放到find里面进行筛选信息,把特定id下面的联系人信息拿出来

plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(addressbook) { //获取通讯录信息
            for(var j = 0; j < username.length; j  ) {//循环所选取的联系人,记得循环一定要放在这里,一开始我放在        plus.contacts.getAddressBook外面是错误
                        addressbook.find(null, function(contacts) {
                            console.log("进入查询");
                            for(var i = 0; i < contacts.length; i  ) {//无论是否为多个信息,一定要循环数组
                                console.log("进入循环");
                                //var id = contacts[i].id;
                                var displayname = contacts[i].displayName;
                                var phone = "";
                                var emails = "";
                                var dates = "";
                                var remark = "";
                                if(contacts[i].phoneNumbers.length > 0) {//这里需要判断是否为空,为空的数组没有index=0;
                                    phone = contacts[i].phoneNumbers[0].value;
                                } else {
                                    phone = contacts[i].phoneNumbers;
                                }

                                if(contacts[i].emails.length > 0) {//这里需要判断是否为空,为空的数组没有index=0;
                                    emails = contacts[i].emails[0].value;
                                } else {
                                    emails = contacts[i].emails;
                                }

                                var dateNum = new Date(contacts[i].birthday);//这里的birthday是number类型!!!官方手册坑爹?
                                dates = dateNum.getFullYear()   "."   (dateNum.getMonth()   1)   "."   dateNum.getDate();
                                remark = contacts[i].note;

                                var getContact = {//把所有信息放到一个json里面
                                    contactName: displayname,
                                    sex: "",
                                    department: "",
                                    positions: "",
                                    tel: "",
                                    phone: phone,
                                    eMail: emails,
                                    birthday: dates,
                                    hobby: "",
                                    remark: remark
                                };

                                //这下面是我的业务代码了,这里大家可以写自己的信息
                                //createContactTable(db);
                                //InsertContact(db, getContact); //多个信息插入有线程安全的问题出现!!!!!!!
                            }
                            //console.log(username.length);                         
                        }, function(e) {
                            console.log("查询错误");
                        }, {  
                                                         //这里面的筛选非常重要!!!这样才能选出匹配的信息
                            filter: [{
                                logic: "or",
                                field: "id",
                                value: usernameIndex[j]
                            }],
                            multi: false
                        });
                    }
                }, function(e) {
                    console.log("打开通讯录错误");
                });

通过以上代码就可以获取到了多个联系人的信息,大家可以尝试一下。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
纯CSS3实现滚动的齿轮动画效果
Jun 05 HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
Sep 02 HTML / CSS
深入理解css属性的选择对动画性能的影响
Apr 20 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
Oct 08 HTML / CSS
html标签之Object和EMBED标签详解
Jul 04 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
Sep 03 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
Apr 24 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
May 12 HTML / CSS
HTML5 canvas基本绘图之绘制曲线
Jun 27 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 HTML / CSS
canvas绘制图片drawImage使用方法
Sep 15 HTML / CSS
纯CSS如何禁止用户复制网页的内容
Nov 01 HTML / CSS
详解HTML5表单新增属性
Dec 21 #HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
Dec 22 #HTML / CSS
详解HTML5 LocalStorage 本地存储
Dec 23 #HTML / CSS
HTML5应用之文件上传
Dec 30 #HTML / CSS
详解HTML5中的标签
Jun 19 #HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
Apr 10 #HTML / CSS
使用HTML5捕捉音频与视频信息概述及实例
Aug 22 #HTML / CSS
You might like
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
取选中的radio的值
2010/01/11 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
django使用channels2.x实现实时通讯
2018/11/28 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
Python 如何对文件目录操作
2020/07/10 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
介绍一下mysql的日期和时间函数
2013/03/28 面试题
小学教研工作制度
2014/01/15 职场文书
2014春晚主持词
2014/03/25 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
医院义诊活动总结
2014/07/04 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
推荐信范文大全
2015/03/27 职场文书
2015年统战工作总结
2015/05/19 职场文书
2019军训心得体会
2019/06/27 职场文书
Python中Permission denied的解决方案
2021/04/02 Python