可以在没有UIWebView的情况下运行javascript吗?

时间:2009-08-19 19:54:58

标签: javascript iphone objective-c cocoa-touch

是否可以在不使用NSString的情况下运行一些javascript代码(可能有UIWebView作为输入)?我想在一个单独的线程中运行此代码,因此UIWebView是不可能的,我真的不想渲染任何东西,只需返回结果。

3 个答案:

答案 0 :(得分:3)

我没试过这个,但这里有一个想法:

编写代码以分配空UIWebView但不在任何地方将其添加为子视图,只需直接在您的javascript上调用- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

然后使用NSOperation并行运行。

任何可能对您不起作用的理由?我认为这会避免为UIWebView显示任何内容。

作为旁注,我想不出你在javascript中可以做什么,你不能在Objective-C中直接做得更快。除了可能解析你从外部获得的javascript,这可能被Apple视为禁忌,具体取决于细节。

猜测您的目标:如果您想解析JSON服务器回复,我建议使用json-framework library hosted on google code。它有一个很好的界面,它非常容易学习和集成。

答案 1 :(得分:1)

我认为Parmanoir的文章Taming JavascriptCore within and without WebView可能会给你一些建议。

答案 2 :(得分:0)

 self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(getResults:) userInfo:nil repeats:YES];

-(void)getResults
{
    NSString *value = [self.webView stringByEvaluatingJavaScriptFromString:@"javascript"];
}   

任何理由你都不能做这样的事情。不应该是主线程上的大量开销。