javascript - 将包含 NSDictionary 对象的 NSArray 传递给 Javascript 函数

标签 javascript cocoa cocoa-touch uiwebview iphone

我有一个要求,其中我在包含 NSDictionary 对象的 NSArray 中有大量信息。现在我必须使用以下方法通过 webview 将它们传递到 javascript 函数中:

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

我的问题是:

  1. 如何在调用端准备我的参数以便 Javascript 理解它?
  2. 我如何在 Javascript 中接收它们?基本上,函数签名应该是什么以及如何读取 java 函数中数组的字典对象的键值对?

对于Javascript,我基本上没有足够的经验,如果这个问题太抽象,请原谅我,但我希望我的问题很清楚!

编辑:我来了across a thread其中指出将 NSDictionary 对象传递给 javascript 函数是不可能的。那么,我们如何才能实现呢?

感谢和问候, 拉吉

最佳答案

由于您只能向-stringByEvaluatingJavaScriptFromString:提供一个字符串,因此您需要序列化您的参数。最简单的方法是使用各种 Cocoa JSON 库之一将其转换为 JSON。然后可以将其作为 JavaScript 文字插入您的代码中。像这样的东西:

NSString *json = [serialize JSON here];
NSString *scriptString = [NSString stringWithFormat:@"doSomething(%@)", json];

在 JSON 中,NSDictionaries 将表示为 JavaScript 对象,因此您可以通过 array[5].someKey(或 array[5]["some key "]).

关于javascript - 将包含 NSDictionary 对象的 NSArray 传递给 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712481/

相关文章:

javascript - 触发点击下部元素(z-index)

javascript - 分享使用 JavaScript 生成的 map

cocoa - 从非沙盒应用程序修改沙盒应用程序的默认值

objective-c - 将颜色配置文件 sRGB 嵌入从 cocoa mac 应用程序创建的 JPEG 中

ios - 使 UISlider 高度变大?

ios - 保持 tableview 的第一行不变

javascript - 如何将url参数添加到requirejs中的特定路径

cocoa - NSLevelIndicator 未更新

iphone - 内存泄漏如下代码

javascript - 通过包含缺失的月份来显示 *ngFor 中的月份序列