如何在Delphi应用程序中嵌入除IE<n>之外的浏览器对象

36

使用默认的 TWebBrowser 可以轻松地嵌入一个 Web 浏览器。不幸的是,这个默认的浏览器内核是 IE<n>。

我想知道怎样集成 Gecko 或 WebKit 内核的浏览器。

  1. 有没有 VCL 示例可以参考?
  2. 如果没有,应该如何实现?
  3. 哪里可以找到可嵌入的 Gecko 和/或 WebKit 内核的最佳位置?
5个回答

21

我并没有暗示TWebBrowser是可插拔接口。我完全知道它是IE :) - Gustavo Carreno
1
我很喜欢你的链接,但是自从我早期在谷歌上搜索这个问题时没有找到任何有趣的东西 :) - Gustavo Carreno
你链接到的newbielabs.com是错误的,正确链接应该为:http://ftp.newbielabs.com/Delphi%20Gecko%20SDK/。 - stukelly
Mozilla/Control 的链接也已更改。现在它在 http://www.adamlock.com/mozilla/ 中。可悲的是,自2006年以来就没有得到关注。现在似乎建议不再使用... :( - EMBarbosa
@EMBarbosa:谢谢。我也修复了那个链接。 - Lars Truijens
显示剩余2条评论

16
一个可行的替代方案是CEF - Chromium Embedded Framework,它封装了Chromium浏览器,而Chromium浏览器本身封装了WebKit。该库以普通DLL文件形式提供,具有C API导出。
code.google.com/p/delphichromiumembedded上有一个Delphi接口可用。
我已经使用自己的接口实现,并且非常好用。虽然没有THTML或IE易于正确使用,但对于需要强大且可嵌入浏览器的人来说非常棒。

谢谢你的建议,Carlos。只有一个小请求:你能否添加一下你提到的那些URL链接吗?我没有编辑你的答案的权限 :) 谢谢。 - Gustavo Carreno
1
最新版本的 Chromium 嵌入式(CEF)可以在此处找到:https://github.com/salvadordf/CEF4Delphi - R. Hoek

3

编辑:很遗憾,Lars已经先我一步了。

好的,基于Gecko引擎的ActiveX控件试图呈现IWebBrowser API的精确副本(TWebBrowser使用该API)。

你可以在这里找到它:http://www.iol.ie/~locka/mozilla/control.htm不幸的是,看起来它已经有一段时间没有更新了。最后一个版本是基于Gecko 1.7.12构建的,而我认为Gecko目前已经更新到1.9.x(用于Firefox 3)。


3

3
由于PBear的原始作者无法再支持代码,我们将开发工作转移到了http://sourceforge.net/projects/htmlviewer。请留意。 - PatrickvL
@PatrickvL:HtmlViewer软件还在继续开发吗? - Edelcom
2
@Edelcom:如果您查看htmlviewer项目网站,您会发现它已经在此期间转移到了Google Code。如果您在这里http://code.google.com/p/thtmlviewer/updates/list查看,您会发现最近的活动仅在几天前,所以我认为答案是“是的!”;-) - PatrickvL

2
在过去的三年中,我很少遇到将Gecko嵌入Delphi的情况。一个比较晚出现的库是SourceForge上的GeckoSDK项目。我曾经花了很多时间试图让嵌入式Gecko在Delphi中正常工作。我们最初尝试使用Delphi和Gecko 1.8构建基于Gecko渲染引擎的内部“浏览器”。现在我们已经转向,我们的浏览器现在是一个XULRunner应用程序。我仍然有一些代码块留存在我的硬盘上,这些代码块来自那个早期尝试,但我还没有删除。

当Mozilla发布Gecko 2.0时,我认为将更容易将其嵌入Delphi中。Gecko中的XPCOM对象系统使得嵌入变得非常困难,因为大多数东西都返回NS_RESULT。特别是字符串。

编辑:我刚刚查看了我的旧书签(几乎全部失效),并搜索了一个基于Gecko的日语“bagel”浏览器的新网址,在这里找到了它,

这可能是你开始阅读优秀代码的最佳选择。不幸的是,代码中的注释是日语,并且作者从未回答过问题。请访问http://github.com/plus7/bagel/tree/master/Legacy

1
听起来Gecko 2.0很令人兴奋!您是否有更多信息的网页?也许有发布路线图和时间表等。 - Roland Bengtsson
据我所知,目前还没有Gecko 2.0的迹象。 - TomC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接