【问题标题】:iOS Swift - Instagram API get response from WebView NSURL RequestiOS Swift - Instagram API 从 WebView NSURL 请求中获得响应
【发布时间】:2016-06-17 00:41:27
【问题描述】:

我正在使用以下块允许我的应用程序的用户使用 Instagram 进行授权:

func authorizeInstagram() {

        let myWebView:UIWebView = UIWebView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height))
        myWebView.delegate = self
        myWebView.loadRequest(NSURLRequest(URL: NSURL(string: "https://instagram.com/oauth/authorize/?client_id=xxxxxxxxxxxxxxxxxx&redirect_uri=xxxxxxxxxxx/&response_type=token")!))
        self.view.addSubview(myWebView)
 }

我的问题是,一旦用户完成身份验证,如何从 webview NSURL 请求中获取响应 JSON?

【问题讨论】:

  • 如何获取代码以便将其用于响应令牌 URL?我现在有点困惑你得到你的解决方案了吗? Reference

标签: ios swift uiwebview nsurlrequest


【解决方案1】:

在委托方法中,您可以获取请求并找到它是URL.absoluteString,您想要的代码将在字符串中:

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

    let str = request.URL?.absoluteString
    print(str)
    return true
}

希望对你有帮助:D

【讨论】:

    【解决方案2】:

    在 info.plist 文件中,您在 URL 类型下注册应用程序。将标识符作为您的捆绑包 ID,将 URL 方案作为您的重定向,并将编辑器作为角色。

    当用户完成应用程序委托中的身份验证后,将在方法中回调:

    func application(application: UIApplication,
      openURL url: NSURL,
      sourceApplication: String?,
      annotation: AnyObject?) -> Bool
    

    在里面你可以解析响应。这是 C# 中的一个示例,不要在 swift 中使用它,但应该不难翻译。希望对您有所帮助!

    if (url.Scheme == "youappscheme")
    {
        var queryParams = url.Query.Split('&');
        // grab the one you want
        return true;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2020-05-06
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多