问题
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.
回答1:
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.
回答2:
I think Parmanoir's article Taming JavascriptCore within and without WebView may give you some advice.
回答3:
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.
来源:https://stackoverflow.com/questions/1302276/run-javascript-without-uiwebview-possible