Aleksey,
Dieser Code bestätigt jemand in iCloud angemeldet ist, indem man versucht, einen iCloudKit Container zuzugreifen. Die erste Methode prüft und sendet eine Benachrichtigung, wenn sie fehlschlägt. Die zweite Methode, die durch diesen Fehler ausgelöst wird, weist den Benutzer an die Systemsteuerung zurück, damit sie sich bei iCloud anmelden können.
func isAuthorized4Cloud() {
container = CKContainer(identifier: "iCloud.X")
publicDB = container.publicCloudDatabase
privateDB = container.privateCloudDatabase
var userID: CKRecordID!
container.fetchUserRecordID(completionHandler: { recordID, error in
if error == nil {
userID = recordID
print("files_setup userID \(userID.recordName)")
NotificationCenter.default.post(name: Notification.Name("cloudConnected"), object: nil, userInfo: nil)
} else {
NotificationCenter.default.post(name: Notification.Name("noCloud"), object: nil, userInfo: nil)
print("files_setup \(error?.localizedDescription)")
}
})
}
Ihrer Ansicht-Controller ...
NotificationCenter.default.addObserver(self, selector: #selector(noCloud), name: Notification.Name("noCloud"), object: nil)
func noCloud(notification:NSNotification) {
DispatchQueue.main.async {
self.navigation.isHidden = true
let alert = UIAlertController(title: "Stop", message: "Sorry, you need to log into iCloud ...", preferredStyle: UIAlertControllerStyle.alert)
let settingsAction = UIAlertAction(title: "Settings", style: .default) { (_) -> Void in
guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
print("Settings opened: \(success)") // Prints true
})
}
}
alert.addAction(settingsAction)
let cancelAction = UIAlertAction(title: "Cancel", style: .default, handler: nil)
alert.addAction(cancelAction)
self.present(alert, animated: true, completion: nil)
}
}
dank es sehr hilfreich ist, war aber Frage zu, versuchen Sie zum Beispiel vorstellen, die ich heruntergeladen habe die App auf meinem iOS und machte Auth, jetzt als ein Besitzer hat mein Konto in DB, als ich mein Android-Gerät genommen, die gleiche App heruntergeladen und ...? Welche Art von Anmeldeinformationen, die ich als Benutzer ausfüllen muss, um Sie als Eigentümer der App zu verstehen, verstehen, dass es sich um denselben Benutzer handelt, der bereits ein Konto bei der iOS-Plattform hat? Und ich muss das gleiche von meinem Account zu meinem Android von ios bekommen ... Hast du meine Idee verstanden? –
Aleksey Es tut mir leid, ich bin iOS-Typ, ich weiß sehr wenig über Android-Authentifizierung. – user3069232
thatsing, ich frage mich nur, wie es mit Multi-Plattformen arbeiten muss ... Wenn Apple auf diese Weise für Auth produzieren, bedeutet es, dass es eine Möglichkeit sein sollte, um es für Android anzuwenden. Weil es auf andere Weise bedeutet, dass ich als Entwickler zwei verschiedene Auth-Form zur Verfügung stellen muss, eine für iOS eine andere für Android, aber schlimmer muss ich auch zwei DB zur Verfügung stellen. Zum Beispiel, wie Arbeit google auth ist es sehr klar und spielt keine Rolle, welche Plattform Sie verwenden es ist die gleiche Arbeit, hast du meine Idee? –