Как приложение Square для iPhone программно получает контактную информацию пользователя? - PullRequest
11 голосов
/ 26 марта 2012

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

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

1 Ответ

12 голосов
/ 27 марта 2012

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

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

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

  • Затем в списке контактов ищется «Стив Смит».

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...