2016-06-17 3 views
0

J'utilise le bloc suivant permet aux utilisateurs de mon application d'autoriser avec Instagram:iOS Swift - API Instagram obtenir une réponse de WebView NSURL Demande

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) 
} 

Ma question est, comment puis-je obtenir le Reponse JSON de la Webview demande NSURL une fois que l'utilisateur a terminé auth?

+0

Je suis un peu confus en ce moment Avez-vous eu votre solution? [Référence] (https://www.instagram.com/developer/authentication/) –

Répondre

0

en méthode déléguée, vous pouvez obtenir la demande et trouver est URL.absoluteString, ce code que vous voulez sera dans la chaîne:

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

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

espérons qu'il sera utile: D

0

Dans le fichier Info.plist vous enregistrez l'application sous les types d'URL. Mettez l'identifiant comme identifiant de groupe, le schéma d'URL comme redirection et l'éditeur comme rôle.

Lorsque l'utilisateur se fait remplir le auth dans le délégué de l'application sera rappelé dans la méthode:

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

intérieur que vous pouvez analyser par la réponse. Voici un exemple en C#, ne l'ai pas dans swift mais ne devrait pas être difficile à traduire. J'espère que cela pourra aider! Comment puis-je obtenir le code pour que je puisse l'utiliser pour l'URL de token de réponse?

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