云飞扬啊
云飞扬啊
  • 发布:2019-02-28 10:46
  • 更新:2021-12-28 15:51
  • 阅读:11194

uni-app获取手机通讯录(基于HTML5+)

分类:uni-app

官方API:https://www.html5plus.org/doc/zh_cn/contacts.html

话不多说,直接上代码

contacts.vue

<template>  
    <view>  
        <button type="primary" @tap="getContacts">获取联系人</button>  
        <block  v-for="(item,index) in list" :key="index">  
            <view>{{item.displayName}}</view>  
                <block v-for="(subitem,idx) in item.phoneNumbers" :key="idx">  
                    <view>{{subitem.value}}</view>  
                </block>  
        </block>  
    </view>  
</template>  

<script>  
    var Contacts  
    export default {  
        data() {  
            return {  
                list: []  
            }  
        },  
        onShow() {  
            uni.setNavigationBarTitle({  
                    title: '通讯录'  
            });  
        },  
        methods: {  
            getContacts: function() {  
                var that = this  
                // 获取通讯录对象  
                plus.contacts.getAddressBook( plus.contacts.ADDRESSBOOK_PHONE, function( addressbook ) {  
                    uni.showToast({  
                        title: '获取通讯录对象成功',  
                        duration: 2000  
                    })  
                    console.log('获取通讯录对象成功')  
                    console.log(addressbook)  
                    // 查找联系人  
                    addressbook.find(["displayName","phoneNumbers"],function(contacts){  
                        uni.showToast({  
                            title: '获取联系人成功',  
                            duration: 2000  
                        })  
                        console.log('获取联系人成功')  
                        console.log(JSON.stringify(contacts))  
                        that.list = contacts  
                    }, function () {  
                        uni.showToast({  
                            title: '获取联系人失败',  
                            duration: 2000  
                        })  
                    },{multiple:true});  
                }, function ( e ) {  
                    uni.showToast({  
                        title: '获取通讯录对象失败:' + e.message,  
                        duration: 2000  
                    })  
                });  
            }  
        }  
    }  
</script>  

<style>  

</style>

注:由于hx调试输出console.log()不能直接输出对象,故用JSON.stringify()转一下,好作调试输出。示意:console.log(JSON.stringify(contacts))

0 关注 分享

要回复文章请先登录注册

月牙哭

月牙哭

这代码不是直接就能用吗 你们不能用吗 ps: 在安卓app环境下
2021-12-28 15:51
月牙哭

月牙哭

回复 5***@qq.com :
app可用
2021-12-28 15:38
Turbo_Dev

Turbo_Dev

回复 wen59024 :
铁子你这解决没,我也有这个问题
2021-11-11 16:05
w***@163.com

w***@163.com

iosinput组件类型是小数点的数字怎么键盘没调起
2021-08-05 08:58
1***@163.com

1***@163.com

您好,可以加我吗hy534534有偿
2021-08-05 00:14
5***@qq.com

5***@qq.com

你好,这种写法适用于App还是H5页面啊?
2021-06-10 11:42
8***@qq.com

8***@qq.com

回复 wen59024 :
解决了吗?我的也是报这个错
2020-12-07 09:55
1***@qq.com

1***@qq.com

获取到的电话号码为什么是Null啊
2020-11-18 11:28
wen59024

wen59024

plus not define
2020-05-14 00:38