Ich arbeite mit Swift 3 and Xcode 8 (iOS 10.1)
, ich bin komplett neu auf der ganzen Welt. :)UIApplication.sharedApplication.open() lädt keine URL
Ich authentifiziere mich gegen eine externe App, um ein Zugriffs-Token zu erhalten. Der Anwendungsfall ist:
1) Laden externen App von meinem App
2), um den Benutzer zu Validieren und das Zugriffstoken
3) Redirect zurück zu meiner App von externem App
ich Ich kann 1) und 2), aber nicht 3). Die externe App hat angegeben, dass Sie einen Redirect-Parameter konfigurieren, und das habe ich getan. Aber leider keine Zigarre.
Ich habe URL-Schemas in Info.plist
für beide Apps eingerichtet. Ich bekomme keine Fehler in der Konsole oder im Debugger.
Ich habe seit den letzten 4 Tagen geforscht und geforscht und das ist die Lösung, die ich bis jetzt gefunden habe. Im Moment sehe ich die Konsolenmeldungen, aber die externe App öffnet sich nicht mehr.
AppDelegate
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if (url.scheme == "extapp") {
print("working with extapp scheme")
} else if (url.scheme == "myapp") {
print("redirecting back to app after working with extapp")
}
return true
}
Viewcontroller
@IBAction func loginButton(_ sender: Any) {
let id = text.text
let currentCharacterCount = id.text?.characters.count ?? 0
if currentCharacterCount == 0 {
self.showAlert(text: "Please provide a id.")
} else if currentCharacterCount < 10 {
self.showAlert(text: "Oh! id doesn't seem to be in the correct format. Try again.")
} else {
if (self.firebaseData.callAuth(loggedIn: id!)) {
OpenExtApp()
}
}
}
func OpenExtApp() {
let Url = URL(string: "extapp:///?autostart=\(token)&redirect=myapp://key")
if (UIApplication.shared.canOpenURL(Url!)) {
UIApplication.shared.open(Url!, options: [:])
}
}
würde ich schätze Ihre Hilfe in irgendeiner Weise wirklich.
sind Sie die URL-Schema 'extapp' in Ihrem plist –
@ Anbu.Karthik hinzugefügt Ja, ich habe, wie bereits erwähnt in meiner Frage. – Mina
Geht es nach innen, wenn Block?, Bringe Punkt und überprüfe einmal. –