javascript - 从 Objective-C 将大数据传递给 UIWebView javascript

标签 javascript ios objective-c uiwebview

我有一个应用程序,它使用 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 秒? documentation提到了这些限制。

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

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

关于javascript - 从 Objective-C 将大数据传递给 UIWebView javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477740/

相关文章:

javascript - 如何将 `2018911` 这样的字符串格式化为日期?

javascript - 浏览器兼容性问题列表?

iOS 邮件应用程序显示空白邮件正文

objective-c - 免费桥梁

iphone - SendDelegateMessage 等待10秒后返回失败

javascript - 在匹配游戏javascript中添加分数

javascript - 获取存储在多个 HTML 元素中的数据

ios - 如何对齐 UITextField 中的文本?

ios - 模拟器+实体机上运行的APP突然黑屏

objective-c - 将字段中的值添加到 NSDictionary 时,我的应用程序崩溃