![](/img/trans.png)
[英]Passing large data to UIWebView javascript from Objective-C
[英]Objective-c [For loop] load HTML in UIWebview and retrieve data from JavaScript function
我正在用Objective-c for IOS开发一个应用程序,我需要能够循环浏览一堆网页,并使用嵌入式javascript函数返回一些JSON值。
我在应用程序的其他地方使用了这些页面,并且javascript可以按要求工作。 在这一点上,我确实存储了JSON响应,但是由于用户可能无法查看每个页面,因此该应用不一定要检查所有JSON值。
下面的代码部分是我用来遍历所有页面,加载HTML字符串并运行javascript函数的内容。 问题在于这些值始终返回为空。
-(void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"finished loading");
NSString *jsonValues = [webView stringByEvaluatingJavaScriptFromString:@"getFields()"];
}
for (int i = 1; i <= shifts; i++)
{
ontracMultipleWevViewController *RT9909 = [viewControllerDictionary objectForKey:[NSString stringWithFormat:@"Shift %d RT9909", i]];
if (RT9909 && [RT9909.viewControllers count] > 0) {
for (ontracRTViewController *r9909 in RT9909.viewControllers) {
UIWebView *webView = [[UIWebView alloc] init];
[webView setDelegate: self];
[webView loadHTMLString:r9909.htmlString baseURL:[NSURL URLWithString:r9909.urlToLoad]];
[self webViewDidFinishLoad:webView];
[self.view addSubview:webView];
if([self webViewDidFinishLoad:webView]){
r9909.jsonValues = [webView stringByEvaluatingJavaScriptFromString:@"getFields()"];
if(r9909.jsonValues != nil && ![r9909.jsonValues isEqualToString:@""] && rt9909ShiftCount == 0){
........rest of code
注意:我没有错误或NSLogs提示任何问题
您需要隔离
if([self webViewDidFinishLoad:webView]){
r9909.jsonValues = [webView stringByEvaluatingJavaScriptFromString:@"getFields()"];
阻止for-loop
并向您的webview添加tags
。
实施
- (void)webViewDidFinishLoad:(UIWebView *)webView;
UIWebView
可选委托函数并放入您的
if(...) {
r9909.jsonValues = [webView stringByEvaluatingJavaScriptFromString:@"getFields()"];
}
逻辑在这里。
该if check
现在将基于该webview.tag
,你将分配会产生内部的网页视图for loop
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.