2012-05-05 25 views
6

Me preguntaba si era posible obtener datos POST y guardarlos cuando se presionó un botón Enviar en un UIWebView. ¿Debo usar javascript y agregar eventlisteners para poder obtener los valores antes de que se realice el envío? De ser así, ¿cómo podría recuperar los datos de mi código en obj c? De lo contrario, ¿hay alguna manera más fácil? GraciasTomar datos POST de UIWebView

Respuesta

11

Debe implementar UIWebViewDelegate. Hay un gancho llamado "shouldStartLoadWithRequest" que recibe el llamado de iOS.

Psueudocódigo a continuación.

@interface MyController<UIWebViewDelegate> 
@end 

@implementation MyController 
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request  navigationType:(UIWebViewNavigationType)navigationType 
{ 
    // do your magic 
    NSData *data = request.HTTPBody; // contains the HTTP body as in an HTTP POST request. 

    // return YES to continue to load the URL 
} 
@end 
+0

Gracias, pude NSLog los datos. Sin embargo, si también quisiera el texto original de los campos enviados, ¿necesitaría javascript? – bph

+0

Recomiendo pasar el texto/etiqueta original como un campo de formulario oculto y luego extraerlo solo como un campo en los datos POST. Si no lo prefiere, puede utilizar la evaluación de javascript arbitraria utilizando [webView stringByEvaluatingJavaScriptFromString: @ ""]; – Ash

+6

Puede obtener el texto de los datos POST con el método ... '[[NSString alloc] initWithData: codificación de datos: NSASCIIStringEncoding]' –