Подтвердить что ты не робот

Вставить механизм JavaScript в приложение iOS

Интересно, успешно ли кто-то портировал движок/интерпретатор javascript для iOS. Я пишу iPhone-игру, в которой я бы хотел использовать Javascript как язык сценариев высокого уровня (AI, игровой процесс и т.д.), Но для этого мне нужно скомпилировать JS-движок в статическую библиотеку и связать ее с моя цель-программа для iPhone OS. Есть какой-то кандидатский JS-движок, на который я смотрю, но я не мог найти успешных дел для этого.

Вот двигатель js, который я надеялся использовать для iOS

  • javascript engine google V8
  • mozilla SpiderMonkey

Альтернативой является использование интерфейса обратного вызова UIWebView's Javascript, но для этого требуется загрузить весь UIWebView в память, и я слышал, что он обычно медленный по производительности.

Цените, если у кого-то был подобный опыт, чтобы сделать это или знать какие-либо ссылки для этого!

[ОБНОВЛЕНО], как сказал Костис, Apple внесла JavascriptCore в WWDC 2013

4b9b3361

Ответ 1

Для будущих зрителей теперь есть фреймворк JavaScriptCore, представленный в новом iOS 7. Он делает магию! Обертка, разворачивание значений с/на JS/ Objective-C, вызывающие функции, обратные вызовы, все!

К сожалению, на данный момент документация очень плохая. Вы можете найти презентацию из события WWDC 2013 и некоторую дополнительную информацию в файлах заголовков (cmd + щелкните по имени файла заголовка в Xcode). Есть также несколько учебников по интернетам, которые просто копируют то, что делает парень в презентации WWDC.

Я использовал его для одного из моих проектов, он действительно мощный. Единственное, что мне не понравилось, это то, что он передавал объекты из JS в ObjC по значению, т.е. Ссылка была потеряна. Возможно, это было обходным путем, но я не смог найти ничего без надлежащей документации.

Надеюсь, это поможет кому-то:)

Ответ 2

Есть два проекта, которые могут вас заинтересовать:

Абсолютно возможно создать и загрузить движок JavaScript с вашим приложением iOS, см. http://www.phoboslab.org/log/2011/04/ios-and-javascript-for-real-this-time. Титан тоже делает это: https://github.com/appcelerator/webkit_titanium/tree/master/Source/JavaScriptCore. Также см. http://www.phoboslab.org/log/2011/06/javascriptcore-project-files-for-ios.

Я также сделал небольшое приложение, в котором показано, как использовать АО на iOS: https://github.com/jfahrenkrug/AddressBookSpy

Enjoy.

Ответ 3

Взгляните на проект с открытым исходным кодом Ejecta​​strong > , который включает JavaScriptCore. Он предоставляет API-интерфейс холста HTML5 и использует OpenGL и OpenAL.

Ответ 4

Если вы в конечном итоге захотите перенести игру на что-то другое, кроме iOS (или у вас есть другие причины, чтобы избежать использования фирменных интерфейсов Apple), вы можете использовать MuJS. Это небольшая библиотека, предоставляющая переводчик JavaScript, который легко вставлять и расширять.