2015-10-27 186 views
5

我正在將iOS中的fitbit login-api與Objective C集成在一起,我需要獲取回調URL。如何從SFSafariViewController獲取URL?

我目前使用的是SFSafariViewController,但登錄後無法閱讀URL。是否有可能從SFSafariViewController獲取網址?

+0

改進的文本,因爲它是相當混亂。還編輯標題以更好地反映問題。 – Marcelo

+0

你有幫助嗎?當我查看fitbit API時,它清楚地提到我們不能使用UIWebView或WKWebKit進行登錄。我被困在同一頁面上。 – MouseCrasher

回答

2

SFSafariViewControllerDelegate你只有一個方法,可以幫助:

optional public func safariViewController(controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) 

但是,這隻能在初始(第一)網址加載調用。如果你有重定向,並在auth過程中等待一些URL - 這將無濟於事。 那麼你應該使用UIWebView和實施UIWebViewDelegate委託方法:

optional public func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool 

但不記得是爲了可讀性ATS

+0

除了Fitbit明確禁止使用UIWebView for oauth2 https://dev.fitbit.com/docs/oauth2/ - 所以你必須使用SFSafariViewController,並且在它完成之後,你必須ping你的服務器/ web服務以查看它是否是成功與否 –

+0

@DavidGlance,因爲他們可能想強迫你使用'WKWebView' – Nico