将 Javascript 数组传递给 UILabel - iOS

Posted

技术标签:

【中文标题】将 Javascript 数组传递给 UILabel - iOS【英文标题】:Passing Javascript Array to UILabel - iOS 【发布时间】:2013-08-20 19:03:51 【问题描述】:

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

//js

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

我想将此数组传递给 ios 中的 UILabel。我该怎么做呢?

提前致谢!

【问题讨论】:

你看过 JavaScriptCore 框架吗? 是的。不过,我仍然需要帮助。 【参考方案1】:

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

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

    的字符串

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

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

现在,您只需将此数组用作 UIPickerView 的数据源。你可以看到如何做到这一点here。

这是代码的样子:

你的javascript:

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

你的 Objective-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:@","];

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

【讨论】:

非常感谢,但在 Objective-c 代码中括号后的第二行中出现错误。使用未声明的标识符测试。头文件中的 UIPicker 应该测试什么? 对不起,我刚刚粘贴错了。那应该是来自javascript的字符串。再试一次。 很抱歉,我只是对使用选择器视图不够熟悉。如果我只想在 UILabel 中显示我该怎么做,我会更新我的问题。 老兄,我的回答是关于在 Objective-C 数组中“转换”一个 JavaScript 数组。执行NSLog 后,您可以在控制台中看到正确安装的阵列。我留给你的 UIPickerView 部分,真的很基础。只需点击我发布的链接 (leesilver.net/1/post/2011/07/uipickerview-how-to-populate.html)。你只需要通过我们的'testArray'来改变他的'arrStatus'数组,其余的都是一样的。试一试,有其他疑问可以稍后再问。 很高兴再次提供帮助。祝你好运!

以上是关于将 Javascript 数组传递给 UILabel - iOS的主要内容,如果未能解决你的问题,请参考以下文章

将javascript数组传递给servlet

Javascript 是不是通过引用或值将数组传递给函数?

将 C# ASP.NET 数组传递给 Javascript 数组

将 C# ASP.NET 数组传递给 Javascript 数组

将 JavaScript 数组传递给 IEnumerable 会给出空值

将 javascript 数组传递给 c# 方法