我有一个要求,其中我在包含 NSDictionary 对象的 NSArray 中有大量信息。现在我必须使用以下方法通过 webview 将它们传递到 javascript 函数中:
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
我的问题是:
- 如何在调用端准备我的参数以便 Javascript 理解它?
- 我如何在 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/