Created
April 26, 2012 16:52
-
-
Save Oliviergg/2500942 to your computer and use it in GitHub Desktop.
Intégrer des pages web dans un controller iOs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (void)requestDidFailed:(ASIHTTPRequest *)request { | |
// La création de compte a échoué. Afficher un message d'erreur | |
} | |
- (void)requestDidSucceed:(ASIHTTPRequest *)request { | |
NSData* data=[request.responseString dataUsingEncoding:NSUTF8StringEncoding]; | |
NSDictionary *json = [[CJSONDeserializer deserializer] deserialize:data error:NULL]; | |
// cacher la bulle d'attente | |
[webView stringByEvaluatingJavaScriptFromString:@"hideWaiting()"]; | |
NSDictionary *lastHTTPBody = request.userInfo; | |
[[NSUserDefaults standardUserDefaults] setObject:currentUser.pseudo forKey:@"login"]; | |
[[NSUserDefaults standardUserDefaults] setObject:currentUser.password forKey:@"password"]; | |
// La création de compte est Ok : Passer à la suite (autre controller, afficher un résultat) | |
} | |
- (BOOL)webView:(UIWebView *)webview | |
shouldStartLoadWithRequest:(NSURLRequest *)request | |
navigationType:(UIWebViewNavigationType)navigationType{ | |
// Seule la méthode post est interessante dans ce cas | |
if([[request HTTPMethod] isEqualToString:@"POST"]){ | |
// Affichage de la bulle d'attente | |
[webView stringByEvaluatingJavaScriptFromString:@"showWaiting()"]; | |
// Conversion de la requete en une ASIHttpRequest | |
NSDictionary *lastHTTPBody = [[[[NSString alloc] initWithData:[request HTTPBody] | |
encoding:NSUTF8StringEncoding] | |
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] URLQueryParameters]; | |
NSURL *_url = [request URL]; | |
ASIHTTPRequest *r=[ASIHTTPRequest requestWithURL:_url]; | |
[r appendPostData:[request HTTPBody]]; | |
r.requestMethod = [request HTTPMethod]; | |
r.userInfo = lastHTTPBody; | |
[r setDelegate:self]; | |
[r setDidFinishSelector:@selector(requestDidSucceed:)]; | |
[r setDidFailSelector:@selector(requestDidFailed:)]; | |
[r setTimeOutSeconds:10]; | |
[r startAsynchronous]; | |
return false; | |
} | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment