我有一个适用于linux,windows和android的现有c ++ / java项目,我也希望它能在firefox OS(B2G)上运行。 我为FFOS构建了我的项目的二进制文件(守护进程和客户端),并使用adb shell在命令行上对它们进行了测试。问题是如何使用javascript通过用户应用程序访问该守护进程。
由于FFOS将HTML / JS / CSS用于应用程序,因此一个建议是使用“emscripten”工具将整个项目转换为javascript。但考虑到我的项目的大小和复杂性,这似乎不起作用(许多错误,缺少头文件等)。它使用一些低级功能,如创建UDP数据包,发送多播数据包以及监听和连接到tcp / udp端口; javascript API缺少这些功能(我错了吗?)。
另一个建议是使用Web IDL(需要修改FFOS gecko引擎),但我不确定它在我的场景中如何帮助我。
任何想法/提示/建议将不胜感激。 感谢。
答案 0 :(得分:4)
无法在具有非root设备的Firefox OS上安装二进制文件。打包的应用程序仅支持HTML / JS / CSS:https://developer.mozilla.org/en-US/Marketplace/Publishing/Packaged_apps
WebIDL在这里没有帮助,因为您也无法修改已安装的Gecko或任何底层二进制文件。这只适用于您要求操作系统并希望添加新的Web API。
emscripten可能是一个不错的选择 - 有一个活跃的Google群组,您可以在那里找到有关编译错误的帮助:https://groups.google.com/forum/#!forum/emscripten-discuss
将您的本机代码置于远程Web服务之后是否合适?这有一些缺点,例如确保它是安全的,并使您的应用程序需要服务器连接(可能需要缓存用于离线目的),但如果您已经运行了Web服务,特别是如果您的应用程序已经需要连接,那么它就是没有太大的区别。