1

我的应用程序的本地 HTML 文件中有一个 javascript 数组:

//js

<script language="javascript">
    test = ["First menu item","second menu item", "third menu item"];
</script>

我想将此数组传递给 iOS 中的 UILabel。我怎么能这样做呢?

提前致谢!

4

1 回答 1

1

我可以通过以下步骤做到这一点:

  1. 首先,使用该方法将您的 javascript 字符串数组转换为一个字符串join()

  2. 二、使用webview的方法 stringByEvaluatingJavaScriptFromString:获取上面的字符串

  3. 最后,使用 NSString 的方法componentsSeparatedByString: 将字符串转换为 iOS 字符串数组。

现在,您只需将此数组用作 UIPickerView 的数据源。您可以在此处查看如何执行此操作。

这是代码的样子:

你的JavaScript:

<script language="javascript">
    var test = ["First menu item","second menu item", "third menu item"];
    var testString = test.join('#');
</script>

您的目标 C 代码:

NSString *testArrayString = [webView stringByEvaluatingJavaScriptFromString:@"testString"];
NSArray *testArray = [testArrayString componentsSeparatedByString:@"#"]; 
NSLog(@"%@", testArray);

这是 NSLog 将打印的内容:

2013-08-20 23:48:29.578 YourProject3633:c07] (
    "First menu item",
    "second menu item",
    "third menu item"
)

编辑:

要在标签中显示数组内容,而不是 UIPickerView,您可以执行以下操作(未经测试,但应该可以):

self.myLabel.text = [NSString stringWithFormat:%@, testArray];

或者只是用逗号再次加入数组的字符串,如下所示:

self.myLabel.text = [testArray componentsJoinedByString:@","];

我不知道是否有人有更好的解决方案,这是我想到的第一件事。让我知道它是否对您有帮助。

于 2013-08-21T02:56:32.577 回答