Запуск node.js в iOS / Android

3

Да, вопрос кажется немного странным (зачем запускать сервер на мобильном устройстве, а не сервер доступа через службу REST), но все же я хотел бы получить ваше мнение об этом, и мне действительно нужно, чтобы он работал на устройстве.

На данный момент я нашел jxcore (https://github.com/obastemur/jxcore-android-basics), который позволяет запускать node.js в Android и iOS. Но я еще не проверял его.

Итак, как можно запускать node.js на платформах iOS/Android?

Теги:
jxcore

6 ответов

2

На сегодняшний день существует альтернатива JXcore: Node.js для мобильных приложений, и она активно поддерживается.

По своей сути проект предоставляет собственную библиотеку для встраивания Node.js в собственные приложения для Android и iOS; но он также поставляется с плагинами для React Native и Cordova.

Предварительно созданные двоичные файлы для библиотеки доступны для Android armeabi-v7a, x86, arm64-v8a, x86_64 и для 64-разрядных iOS.

Основная библиотека - это fork nodejs/node-chakracore, которая, в свою очередь, является fork nodejs/node. Версия Android довольно много правильная Node.js, построенная как библиотека, с несколькими исправлениями переносимости. Версия iOS использует механизм ChakraCore вместо V8 (замена V8 на ChakraCore возможно благодаря изменениям в вилке nodejs/node-chakracore).

Плагины React Native и Cordova упрощают добавление Node.js в приложения, созданные с использованием этих фреймворков. Код Node.js работает в отдельном движке и потоке, чем структура (React Native/Cordova). Связь между двумя мирами JavaScript достигается через мост обмена сообщениями, предоставляемый плагинами.

Более подробная информация, включая документацию, доступна на веб-сайте проекта.

(Полное раскрытие: я работаю в компании, которая разрабатывает Node.js для мобильных приложений.)

2

JXcore - это fork node.js, специализирующийся на мобильных (android, ios, wp) и IoTs. См. Это сообщение в блоге для первого приложения node.js для мобильных приложений в App Store.

Для стартера прочитайте README для этого репозитория при использовании node.js с Cordova на мобильном телефоне. Если вы используете google jxcore и mobile, вы должны найти несколько учебных пособий и образцов в Интернете.

0

Есть еще одна альтернатива: LiquidCore.

LiquidCore позволяет виртуальным машинам Node.js работать внутри приложений Android и iOS. Он обеспечивает полную среду выполнения, включая виртуальную файловую систему и встроенную поддержку SQLite.

LiquidCore является полным портом узла 8. 9+ и поддерживает все навороты.

0

Вы можете запускать Node на iOS и Android с помощью LiquidCore.

LiquidCore позволяет запускать виртуальные машины Node.js внутри приложений Android и iOS. Он обеспечивает полную среду выполнения, включая виртуальную файловую систему и собственную поддержку MySQL.

LiquidCore - это полный порт узла 8. 9+ и поддерживает все колокола и свистки. На iOS его магия происходит от слоя перевода, называемого V82JSC, который делает именно то, что он звучит. Вызовы V8 транслируются во время выполнения в собственный JavaScript-код Apple, который позволяет скомпилировать узел с изменением практически никакого кода в узле. Это позволяет быстрее и быстрее переносить более новые версии узла и с меньшим количеством ошибок.

0

Когда вы загружаете источник, вы найдете android-configure, поэтому, по крайней мере, для Android это возможно, если вы скомпилируете его самостоятельно. Для iOS я не знаю. Кто-то сумел заставить его работать на iOS 4 года назад, так что это кажется возможным. См. Также этот связанный вопрос.

Правильное место, чтобы спросить это, вероятно, является одним из списков рассылки Node.js, так как вам, вероятно, понадобится помощь некоторых людей, глубоко вовлеченных в Node.js.

Если вы ориентируетесь на iOS App Store, имейте в виду, что вам разрешено запускать интерпретаторы (JavaScript интерпретируется по определению), но вы не можете запускать загруженный код. Все ваши запущенные Node.js должны быть включены в пакет приложений уже.

-2

Node.js может быть построен для ARM, хотя другое решение лучше - просто используя webView, насколько это Chrome на базе Android и Safari, основанных на iOS.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню