私はSwift 3 and Xcode 8 (iOS 10.1)
と一緒に働いています。私は全く新しい世界です。 :)UIApplication.sharedApplication.open()はURLを読み込みません
私はアクセストークンを取得するために外部アプリに対して認証しています。ユースケースは、次のとおりです。
1)私のアプリ
2から外部アプリをロード)、ユーザーを検証し、
3アクセストークンを取得する)、外部アプリから私のアプリに
をバックリダイレクトI 1)と2)はできるが、3)はできない。外部アプリケーションは、リダイレクトパラメータを設定するように指定しています。しかし、悲しいかな、葉巻はありません。
両方のアプリでURLスキームをInfo.plist
に設定しました。私はコンソールやデバッガでエラーが発生しません。
私は過去4日間、グーグルで研究してきましたが、これは私が今までに思いついた解決策です。今、コンソールメッセージが表示されますが、外部アプリは開かなくなりました。
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: [:])
}
}
私はどのような方法であなたの助けを本当に感謝します。
あなたが述べたようにはい、私は、持っているAnbu.Karthik @あなたのplist –
でURLスキーマ 'extapp'を追加します私の質問で。 – Mina
ブロックすれば入りますか?、ブレークポイントを入れて一度チェックしてください。 –