2015-10-27 141 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