Run javascript without UIWebView possible?

微笑、不失礼 提交于 2021-02-08 15:22:06

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!