2012-03-26 17 views
11

Wenn ich die Square App auf einem brandneuen iPhone installiere, werden mein Vorname, Nachname und E-Mail in die Anmeldefelder eingetragen. Ich muss nur ein Passwort eingeben. Das ist wirklich nett.Wie ruft die iPhone-App von Square programmatisch die Kontaktinformationen des Benutzers ab?

Wie funktioniert das, und woher weiß es, wer ich bin? Verwendet dies eine privilegierte API? Es gibt keinen programmatischen Weg, um den Namen eines Benutzers, AFAIK, zu erhalten.

Antwort

12

Ich war eigentlich auch neugierig, also habe ich es vorher selbst überprüft. Es ist ein sehr schlauer Trick. Und so funktioniert es:

  • Zuerst greift Square auf den Namen Ihres iPhones zu. (Dies ist keine geschützte API.)

  • Für die meisten Menschen ist der Standardname des Telefons etwas in Anlehnung an "Steve Smiths iPhone". Eine Übereinstimmung mit regulärem Ausdruck wird ausgeführt, wobei "Steve Smith" analysiert wird.

  • "Steve Smith" wird dann in Ihrer Kontaktliste gesucht.

  • Wenn ein Eintrag gefunden wird, werden der Vor-/Nachname und die E-Mail-Adresse für diesen Kontakt zurückgegeben. Das Anmeldeformular ist entsprechend vorbelegt.

  • Wenn ein Eintrag nicht gefunden wird, bleibt das Anmeldeformular leer. Wenn der Name Ihres iPhone nicht mit dem Standardformat übereinstimmt, wird der Vorbelegungsmechanismus nicht ausgelöst, auch wenn nur ein Zeichen entfernt ist.

Sie können beweisen, dass dies funktioniert, indem Sie den Namen Ihres iPhone auf einen beliebigen Kontakt zu ändern, wie in „Dave Wilson iPhone“, und bemerkte, dass Kontaktinformationen Dave Wilson jetzt vorbelegt werden.