我需要使用HTML / CSS / JavaScript构建我的应用程序GUI 所有跨平台的C ++后端。我做了简单的测试 使用QtWebKit,XULRunner和Mozilla。
从简单的睾丸中我发现了一些非常好的东西 击败我,这是浏览器的部署规模 库/框架。它很大:8 MB及以上。
我错过了某种较小的嵌入式浏览器吗?
答案 0 :(得分:3)
我认为dillo需要c调用约定,但它可能会满足您的需求。没有javascript或flash,或者或者,它确实支持CSS。
再次阅读问题时,我发现你需要javascript,dillo目前不支持。遗憾。
答案 1 :(得分:3)
我不了解其他平台,但在Windows上执行此操作的最小方法是使用系统内置的Web浏览器控件。它基于COM,编程可能非常复杂。下面的代码会让你成为一个如此野兽:
HWND htmlWindow = ::CreateWindowExA(
dwExStyle,
ATLAXWIN_CLASS,
"about:blank",
dwStyle,
x, y, w, h,
hwndParent,
NULL,
hInstance,
NULL
);
CAxWindow2 helperWindow;
helperWindow.Attach(htmlWindow);
CComPtr<IWebBrowser2> theWebBrowserControl;
HRESULT hr = helperWindow.QueryControl(&theWebBrowserControl);
上面的代码示例是多周痛苦地尝试理解这个COM事物的结果。好吧,希望你发现它有用......
注意:上面的示例取决于ATL(不是MFC)。
答案 2 :(得分:1)
我有一个可能解决问题的建议:
在Windows上使用IE控件,在Linux上使用Mozilla(可能会将其作为可加载的动态库提供)。
这将使您的应用程序尽可能小,但您必须围绕IE / Mozilla创建一个包装器,以便从代码中轻松处理它们,并且您的HTML / CSS / JS必须是跨浏览器的。
答案 3 :(得分:0)
另一种方法,完全未经测试:在您的程序中包含一个简单的Web服务器(例如Boost :: Asio有关于此事的教程/示例),可能在一个单独的线程中。然后让用户选择的Web浏览器浏览到您的程序刚启动的Web服务器。
答案 4 :(得分:0)
8 MB:你在谈论文件(或闪存)的大小?我希望浏览器的操作内存要求比代码库更重要......但我不会在你的问题中看到这一点。既然您指的是Qtwebkit,您的产品中是否还有其他Qt库?
很大程度上取决于您的需求;兼容性,CSS,屏幕尺寸,性能如何?免费软件或许可?哪种许可条件(即GPL或绝对不是)。你能更具体一点吗?
性能良好且符合标准的浏览器很容易花费16+ MByte。我发现Opera,特别是opera devices非常有趣;它非常标准,可定制和高性能,但它的内存使用也在16-32 MByte区域。