我正在构建的iPad应用程序有一些由数据驱动的行为。所谓数据,我指的是一些嵌入到从服务器端发送的json文件中的javascript代码。
下面是一个例子:
if ((q12+q13+q14*2-2)>0){
goto(q45);
show(q1,q2);
}else{
goto(q34);
}在iOS端,我知道q12/13/14的值,我想执行javascript中定义的逻辑并接收结果,这样我就可以执行各种接口行为。有可能吗?我用UIWebView来标头,我可以从javascript得到结果,但我的例子是javascript在一个json中,而不是一个HTML中。
发布于 2013-01-05 23:37:56
确实可以让UIWebView执行任意JavaScript并捕获作为结果返回任何值。不过,我不确定我是否完全理解您正在执行的代码的性质,所以我只演示了下面的基本方法。如果您能提供有关您希望执行的JavaScript逻辑类型的更多详细信息,我也许能提供更多帮助。
UIWebView *webView = [[UIWebView alloc] init];
NSNumber *q1 = @20;
NSNumber *q2 = @30;
// Create a simple JavaScript addition statement.
NSString *javascript;
javascript = [NSString stringWithFormat:@"%@ + %@", q1, q2];
// Note, the result will always be an NSString
NSString *result = [webView stringByEvaluatingJavaScriptFromString:javascript];
// result is @"50"我还想纠正一些术语。你说“嵌入到JSON文件中的JavaScript代码”。实际上,JSON表示法格式只能包含名称/值对。它不能包含可执行的JavaScript代码。也许你的意思是说你正在从服务器加载JavaScript文件?
最后,当执行像这样从应用程序外部加载的代码时,您应该始终采取适当的技术设计预防措施,以防止有人试图欺骗您的应用程序加载的恶意JavaScript。
https://stackoverflow.com/questions/14171895
复制相似问题