uni-app,小程序中的addPhoneContact,保存联系人到手机通讯录

方法详解

简介

addPhoneContact是uni-app框架提供的一个实用API,用于向系统通讯录添加联系人信息。这个方法在需要将应用内的联系人信息快速保存到用户设备通讯录的场景下非常有用,比如会员名片、商家联系方式保存等功能。

基本语法

uni.addPhoneContact(OBJECT)

参数说明

OBJECT参数对象支持以下属性:

属性名类型必填说明
firstNameString名字
lastNameString姓氏
mobilePhoneNumberString手机号
phoneNumberString电话号码
emailString电子邮件
organizationString公司/组织名
titleString职位
addressString地址
addressCountryString国家
addressStateString省份
addressCityString城市
addressStreetString街道
addressPostalCodeString邮政编码
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

基础用法

uni.addPhoneContact({
    firstName: '张',
    lastName: '三',
    mobilePhoneNumber: '13812345678',
    email: 'zhangsan@example.com',
    organization: 'XX科技有限公司',
    title: '前端工程师',
    success: () => {
        uni.showToast({
            title: '已添加到通讯录',
            icon: 'success'
        });
    },
    fail: () => {
        uni.showToast({
            title: '添加联系人失败',
            icon: 'none'
        });
    }
});

使用示例

// 保存联系人信息到通讯录
saveContact() {
    // 判断是否有权限或是否登录
    if (!this.isAuthorized) {
        uni.showModal({
            title: '提示',
            content: '您需要授权才能保存联系人',
            confirmText: '去授权',
            success: (res) => {
                if (res.confirm) {
                    this.requestAuthorization();
                }
            }
        });
        return;
    }
    
    // 添加联系人
    uni.addPhoneContact({
        firstName: this.memberInfo.name || '',
        mobilePhoneNumber: this.memberInfo.phone || '',
        title: this.memberInfo.position || '',
        organization: this.memberInfo.company || '',
        email: this.memberInfo.email || '',
        address: this.memberInfo.address || '',
        success: () => {
            uni.showToast({
                title: '已添加到通讯录',
                icon: 'success'
            });
        },
        fail: (err) => {
            console.error('添加联系人失败:', err);
            uni.showToast({
                title: '添加联系人失败',
                icon: 'none'
            });
        }
    });
}

平台差异说明

AppH5微信小程序支付宝小程序百度小程序抖音小程序QQ小程序

注意事项

权限问题:在某些平台上,调用此API可能需要用户授予通讯录访问权限。
必填字段:不同平台对必填字段的要求可能有所不同,但一般来说firstName是必填的。
iOS特殊处理:在iOS系统中,firstName和lastName会合并显示为一个名字。
用户体验:添加联系人前最好先向用户说明将要执行的操作,获得用户同意后再进行。
错误处理:务必添加fail回调处理添加失败的情况,并给予用户适当的反馈。

最佳实践

提前告知:在用户点击"保存联系人"按钮前,应明确告知用户该操作的目的和结果。
数据验证:在调用API前,应对要保存的联系人数据进行验证,确保至少有姓名和电话号码等基本信息。
优雅降级:对于不支持此API的平台,应提供替代方案,如复制联系信息到剪贴板。
状态反馈:操作成功或失败后,应给予用户明确的反馈,如使用toast提示。
通过合理使用addPhoneContactAPI,可以为用户提供便捷的联系人保存体验,提升应用的实用性和用户满意度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值