【问题标题】:How to embed a web browser control in a cross-platform application?如何在跨平台应用程序中嵌入 Web 浏览器控件?
【发布时间】:2011-02-12 20:28:53
【问题描述】:

我需要快速编写这个应用程序:一个简单的窗口 运行 html 页面的 Web 浏览器控件。 浏览器 UI(例如导航按钮)应该被禁止显示。

作为 .net 开发人员,我会将 WebBrowser OCX 嵌入到 Windows 窗体中。 但这也必须在 Mac 上运行!

我找到了以下跨平台候选人。 你会选择哪一个(在简单性、稳定性、社区支持等方面):

  1. wxWidgets:http://www.kirix.com/labs/wxwebconnect.html

  2. QT:http://www.youtube.com/watch?v=Ee8eRwjbcFk&feature=related

  3. 单声道:http://www.mono-project.com/WebBrowser

【问题讨论】:

  • 感谢响应者。我终于使用了 Qt,它在两个平台上都具有最佳外观,并且带有 LGPL 选项。

标签: macos cross-platform browser webbrowser-control embed


【解决方案1】:

QtWebkit:

WebKit 的 Qt 端口目前可以在 Linux(包括 Maemo)、Windows、Mac OS X 和 Symbian 上编译和运行。

点击here获取构建说明。

随端口一起构建了一个非常简单的测试浏览器。

【讨论】:

    【解决方案2】:

    另一种选择可能是使用Eclipse Standard Widget Toolkit 将其编写为Java 应用程序。这包括嵌入 IE、Safari 或 Firefox 的浏览器控件,具体取决于当前平台,并且通常在 OS X 上表现良好。

    【讨论】:

      【解决方案3】:

      如果您主要是 .NET 开发人员并且不太关心制作一个集成良好的 Mac 应用程序(在 Mac 用户期望的所有方面都表现得像 Mac 应用程序),那么 Mono 可能是最佳选择.考虑到你的问题空间,这听起来就像你在哪里。也就是说,如果它适用于您的问题,请特别注意 WebBrowser 页面的此限制:

      Mono 网络浏览器目前缺少 支持window.external, 允许 Javascript 代码的桥 嵌入浏览器进行通信 使用托管世界 ObjectForScripting。

      QT 非常成熟,如果你想用 C++ 开发它,它是一个很好的平台。请记住,如果这是商业应用程序,则需要支付许可费。

      我玩过一些 wxWidgets。这里最大的优势是它可能是最小的发行版,因为你只需要包含你需要的东西。如果所有你需要的是网络浏览器,我会看看这个,但根据我的经验,很难让 wxWidgets 程序看起来不错或在 Mac 上正常运行(或在 Windows 上)。

      【讨论】:

      • Qt 实际上在 LGPL 下可用有一段时间了,因此如果您想保持代码封闭,则无需购买商业许可证。如果您只有 .Net 的使用经验并且您不想让它看起来不错,我同意 Mono 可能是最佳选择。
      • @Kitsune 感谢您提供有关 LGPL 的说明。我已经过时了大约 18 个月。
      【解决方案4】:

      为什么不使用嵌入式 Webkit?

      【讨论】:

      • WebKit 本身不足以构建这样的跨平台页面查看器。你还需要生成一个窗口等。
      【解决方案5】:

      既然你有(根据你的帖子做出的假设).Net 经验,我会选择 Mono。

      您是否考虑过 Adob​​e AIR? http://www.adobe.com/products/air/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-24
        • 1970-01-01
        • 2011-11-27
        • 2010-10-30
        • 1970-01-01
        • 2012-04-28
        • 1970-01-01
        • 2012-02-08
        相关资源
        最近更新 更多