有没有人将 Firefox Web 浏览器技术嵌入到他们自己的 [非托管] C/C++ GUI 应用程序中,就像 IE 可以作为 COM 对象嵌入一样?(我想在 Linux 上做这个,而不是 Windows)。火狐有“更好”的替代品吗?只要我可以将它与非 GPL 代码一起使用,我对任何事情都持开放态度。我的需求是相当基本的;我只需要基本的 HTML 解析和静态本地文件的显示,但如果可以的话,我会利用更复杂的技术。我希望能够使用 JavaScript,但没有它我也能过得去。
5 回答
首先,您需要区分 HTML 引擎和 JavaScript 引擎。
Firefox 的 HTML 渲染引擎被称为 Gecko。这里是关于在您的应用程序中嵌入 Gecko的指南。
Firefox 的 JavaScript 引擎称为 SpiderMonkey,这里是如何在您的 C 应用程序中嵌入 SpiderMonkey
查看webkitgtk。它不是 Gecko,而是基于 Webkit。它基本上提供了一个可以在 GTK+ 应用程序中使用的 Web 浏览器小部件。如果你想嵌入 mozilla,在 Mozilla 存储库的 mercurial 存储库中有一些东西可以让你这样做,但上次我检查它似乎并没有得到大力支持。
可以在其他应用程序中使用 Firefox 的某些部分(例如 Gecko 渲染器)。有多种方法可以解决这个问题,包括wxWebConnect ,一个用于wxWidgets的 Web 浏览器控件。另请参阅嵌入 Gecko
另一个流行的解决方案是WebKit。同样,您可以通过多种方式使用它,包括QtWebKit(Qt 工具包的包装器)和 webkitgtk(SB 已经提到)。
正如Mozilla所说
不再支持嵌入 Gecko
所以看看前面提到的Chromium Embedded Framework或WebKit。或者,您可以关注 Mozilla 的新项目https://servo.org/。
您将找到更多关于是否可以像 WebView 一样在 Windows 窗体中嵌入 Gecko 或 Webkit 的最新信息?
看看CEF(Chromium Embedded Framework)。它与 WebKit 非常相似,它还嵌入了内置的 HTML 和 JavaScript 引擎,但具有更好的 WebGL 和 HTML5 Canvas 支持。它是在 BSD 许可下发布的。