在iOS应用程序中嵌入JavaScript引擎

den*_*ycd 40 javascript iphone v8 ios

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

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

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

另一种方法是使用UIWebView'sJavascript回调接口,但这需要将整个加载UIWebView到内存中,我听到的经验是性能通常很慢.

感谢是否有人有类似的经历或知道任何参考!

[更新]正如Kostis所说,Apple 在WWDC 2013中引入了JavascriptCore

Joh*_*rug 25

您可能对以下两个项目感兴趣:

  1. JavaScriptCore的-IOS
  2. iMonkey

使用iOS应用程序构建和发布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

请享用.


Kos*_*tis 14

对于未来的观众,现在有新的iOS 7中引入的JavaScriptCore框架.它真的很神奇!从/向JS/Objective-C包装,展开值,调用函数,回调,一切!

不幸的是,目前文档确实很差.您可以从WWDC 2013事件中找到演示文稿,并在头文件中找到更多信息(cmd +单击Xco​​de中的头文件名).还有一些关于互联网的教程,它只是复制了WWDC演示文稿中的内容.

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

希望这会帮助别人:)