Square的iPhone应用程序如何以编程方式检索用户的联系信息?

Kyl*_*tan 11 usability ios

当我在全新的iPhone上安装Square应用程序时,它会将我的名字,姓氏和电子邮件预填充到注册字段中.我必须输入的只是一个密码.那真的很整洁.

这是如何工作的,它如何知道我是谁?这是使用特权API吗?获取用户名AFAIK没有编程方式.

Joh*_*lla 12

我对此也很好奇,所以我早些时候自己检查了一下.这是一个非常聪明的伎俩.以下是它的工作原理:

  • 首先,Square访问您的iPhone名称.(这不是受保护的API.)

  • 对于大多数人来说,手机的默认名称与"Steve Smith的iPhone"类似.执行正则表达式匹配,解析出"Steve Smith".

  • 然后在您的联系人列表中搜索"史蒂夫史密斯".

  • 如果找到条目,则会返回该联系人的名字/姓氏和电子邮件地址.注册表格相应地预先填充.

  • 如果未找到条目,则注册表单将保持空白.同样,如果iPhone的名称不是默认格式 - 即使它只是一个字符 - 预填充机制也不会触发.

您可以通过将iPhone的名称更改为任意联系人来证明这一点,例如"Dave Wilson的iPhone",并注意到Dave Wilson的联系信息现在将预先填充.