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