在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