2016-10-07 7 views
1

나는 Swift로 매우 기본적인 iOS 앱을 개발 중이다. 심박수 데이터를 읽는 것뿐입니다. 나는 SFSafariViewController를 사용하고있다. 알려진 바와 같이, 먼저 dev.fitbit.com에 내 앱을 등록해야합니다. 등록 양식에는 콜백 URL을 입력해야합니다.FitBit 로그인 페이지에 로그인 한 후 내 iOS 앱으로 다시 리디렉션하는 방법은 무엇입니까?

성공적으로 로그인 한 후 FitBit은 항상 입력 한 콜백 URL로 다시 리디렉션합니다. 성공적으로 로그인 한 후 사용자를 iOS 앱으로 리디렉션 할 수 있으려면 어떻게해야합니까/코드/구성해야합니까?

답변

1

당신이해야 할 일은 application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool 함수를 AppDelegate에 추가 한 다음 응용 프로그램의 URL 체계를 식별자로 만드는 것입니다. URL 체계를 만들려면 응용 프로그램 대상> 정보> URL 유형 (하단)으로 이동하십시오. 그런 다음 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 
} 
+0

성공적으로 로그인 한 후, 핏 비트는 다시 그 등록 된 콜백 URL과이 막대기로 저를 리디렉션합니다. 'func appliation (__ :) '함수가 호출되지 않습니다. 제발 도와주세요! –

+0

Fitbit Api는 현재 iOS 딥 링크를 지원하지 않습니다. [다음] (http://deeplink.me) 서비스를 사용하여 URL 딥 링크를 만든 다음 위의 코드를 사용하십시오. –

+0

[다음] (deeplink.me) 서비스의 의미를 말씀해 주시겠습니까? –

0

응용 프로그램에서 아래의 3 단계를 사용해보십시오.

당신은 "핏 비트"를 사용하고, 그래서 당신이 로그인에 대한 OAuth2.0에를 사용하여 액세스 토큰을 얻을 수 있습니다 고려하고있다.

1 단계 : URL 구성표를 설정합니다.

enter image description here

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 방법에 관해서 확인하고 날씨에게 그것을 확인 바로 ur 콜백이오고 있는지 여부입니다.

3 단계 : 올바른 콜백 URL을 OAuth 처리기에 설정하십시오.

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의 호스트로 작동 할 것이다.

이미지 및 코드 제공 : 쉬운 단어로 문제의 해결책을 설명하려고 시도했습니다. 그리고이 답변의 모든 정보는 원래 기록이 URL에 설명되어 있습니다 https://github.com/OAuthSwift/OAuthSwift