当我在UIWebView中提交表单时,如何获得响应?

时间:2014-04-10 07:20:11

标签: ios uiwebview

当我在UIWebView中实现网页加载时,用户必须填写表单并且必须单击提交按钮。在提交请求期间,我发送一个返回网址以及请求。如果请求返回到我的返回url.along,请求在网站结束时验证它是否正在发送一些参数。

它成功发生了,但我没有得到那些参数。我怎么能得到那些参数。

我已经实现了委托方法,但没有提供参数。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我一直处于相同的问题,因为iOS webview没有像android那样多的功能,因为在android中有 JavaScriptInterface 。但是在iOS中有一个方法来执行JS这是stringByEvaluatingJavaScriptFromString。

正如您所提到的那样,您在返回网址上获取参数,那么您的网站开发人员必须获取该参数(我不知道他将如何做,但我的开发人员这样做并将所有参数转换为字符串)并存储在字符串参数中。然后您可以使用JS函数获取该值。

    NSURL *requestURL = [self.WebView.request URL];
    NSLog(@"Reuest URl here is:%@",requestURL);

    NSString *javaScript = [NSString stringWithFormat:@"function givResponse(){var x=document.getElementById('div-id').innerHTML;return x; } givResponse(); "];
    NSString *jsonString = [self.webView stringByEvaluatingJavaScriptFromString:javaScript];
    NSLog(@"The returned value is %@",jsonString);

  /* Converting the string to JSON */
    NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
   id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
   NSLog(@"Here the JSon String from the respose is :%@",json);