详解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让登陆面板3D旋转起来
May 03 HTML / CSS
CSS3中的@keyframes关键帧动画的选择器绑定
Jun 13 HTML / CSS
利用纯CSS3实现tab选项卡切换示例代码
Sep 21 HTML / CSS
CSS3实现苹果手机解锁的字体闪亮效果示例
Jan 05 HTML / CSS
浅析border-radius如何兼容IE
Apr 19 HTML / CSS
详解HTML5中的拖放事件(Drag 和 drop)
Nov 14 HTML / CSS
HTML5实现移动端复制功能
Apr 19 HTML / CSS
详解WebSocket跨域问题解决
Aug 06 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
Sep 23 HTML / CSS
HTML5实现无刷新修改URL的方法
Nov 14 HTML / CSS
canvas简单连线动画的实现代码
Feb 04 HTML / CSS
小程序实现悬浮按钮的全过程记录
Oct 16 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创建基本身份认证站点的方法详解
2013/06/08 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
PHP实现简单日历类编写
2020/08/28 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
python zip文件 压缩
2008/12/24 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
浅析Python3 pip换源问题
2020/01/06 Python
django model object序列化实例
2020/03/13 Python
python新手学习可变和不可变对象
2020/06/11 Python
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
农救科工作职责
2013/11/27 职场文书
公务员培训心得体会
2013/12/28 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
建筑工地质量标语
2014/06/12 职场文书
cf战队收人口号
2014/06/21 职场文书
企业标语大全
2014/07/01 职场文书
中学生逃课检讨书
2015/02/17 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书