Как назвать Objective C из JavaScript?

C++ (или C в этом отношении) дает Вам мелкомодульный контроль над Вашими структурами данных. Если Вы хотите к биту - вертят Вас, имеют ту опцию. Большой управляемый Java или приложения.NET (OWB, Visual  Studio  2005 ), которые используют внутренние структуры данных библиотек Java/.NET, несут багаж с ними. Я видел, что сессии разработчика OWB используют по 400  МБ RAM и ПРЕДЛОЖЕНИЙ на куб или дизайн ETL, входящий 100's МБ также.

На предсказуемой рабочей нагрузке (такой как большинство сравнительных тестов, которые много раз повторяют процесс) JIT может получить Вас код, который оптимизирован достаточно хорошо, что нет никакого практического различия.

IMO на крупных приложениях различием не является так JIT как структуры данных, что сам код использует. Где приложение тяжело памятью, Вы получите менее эффективное использование кэша. Неудачные обращения в кэш на современных центральных процессорах являются довольно дорогими. То, где C или C++ действительно побеждают, - то, где можно оптимизировать использование структур данных для игры приятно с кэшем ЦП.

41
задан jtbandes 24 August 2011 в 06:32
поделиться

2 ответа

Стандартный обходной путь для UIWebView - установить UIWebViewDelegate и реализовать метод webView: shouldStartLoadWithRequest: navigationType: . В вашем коде JavaScript перейдите к некоторому поддельному URL-адресу, который кодирует информацию, которую вы хотите передать своему приложению, например, скажем:

window.location = "fake://myApp/something_happened:param1:param2:param3";

В методе делегата найдите эти поддельные URL-адреса, извлеките необходимую информацию, выполните любое действие подходящее и верните NO , чтобы отменить навигацию. Вероятно, лучше всего отложить любую длительную обработку, используя некоторую разновидность performSelector .

52
ответ дан 27 November 2019 в 00:24
поделиться

Предполагая, что вы создаете приложение, вы можете посмотреть, как PhoneGap реализует его (или даже использовать). Это библиотека, которая поддерживает обмен данными между JS и OBJ-C. Существуют также другие библиотеки и решения.

Если вы говорите о веб-приложении (то, что пользователь получает из Mobile Safari), вы не можете добраться до Objective-C оттуда.

1
ответ дан 27 November 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: