繁体   English   中英

从Objective-C将大数据传递到UIWebView JavaScript

[英]Passing large data to UIWebView javascript from Objective-C

我有一个应用程序,该应用程序使用UIWebView来显示从服务器加载的HTML页面。 这非常有用,包括用于加载其他数据的Objective-C部分,但是,不起作用的是将数据传递给WebView中运行的JavaScript。

我试过的是:

NSString * sigstring = [NSString stringWithFormat:@"updatedSig('%@');", [thisSignature base64EncodedString]];
sigstring = [sigstring stringByReplacingOccurrencesOfString:@"\n" withString:@""];

NSLog(@"WV: %@",[[[(AppDelegate*)[[UIApplication sharedApplication] delegate] viewController] webView] stringByEvaluatingJavaScriptFromString:sigstring]);

无论传入什么,updatedSig函数都会向控制台回显。

但是,在这种情况下,当那里应该有数据时,它不会向控制台返回任何内容。

为了测试其他问题,我也尝试过

NSString * sigstring = [NSString stringWithFormat:@"updatedSig('%@');", @"AbsolutelyAnything"];
sigstring = [sigstring stringByReplacingOccurrencesOfString:@"\n" withString:@""];

NSLog(@"WV: %@",[[[(AppDelegate*)[[UIApplication sharedApplication] delegate] viewController] webView] stringByEvaluatingJavaScriptFromString:sigstring]);

效果很好,它在控制台中显示“ AbsolutelyAnything”就好。

任何帮助将非常感激。

您更新后的签名是否大于10MB或执行超过10秒? 文档提到了这些限制。

还请记住, stringByEvaluatingJavaScriptFromString的结果是已执行的Javascript,因此,如果在执行过程中出现问题,您可能只会收到nil。 在第一个示例中,NSLog是否完全执行?

假设您遵守这些限制,我的建议是在Javascript中插入警报,以确保其按预期执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM