在iOS应用程序中embeddedJavaScript引擎

我想知道是否有人已经成功地将JavaScript引擎/解释器移植到iOS。 我正在写一个iPhone游戏,我想使用Javascript作为高级脚本语言(AI,游戏玩法等),但要做到这一点,我需要将JS引擎编译成静态库,并将其链接到我的iPhone OS的ObjectiveC程序。 有一些我正在看的候选JS引擎,但我找不到任何成功的案例。

这里是我希望用于iOS的js引擎

  • 谷歌的V8 JavaScript引擎
  • Mozilla的SpiderMonkey

另一种方法是使用UIWebView's Javascriptcallback接口,但是这需要将整个UIWebView加载到内存中,而我所听到的经验是它的性能通常很慢。

感谢如果有人有类似的经历这样做或知道任何参考!

正如Kostis提到的,苹果公司在WWDC 2013上推出了JavascriptCore

对于未来的观众来说,现在已经有了新的iOS 7中引入的JavaScriptCore框架。 包装,从/打开JS / Objective-C的值,调用函数,callback,一切!

不幸的是,目前文档很差。 您可以从WWDC 2013事件中find演示文稿,并在头文件中find更多信息(cmd +单击Xco​​de中的头文件名称)。 互联网上还有一些教程,只是复制了WWDC演示文稿中的那个人。

我用它来做我的一个项目,它非常强大。 唯一我不喜欢的是它通过值传递了从JS到ObjC的对象,即引用丢失了。 这可能是一个解决方法,但没有适当的文件,我找不到任何东西。

希望这会帮助别人:)

有两个你可能感兴趣的项目:

  1. JavaScriptCore的-IOS
  2. iMonkey

使用iOS应用程序构build和发布JavaScript引擎是完全可能的,请参阅http://www.phoboslab.org/log/2011/04/ios-and-javascript-for-real-this-time 。 Titanium也是这么做的: https : //github.com/appcelerator/webkit_titanium/tree/master/Source/JavaScriptCore 。 另见http://www.phoboslab.org/log/2011/06/javascriptcore-project-files-for-ios

我也做了一个小应用程序,展示了如何在iOS上使用JSC: https : //github.com/jfahrenkrug/AddressBookSpy

请享用。

看看embeddedJavaScriptCore的开源项目Ejecta 。 它提供了HTML5canvasAPI,并使用OpenGL和OpenAL。

如果您最终希望将游戏移植到iOS以外的其他游戏(或者您有其他原因避免使用Apple的专有界面),则可以使用MuJS 。 这是一个小型的图书馆,提供了一个易于embedded和扩展的JavaScript解释器。