【问题标题】:GeckoFX Update for Gecko 2.0?Gecko 2.0 的 GeckoFX 更新?
【发布时间】:2011-03-23 19:30:09
【问题描述】:

当我上个月找到 GeckoFX 时,我真的很兴奋。我的雇主想在我们的桌面应用程序中分发一个嵌入式浏览器(以平滑从基于桌面的应用程序到基于 Web 的应用程序的过渡),并且能够使用 Gecko 而不是 IE 是一个奇迹!

我能找到的最新版本的 GeckoFX 使用 Gecko 引擎 (Xulrunner) 的 1.9.1 和 1.9.2 版本。这很好用,但它缺少本周 Firefox 4 (Gecko 2.0) 附带的许多好东西。

我已经拥有 Xulrunner 2.0 的分发版,但 GeckoFX 无法直接使用它。一些 XPCOM API 发生了变化,我敢肯定还有很多其他小的不兼容问题。我想说这应该很容易解决,但我不是 C++ 开发人员,所以我真的不知道。

我现在正在寻找的是以下之一,按优先顺序排列:

  1. 与 Xulrunner 2.0 兼容的 GeckoFX 已构建更新
  2. 另一个允许我在 C# Windows 应用程序中嵌入 Gecko 驱动的 Web 浏览器的解决方案。
  3. 关于我自己从哪里开始更新 GeckoFX 的建议(我的建议是指握住我的手和跟我说话,我是 6 的建议)

只是深入研究代码并尝试对所有错误进行排序并没有帮助。在尝试创建nsIWebBrowser 的实例时,我不断收到InvalidCastException (不,我无法获得比这更多的描述性,因为这就是所有错误消息和堆栈跟踪显示!)。由于似乎还没有人启动嵌入式 Firefox 4,所以一直在抓挠头和毫无意义的谷歌搜索。

想法?有什么建议吗?

【问题讨论】:

  • 我无法使用您的 Gecko Wrapper for .net 浏览以下网站。 premier.ticketek.com.au/shows/show.aspx?sh=KYLIEMIN11 请帮帮我,这对我来说很紧急。如果可能,请向我提供可以运行上述链接的示例应用程序。谢谢。
  • Adeel - 如果您遇到支持问题或遇到特定错误,请在 Google 代码网站上将其报告为问题 => code.google.com/p/leapin-lizard/issues/list。也就是说,请在您的要求中更加明确。该链接使用 Gecko Wrapper 运行良好,我担心您可能会要求某人为您构建应用程序。

标签: c# firefox4 geckofx


【解决方案1】:

在没有更深层次的帮助的情况下,我花时间自己去挖掘和解决问题。诀窍是理解ComImport,这是我以前没有使用过的东西。

事实证明,Mozilla 更改了 XPCOM 公开的一些 API 方法的 GUID。最重要的是,nsIWebBrowser 的 GUID 从 69E5DF00-7B8B-11d3-AF61-00A024FFC08C 更改为 33e9d001-caab-4ba9-8961-54902f197202

nsInterfaces.cs 中进行这一更改实际上修复了很多。

逐行检查并协调构建错误(尽管错误消息很隐晦)使我能够完成系统并创建一个确实运行 XULRunner 2.0 的构建。

不幸的是,能够构建和运行 Gecko 2 和公开整个 API 是两件截然不同的事情。我在 Google Code 上创建了一个项目,以容纳对 Gecko 2 的 GeckoFX 的完全重写:Leapin' Lizard。它本质上是原始 Skybound.Gecko 代码的一个分支,并在相同的开源许可下分发。

所以我现在有一个与 XULRunner 2.0 兼容的 GeckoFX 版本。它只是需要打磨。

【讨论】:

  • 遇到同样的问题,在哪里下载 Leapin' Lizard?因为 Google 代码页面没有显示任何下载...
  • 使用 Mercurial 查看代码。您想使用 Gecko 2.0 分支。一旦我清理完代码(XPCOM API 的整个块都丢失了),我会将构建发布为可下载的 ZIP 文件。现在,不幸的是,您必须检查代码并自己构建它。
  • 感谢,期待在 .NET 上运行 Gecko 的应用程序的“光明未来”。 ;-)
  • 我正在考虑将 xulrunner 2.0 支持添加到我的跨平台 geckofx 分支中,bitbucket.org/geckofx/geckofx 您的更改看起来是一个好的开始。知道它们有多完整吗?
  • 我可能已经完成了 API 的 25%。我还添加了很多文档,以使库更易于开发。不幸的是,它是巨大的,并且还没有对 HTML5 的完整 DOM 支持。这是待办事项清单上的,只是需要时间。
【解决方案2】:

目前没有包装 XulRunner 4.0 的预编译库。我是 MozNET 的作者,这是一个实际上正在积极开发的 Mozilla 包装器构建。我确实有一个使用 XulRunner 2.0 的半工作版本,但是它还没有完成。由于 XulRunner 2.0 中所做的更改,为了使 MozNET 与新版本完全兼容,仍有大量更改。目前我拥有完整的浏览支持、几乎完整的 DOM 对象访问和完整的拼写检查支持。该构建正在进行中,因为我仍在维护和支持 MozNET 1.9.2.17。

【讨论】:

  • 只是让您知道,当我尝试访问您的网站(支持 MozNET)时,它会一直超时。我正在考虑您的库,但没有 XulRunner 2.0 支持,它并不能真正满足我的需求……这就是为什么我推出了自己的库。对不起:-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多