如何将值从javascript传递给objective-C

时间:2012-02-09 18:06:47

标签: javascript objective-c

我有一个很大的问题。我必须将javascript函数的变量传递给objective-C变量。 这些是我的代码部分:

Javascript:

function abc(){
something...
}

目标-C:

    myLabel.text = [webView stringByEvaluatingJavaScriptFromString:@"documentElement.textContent"];

javascript代码将我想要在我的Objective-C代码中使用的数字打印到视频但是没有显示,而是使用此代码:

myLabel.text = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];

它传递了我想要的值和javascript函数的整个代码!

请一些建议......谢谢!

`

1 个答案:

答案 0 :(得分:3)

你想调用这个函数,而不只是引用它:

myLabel.text = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent()"];

关键位在最后:

...documentElement.textContent()"];
//                            ^^

由于JavaScript函数是第一类对象,所以:

x = functionName;

... x接收对该函数的引用。在您的情况下,由于UIWebView然后将其强制转换为字符串,您最终会在函数上调用toString,这在大多数JavaScript实现中都会为您提供函数的代码(尽管任何标准都没有指定)。

要实际调用一个函数,你可以在它后面添加括号(如果没有你需要传递的参数,则不包含任何参数;如果你这样做,则使用参数),例如:< / p>

x = functionName();

披露:我对iOS开发,Objective-C或UIWebView一无所知,但我能够快速找到您正在使用的stringByEvaluatingJavaScriptFromString函数,然后通过this page进行确认@之后的字符串需要是有效的JavaScript代码。