在FitBitlogin页面login后如何redirect到我的iOS应用程序?
我正在用Swift开发一个非常基础的iOS应用程序。 只是读取心率数据。 我正在使用SFSafariViewController。 众所周知,我首先需要在dev.fitbit.com上注册我的应用程序。 registry格需要input一个callbackURL。
成功login后,FitBit总是将我redirect到input的callbackURL。 我应该怎么做/代码/configuration成能够重新定向用户回到我的iOS应用程序login成功后?
你需要做的是添加application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool
函数到你的AppDelegate然后创build一个你的应用程序的urlscheme作为标识符。 要创build一个urlscheme,请转到您的应用程序目标>信息> URLtypes(在底部)。 然后在AppDelegate中添加以下内容:
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { DispatchQueue.main.async { // Conctrol so that we´re coming from the right application if (url.scheme == "The url scheme that you created"){ // Navigate to the viewController you want let storyboard = UIStoryboard(name: "Main", bundle: nil) let controller = storyboard.instantiateViewController(withIdentifier: "WebView") as! WebViewController self.window?.rootViewController!.present(controller, animated: true, completion: { () -> Void in }) } } return true }
尝试在您的应用程序中使用以下3个步骤
您正在使用“ fitbit ”,所以我正在考虑您正在使用OAuth2.0进行login并获取访问令牌。
第1步 :设置您的URL计划。
第2步 :在你的AppDelegate类
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { if (url.host == "oauth-swift") { OAuthSwift.handle(url: url) } return true }
在上面的函数中,我们所做的是,我们检查URL是否来自handleOpenUrl方法,并检查天气是否正确,urlcallback是否到来。
第3步 :在您的OAuth处理程序中设置正确的回拨URL。
oauthswift = OAuth2Swift( consumerKey: "********", consumerSecret: "********", authorizeUrl: "your authorisation url", responseType: "token" ) let handle = oauthswift.authorize( withCallbackURL: URL(string: "oauth-swift://oauth-callback/fitbit")!, scope: "your application scope", state:"state", success: { credential, response, parameters in print(credential.oauth_token) }, failure: { error in print(error.localizedDescription) } )
在上面的步骤中,我们设置以“ oauth-swift: ”开头的回叫url,因此它将作为回叫url的主机。
图片和代码礼貌:我试图用简单的话来解释你的问题的解决scheme。 而这个答案的所有信息最初都是通过这个URLlogging和解释的: https : //github.com/OAuthSwift/OAuthSwift