2016-12-11 2 views
0

Ich habe gerade einen Artikel gelesen, in dem erklärt wurde, wie das Token von iCloud abgerufen wird, um die Authentifizierung mit der iOS-Plattform auszuführen.Überprüfen Sie, ob der Benutzer ein Konto in meiner App mit iCloud Auth-Ansatz hat

Wie können wir Android und iOS mit einem solchen Ansatz kombinieren?

Wie Android wissen, dass Benutzer iOS-Konto hat?

Welche Art von Anmeldeinformationen muss ich von Benutzern anfordern, um zu überprüfen, ob sie bereits ein Konto auf der iOS-Plattform haben?

Antwort

0

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) 
    } 
} 
+0

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? –

+0

Aleksey Es tut mir leid, ich bin iOS-Typ, ich weiß sehr wenig über Android-Authentifizierung. – user3069232

+0

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? –

Verwandte Themen