Как приложение Square iPhone программно извлекает информацию о контакте пользователя?

Когда я устанавливаю приложение Square на совершенно новом iPhone, он предварительно заполняет мое имя, фамилию и электронную почту в поля регистрации. Все, что я должен ввести, это пароль. Это действительно аккуратно.

Как это работает и как он знает, кто я? Это использование привилегированного API? Нет никакого программного способа получить имя пользователя, AFAIK.

Ответ 1

Мне тоже было интересно об этом, поэтому я проверил его раньше. Это очень умный трюк. Вот как это работает:

  • Сначала Square обращается к имени вашего iPhone. (Это не защищенный API.)

  • Для большинства людей имя телефона по умолчанию является чем-то вроде строки "Steve Smith iPhone". Выполняется регулярное выражение, разбор "Стив Смит".

  • "Steve Smith" затем выполняется поиск в вашем списке контактов.

  • Если запись найдена, она возвращает первые/последние имена и адрес электронной почты для этого контакта. Форма регистрации предварительно заполняется.

  • Если запись не найдена, форма регистрации останется пустой. Аналогично, если имя вашего iPhone - это нечто иное, чем формат по умолчанию - даже если он отключен только одним символом - механизм предварительной обработки не будет срабатывать.

Вы можете доказать, что это работает, изменив имя вашего iPhone на произвольный контакт, как в "Dave Wilson iPhone", и заметив, что контактная информация Дейва Уилсона теперь будет предварительно заполнена.