ios - 如何从 WKWebView 获取服务器响应

标签 ios swift webview webkit

我正在尝试通过隐式流程 ( https://vk.com/dev/implicit_flow_user ) 进行授权,问题是我不知道如何在授权用户后从服务器获取访问 token

    let config = WKWebViewConfiguration()
    logInWebView = WKWebView(frame: .null, configuration: config)
    logInWebView.uiDelegate = self
    logInWebView.navigationDelegate = self
    view = logInWebView
    let url = URL(string: "https://oauth.vk.com/authorize?client_id=#######&display=mobile&redirect_uri=https://oauth.vk.com/blank.html&scope=audio&response_type=token")
    let req = URLRequest(url: url!)
    logInWebView.load(req)

最佳答案

成功授权后,用户浏览器将重定向到包含您的访问 token 的redirect_uri。可以从那里检索它。

为了实现这个目标

  1. 使用 WKNavigationDelegate 子类化您的 VC
  2. 实现didReceiveServerRedirectForProvisionalNavigation
  3. 获取 webview.url 并拆分其 URL 组件。
  4. 其中一个组成部分是您的访问 token

关于ios - 如何从 WKWebView 获取服务器响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56854455/

相关文章:

ios - Swift:对数字字符串字典进行排序

Android WebView 内存不足?

windows-phone-8 - Windows Phone 8.1 WebView 中的消息对话框 "Search for app in the Store?"是什么

ios - 防止 View 被拖出屏幕

ios - Gif 未出现在手动输入的约束上

ios - 谷歌身份平台 : Cannot exchange authorization code for refresh and access tokens

ios - 使用 MPMusicPlayerApplicationController 时如何更新 MPNowPlayingInfoCenter

swift - Swift 2 中的通用设置类

iphone - 滚动表格 View 后出现图像 (AFNetworking)

webview - Flutter WebviewPlugin 去除网站的页眉和页脚