iOS Swift - Instagram API从WebView NSURL请求获得响应

时间:2016-06-17 00:41:28

标签: ios swift uiwebview nsurlrequest

我使用以下块允许我的应用程序的用户使用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?

2 个答案:

答案 0 :(得分:0)

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

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

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

希望它有所帮助:D

答案 1 :(得分:0)

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

当用户在app中完成auth时,委托将回调方法:

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

在里面你可以解析响应。这里有一个C#的例子,没有快速的,但不应该难以翻译。希望有所帮助!

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