获取手机联系人+滚动选择器(MUI移动开发框架)
2015-11-21 00:33
387 查看
有的时候卡了一下午的bug,过一会回头一眼就看出问题了,不知道是该高兴还是悲哀,以下是获取手机联系人并加入滚动选择器(picker)的部分代码,没有整理,注意联系人数据中的phoneNumber这个属性,0是手机号码,1是住宅号码,必须判断是否为undefined,漏判undefined可能导致后面的逻辑执行不下去,下午我就是把返回按钮的监听放联系人提取后面,联系人出现undefined,我连返回都返回不了了 showUserPickerButton.addEventListener('tap', function(event) { //提取用户手机联系人 传给数据源contact_arr plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(addressbook) { addressbook.find(["displayName", "phoneNumbers"], function(contacts) { for (var i = 0; i < contacts.length; i++) { //contact_arr_text是contact_arr数据源中每一个item用于显示的值 此处为联系人名称+手机号 //这里一定要判断联系人名称不为空 一旦漏判undefined后面所有逻辑都不会执行!! if (contacts[i] !== undefined && contacts[i].displayName !== undefined) { //判断用户的手机号码不为空时 取手机号码 if (contacts[i].phoneNumbers[0] !== undefined) { var contact_arr_text = contacts[i].displayName + "\t" + contacts[i].phoneNumbers[0].value; } //若手机号为空 则判断住宅号是否为空 不为空就用住宅号码 若住宅号码也为空 这个用户就不显示了 else if (contacts[i].phoneNumbers[1] !== undefined) { var contact_arr_text = contacts[i].displayName + "\t" + contacts[i].phoneNumbers[1].value; } } console.log(contact_arr_text); //将数据传给数据源 contact_arr[i] = { value: i, text: contact_arr_text }; } //联系人数据提取关闭加载到选择器中 userPicker.setData(contact_arr); userPicker.show(function(items) { // userResult.innerText = JSON.stringify(items[0]); //返回 false 可以阻止选择框的关闭 //return false; }); }, false); }, function(e) { plus.ui.toast("未能获取到联系人数据!"); }) }, function(e) { plus.ui.toast("未能获取到手机通讯录!"); }) |
相关文章推荐
- ios UILabel显示html文本
- [Leetcode]Unique Path II
- iOS9 UIWindow rootViewController
- Qt---- 点击按钮调用另一个窗口Ui
- 基于UEditor的单独图片上传实现
- ios UIView 和 UIButton边框和阴影设置
- Elasticsearch Span Query跨度查询
- Android 中消息模型的四大核心对象:Message、MessageQueue、Looper、Handler
- GPUImage简单滤镜使用(二)
- 一个简单的创建圆角图像的UIImage扩展实现
- iOS UIScrollView实用之图片轮播 —— HERO博客
- UI 第九天 UITableView
- Confluence 5.X破解安装
- UVA-1584 - Circular Sequence
- iOS开发UI篇—popoverController简单介绍
- 表视图1 (UITabelView)
- 我的iOS学习历程 - UITableView(数据model的使用)
- UIPasteboard的使用
- 1101. Quick Sort (25)
- 1101. Quick Sort (25)