如何从SFSafariViewController中获取URL?

9

我正在使用Objective C在iOS中集成fitbit login-api,我需要获取回调URL。

我目前正在使用SFSafariViewController,但是我无法在登录后读取URL。是否可以从SFSafariViewController获取URL?


改进了文本的可读性,因为它相当混乱。还编辑了标题以更好地反映问题。 - Marcelo
你得到了一些有用的东西吗?当我查看Fitbit API时,它明确提到我们不能使用UIWebView或WKWebKit进行登录。我卡在同一页上了。 - MouseCrasher
1个回答

4
SFSafariViewControllerDelegate 中,你只有一个可以帮助的方法:
optional public func safariViewController(controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool)

但它只会在初始(第一个)URL 加载时被调用。如果您有重定向并等待身份验证过程中的某个URL,则不会起作用。 然后,您应该使用UIWebView并实现UIWebViewDelegate委托方法:

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

但不要忘记启用ATS


除了Fitbit明确禁止使用UIWebView进行oauth2之外,你必须使用SFSafariViewController。在它完成后,你必须ping你的服务器/ Web服务,以查看是否成功。 - David Glance
@DavidGlance 因为他们可能希望强制您使用 WKWebView - Nico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接