user130444
user130444

Reputation: 385

Run javascript without UIWebView possible?

Is it possible to run some javascript code (having perhaps an NSString as input) without using a UIWebView? I would like to run this code in a separate thread so UIWebView is not possible and I don't really want to render anything, just get back the results.

Upvotes: 5

Views: 2974

Answers (3)

endy
endy

Reputation: 3872

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

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

Any reason you couldn't just do something like this. Shouldn't be that big of an overhead on your main thread.

Upvotes: -1

0xced
0xced

Reputation: 26518

I think Parmanoir's article Taming JavascriptCore within and without WebView may give you some advice.

Upvotes: 1

Tyler
Tyler

Reputation: 28874

I have not tried this, but here is one idea:

Write code to allocate an empty UIWebView but doesn't add it as a subview anywhere, and just directly call - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script on your javascript.

Then use NSOperation to run that in parallel.

Any reason that might not work for you? I think it would avoid displaying anything for the UIWebView.

As a side note, I can't think of anything you can do in javascript that you can't do more quickly directly in Objective-C. Except maybe parsing javascript that you get externally, which may be considered a no-no by Apple, depending on the details.

Guessing at your goals: If you want to parse a JSON server reply, I recommend the json-framework library hosted on google code. It has a nice interface, and it is surprisingly easy to learn and integrate.

Upvotes: 3

Related Questions