![](/img/trans.png)
[英]Listen for notifications in Objective-C from 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.