使用JavaScript读取手机联系人列表
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
在以前使用JavaScript从手机访问联系人数据是不可想象的。现在有了联系人选择器API,我们可以使用JavaScript来实现这个功能。 此功能在需要联系人信息(如电话号码或VoIP)的应用程序,通过这个功能我们可以在社交平台中发现通讯录中的好友(前提需要社交平台有对应的手机号码字段),或者需要填写联系人表单信息时则无需切换应用程序即可获取到相应的数据。 API和设备将限制可用的属性。开发者可以选择以下五个标准属性:
以上返回的都是数组形式,因为联系人可以有多个电话、电子邮件或多个地址。为了保持一致性,即使它是单个值,返回的数据始终是一个数组。 隐私和安全存储在手机上的联系人信息可能包含敏感信息,我们必须小心处理。我们需要必须考虑到隐私和安全问题:
当他们第一次使用使用联系人选择器API的网站时,他们可能会收到这样的提示: 手机会在每次使用联系人选择器API代码时显示这个弹出窗口,直到用户点击“允许”。联系人选择器API在未允许之前不会运行。这个一次性的,授权之后不会再弹出。 API和代码联系人选择器API只定义了两个方法:
两种方法都返回 如前面隐私和安全部分所述,在调用API之前需要用户操作,因此如果没有用户交互,我们就无法触发任何内容,因此我们新增一个按钮: <button onclick="getContactData()">Show contact data</button> 主要的代码将在
接下来是核心的按钮逻辑:
一旦按钮触发了这个功能,如果浏览器有权限,联系人选择页将会显示出来,展示基本信息:阅读数据的URL,它将返回什么数据,以及要从中挑选的联系人列表。 关闭弹窗后, 这是选择了联系人后的结果示例: [ { "address": [], "email": [ "alvarosemail@gmail.com" ], "icon": [], "name": [ "Alvaro Montoro" ], "tel": [ "555-555-5555", "555-123-4567" ] } ] 如果数据包含图标,则它将是带有图像的 选择多个联系人可以选择多个联系人。我们需要向 const props = ["tel", "address", "icon", "name", "email"]; const options = { multiple: true }; const contacts = await navigator.contacts.select(props, options); 结果是一个联系人数组,和上面的示例返回结果是一样的。 总结联系信息是个人身份信息,我们必须以敏感数据所需的所有谨慎和安全性来处理它。
假设一个Web应用程序试图在选择电话号码时读取地址、姓名或电子邮件。如果这种情况发生在我身上,我会拒绝授权并离开这个网站。
该文章在 2024/9/2 10:47:46 编辑过 |
关键字查询
相关文章
正在查询... |