>웹 프론트엔드 >H5 튜토리얼 >HTML5 주소록은 지정된 여러 사람의 정보를 얻습니다.

HTML5 주소록은 지정된 여러 사람의 정보를 얻습니다.

不言
不言원래의
2018-07-03 11:25:403640검색

이 글에서는 특정 여러 사람의 정보를 얻을 수 있는 HTML5+ 주소록에 대한 자세한 설명을 주로 소개합니다. 이는 실용적 가치가 높으며 도움이 필요한 친구들이 참고할 수 있습니다.

이 글에서는 지정된 여러 사람의 정보를 얻기 위한 HTML5 주소록을 소개합니다. 자세한 내용은 다음과 같습니다.

1. 여러 사람의 정보를 가져오기 전에, 주소록에 여러 사람의 정보를 가져오기 전에 필요합니다. 여러 사람의 정보를 얻는 문제를 해결합니다. plus.contacts.getAddressBook과 address.find의 애플리케이션을 통해 주소록에 있는 모든 연락처의 ID와 표시 이름을 얻은 후, 내가 작성한 주소록 획득 페이지를 통해 표시했습니다.

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) {

    });

2. 주소록에서 선택한 여러 개인 정보 가져오기: 이 문제를 해결하려면 이전에 주소록 페이지를 만들 때 해당 페이지에 연락처의 ID를 입력해야 합니다. 표시를 사용하여 숨기기) 선택한 체크박스를 얻을 때 ID를 직접 가져와 이 ID를 배열에 넣을 수 있습니다. 그런 다음 plus.contacts.getAddressBook 및 address.find의 애플리케이션을 통해 이러한 ID의 연락처 정보를 필터링합니다.

1. 연락처 ID를 얻기 위해 checkBox를 사용하는 문제를 해결하기 위해 여기서는 JQuery를 사용했습니다.

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

2. 이러한 색인을 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("打开通讯录错误");
                });

이상이 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되길 바랍니다. , 더 많은 관련 콘텐츠 PHP 중국어 웹사이트를 주목해주세요!

관련 권장 사항:

메시지 및 답글에 대한 페이지 스타일의 HTML5 구현

html5 호출 앱 공유 기능 소개

위 내용은 HTML5 주소록은 지정된 여러 사람의 정보를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.