Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用objective C处理json中嵌入的javascript代码_Javascript_Objective C - Fatal编程技术网

使用objective C处理json中嵌入的javascript代码

使用objective C处理json中嵌入的javascript代码,javascript,objective-c,Javascript,Objective C,我正在开发的iPad应用程序有一些行为是由数据驱动的。所谓数据,我指的是从服务器端发送的json文件中嵌入的一些javascript代码 以以下为例: if ((q12+q13+q14*2-2)>0){ goto(q45); show(q1,q2); }else{ goto(q34); } 在iOS方面,我知道q12/13/14的值,我想执行javascript中定义的逻辑并接收结果,这样我就可以执行各种接口行为。可能吗?我使用UIWebView标题,我可以从

我正在开发的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 url。

确实可以让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被他人试图诱使您的应用程序加载。

确实可以让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被他人试图诱骗您的应用程序加载。

小心,您可能会违反AppStore TOS,您的应用程序将被禁止。小心,你可能会违反AppStore TOS,你的应用将被禁止。他们可能会在JSON数据中嵌入转义的js代码。但他们(无论哪种方式)都有可能被拒绝或从appstore中删除他们的应用程序。他们可能在JSON数据中嵌入转义的js代码。但他们(无论哪种方式)都面临着被拒绝/从应用商店中删除应用的风险。