2013-06-05 2 views

ответ

0

Для передачи объекта из Obj-C в JS у вас нет выбора, кроме как сериализовать и десериализовать его. Наиболее подходящим форматом данных, естественно, будет JSON. Этот учебник поможет вам: http://www.raywenderlich.com/5492/working-with-json-in-ios-5

Из вашего вопроса я понимаю, что вы не просто хотите поговорить с JavaScript, но и в контексте JavaScript внутри UIWebView. К сожалению, вы не можете напрямую обращаться к объекту JSContext UIWebView так, как вы можете получить к нему доступ в Cocoa на Mac. Но если вы просто хотите перейти от Obj-C к JavaScript БЕЗ использования UIWebView, вы можете сделать это, отправив свою собственную версию JavaScriptCore с вашим приложением. Если вы это сделаете, вы можете перемещать объекты Obj-C и JS между двумя мирами. Это демонстрационный проект, который демонстрирует это: https://github.com/jfahrenkrug/AddressBookSpy/blob/master/AddressBookSpy/AddressBookSpy/ABSEngine.m

0

I forked phoboslab's repo и обновил его до последнего verson из WebKit (начиная с последней пятницы). Он совместим с iOS 5 и 6 и включает мост Objective-C в Javascript, который будет показан в iOS 7 (без использования частных фреймворков или функций).

Вы можете найти на GitHub репо по адресу: https://github.com/darionco/JavaScriptCore-iOS

Я также добавил ZIP файл в репозиторий, содержащий библиотеку (.a) и необходимые файлы заголовков для удобства.

Вы можете найти учебник о том, как использовать мост для передачи объектов здесь: http://www.steamclock.com/blog/2013/05/apple-objective-c-javascript-bridge/

Ура!

Смежные вопросы