【问题标题】:How to get an URL from SFSafariViewController?如何从 SFSafariViewController 获取 URL?
【发布时间】:2015-10-27 13:22:24
【问题描述】:

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

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

【问题讨论】:

  • 提高了文本的可读性,因为它很混乱。还编辑了标题以更好地反映问题。
  • 您有得到什么帮助吗?当我查看 fitbit API 时,它清楚地提到我们不能使用 UIWebView 或 WKWebKit 进行登录。我被困在同一页面上。

标签: ios objective-c


【解决方案1】:

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 dev.fitbit.com/docs/oauth2 - 所以你必须使用 SFSafariViewController 并且在它完成后,你必须 ping 你的服务器/web 服务来查看它是否成功
  • @DavidGlance 因为他们可能想强迫你使用WKWebView
猜你喜欢
  • 1970-01-01
  • 2017-03-26
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多