当我在UIWebView
中实现网页加载时,用户必须填写表单并且必须单击提交按钮。在提交请求期间,我发送一个返回网址以及请求。如果请求返回到我的返回url.along,请求在网站结束时验证它是否正在发送一些参数。
它成功发生了,但我没有得到那些参数。我怎么能得到那些参数。
我已经实现了委托方法,但没有提供参数。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
非常感谢任何帮助。
答案 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);