Während der Anmeldung in meiner App möchte ich Informationen wie den Vornamen von iCloud abrufen, die ich dann in meiner eigenen Cloud-Kit-Datenbank speichern möchte. Wie kann ich auf Benutzerinformationen von iCloud zugreifen, ohne den Benutzer selbst nach diesen relevanten Feldern fragen zu müssen?CloudKit, Benutzerinformationen abrufen, z. B. Vorname bei der Anmeldung
1
A
Antwort
1
Verwenden Sie CKContainer.discoverUserIdentity(withUserRecordID:)
in Kombination mit CKContainer.fetchUserRecordID
, um ein Objekt CKUserIdentity
für den aktuellen Benutzer zu erhalten. Sie können dann einen PersonNameComponentsFormatter
verwenden, um ihren Namen von der nameComponents
Eigenschaft der Identität abzurufen.
5
konnte ich es mit diesem in XCode 8 zum Laufen bringen iOS 10 Beta 2:
CKContainer.default().requestApplicationPermission(.userDiscoverability) { (status, error) in
CKContainer.default().fetchUserRecordID { (record, error) in
CKContainer.default().discoverUserIdentity(withUserRecordID: record!, completionHandler: { (userID, error) in
print(userID?.hasiCloudAccount)
print(userID?.lookupInfo?.phoneNumber)
print(userID?.lookupInfo?.emailAddress)
print((userID?.nameComponents?.givenName)! + " " + (userID?.nameComponents?.familyName)!)
})
}
}
0
let container = CKContainer.defaultContainer()
container.fetchUserRecordIDWithCompletionHandler { (recordId, error) in
if error != nil {
print("Handle error)")
}else{
self.container.discoverUserInfoWithUserRecordID(
recordId!, completionHandler: { (userInfo, error) in
if error != nil {
print("Handle error")
}else{
if let userInfo = userInfo {
print("givenName = \(userInfo.displayContact?.givenName)")
print("familyName = \(userInfo.displayContact?.familyName)")
}else{
print("no user info")
}
}
})
}
}
Verwandte Themen
- 1. Abrufen von Benutzerinformationen (z. B. Standort, E-Mail) mit Facebook Javascript API
- 2. Abrufen der Beobachtungen in einem Rpart-Knoten (z. B. CART)
- 3. Abrufen von Benutzerinformationen in DbContext
- 4. NodeJs - Benutzerinformationen vom JWT-Token abrufen?
- 5. Python AppEngine; Benutzerinformationen abrufen und Parameter posten?
- 6. Fehlerbehebung z. B. Flash 404
- 7. Sitecore Timeout bei der Anmeldung
- 8. MySQL mehrere Elemente übereinstimmen, wo (A, B, Z) IN (A, B, C, E, Z)
- 9. CloudKit Abrufen von CKReferenzen, Best Practice?
- 10. Abrufen von CloudKit Benutzerdatensatz mit UserRecordID
- 11. drupal 7: Benutzerinformationen zur Kontoerstellung abrufen
- 12. Fehler in der Anmeldung beim Abrufen
- 13. Benutzerinformationen über den Benutzernamen abrufen Von sql
- 14. Mit SPServices Benutzerinformationen von einer Untersite abrufen?
- 15. Wie funktionieren verteilte Transaktionen (z. B. MSDTC)?
- 16. Active Directory-Benutzerinformationen mit Windows-Authentifizierung in MVC abrufen 4
- 17. Anmeldung bei ASP.net Anmeldung über Google-Konto
- 18. Unterschied zwischen ComponentModel-Reflektion (z. B. PropertyDescriptor) und Standardreflexion (z. B. PropertyInfo)?
- 19. Konvertieren Excel-Spalte Alphabet (z. B. AA) zu Nummer (z. B. 25)
- 20. CloudKit Fehlerdifferenzierung
- 21. WSO2 SSLHandshakeException bei Anmeldung
- 22. Thymoleaf - Best Practice für die Überprüfung auf Null bei der Formatierung (z. B. Daten)
- 23. Bedingte Umleitung bei Anmeldung
- 24. textView, z. B. kann nicht ausgewählt werden?
- 25. Schienen - Params mit "Punkt" (z. B. /google.com)
- 26. iOS8 regionale Lokalisierung (z. B. pt-BR)?
- 27. Bild (z. B. jpg) einer Webseite generieren?
- 28. Indexkonvertierung: zeilenweise kartesische Koordinaten (z. B. Pixel)
- 29. Javascript Autokomplettierung für DSL. (z. B. SQL)
- 30. Übereinstimmende Sonderzeichen (z. B. #, +) mit pg_search
Anscheinend sind Sie richtig, dass die requestApplicationPermission erforderlich ist. Ohne es ruft discoverUserIdentity den Beendigungshandler sowohl mit userID als auch mit den Fehlerparametern nil ungerade auf. Wenn Sie jedoch requestApplicationPermission aufrufen, wird dem Benutzer eine sehr verwirrende Warnmeldung angezeigt: "Nutzern die Verwendung der App erlauben, um Sie per E-Mail zu suchen?" – LenK