Заставить существующий проект C++ работать в Firefox OS

У меня есть проект C++/java, который работает на Linux, Windows и Android, и я хочу, чтобы он работал и на Firefox OS (B2G). Я собрал двоичные файлы (демон и клиент) моего проекта для FFOS и протестировал их в командной строке с помощью оболочки adb. Проблема в том, как получить доступ к этому демону через пользовательское приложение, используя JavaScript.

Поскольку FFOS использует HTML/JS/CSS для приложений, одним из предложений является преобразование всего проекта в javascript с использованием инструмента emscripten. Но, учитывая размер и сложность моего проекта, это, похоже, не работает (много ошибок, отсутствующие заголовочные файлы и т. Д.). Он использует некоторые низкоуровневые функции, такие как создание пакета UDP, отправка многоадресных пакетов, прослушивание и подключение к порту tcp/udp; Эти функции отсутствуют в API JavaScript (я не прав?).

Другим предложением было использовать Web IDL (требуется модификация движка геккона FFOS), но я не уверен, как это может помочь мне в моем сценарии.

Любые идеи / советы / предложения будут оценены. Благодарю.

1 ответ

Невозможно установить двоичные файлы на ОС Firefox с устройством без рута. Упакованные приложения поддерживают только HTML / JS / CSS: https://developer.mozilla.org/en-US/Marketplace/Publishing/Packaged_apps

WebIDL здесь не поможет, так как вы также не можете изменить Gecko или какой-либо из базовых двоичных файлов, уже установленных. Это будет применимо только в том случае, если вы разветвляете ОС и хотите добавить новые веб-API.

emscripten может быть хорошим вариантом - есть активная группа Google, вы можете найти там помощь по ошибкам компиляции: https://groups.google.com/forum/

Было бы целесообразно поместить ваш нативный код в удаленный веб-сервис? Это имеет некоторые недостатки, такие как обеспечение безопасности и использование приложением подключения к серверу (возможно, с кэшированием для автономных целей), но если вы уже запускаете веб-службу и особенно если ваше приложение уже требует подключения, то это не большая разница,

Другие вопросы по тегам