【问题标题】:complete client side application using HTML 5使用 HTML 5 完成客户端应用程序
【发布时间】:2009-07-29 14:54:06
【问题描述】:

是否可以使用 HTML 5(它将嵌入聊天客户端、股票行情)+ JavaScript 创建一个完整的客户端应用程序,然后捆绑下划线 Firefox 3.5 引擎,以便用户可以将其作为桌面应用程序安装在Linux,然后它使用 firefox 3.5 引擎在自己的窗口中运行。该应用程序会将所有内容存储在本地存储中 - 例如 url、用户名等,并且不会与任何本地服务器交互。

它将是纯 HTML5 + 基于 JavaScript 的客户端 web 应用程序,将被打包,并且可以从启动脚本安装或启动。

或者不使用firefox 3.5引擎,我们可以使用Mozilla Prism将其转换为web app,然后打包。

【问题讨论】:

    标签: html firefox3.5


    【解决方案1】:

    好吧,你应该看看 xulrunner (https://developer.mozilla.org/En/XULRunner)。这是一个构建便携式应用程序的引擎……比如 Firefox。您将获得完整的 Gecko 引擎 + 对环境的完全访问权限,就像一个普通的应用程序一样。 (XUL 类似于 HTML——它仍然是基于 XML 的 UI 描述——但它更适合开发桌面应用程序——使用原生/几乎原生 UI)。

    【讨论】:

    • 想利用 html5 离线能力 + 与 web sockets 的实时集成,也想使用 localstorage 数据库来存储用户选择的布局/颜色/perfereneces 等。
    • 我会这样总结:firefox 是一个 XULRunner 应用程序(高度定制,但你也可以这样做)。你可以做任何火狐能做的事情。 XULRunner 为您提供了完整的 Gecko/Javascript 引擎。所以是的,您可以进行离线存储。我不知道“网络套接字”是如何工作的,但如果你可以在普通网站上做到这一点,那么肯定可以使用 XULRunner 来完成。
    【解决方案2】:

    听起来您尝试做的事情可以用 Adob​​e AIR 来完成(尽管目前还没有 HTML5 支持)。 Adobe AIR 应用程序可以只用 HTML 和 JavaScript 编写,但 AIR 使用 WebKit 引擎,而不是 FireFox 的。

    【讨论】:

      【解决方案3】:

      应用程序部分肯定是可行的(并且几乎可以在任何地方工作,而不仅仅是 Linux),捆绑似乎是更成问题的部分——并不是每个 Linux 发行版都会喜欢你构建捆绑 Firefox 的特定方式,而不是提到您将自己与地球上几乎所有非 Linux 机器(以及每个具有非 x86 兼容处理器等的 linux 机器)隔离开来……这一切都是为了捆绑。你不能在没有捆绑的情况下停止在 prism aka webrunner 部分吗?

      【讨论】:

      • 它适用于特定版本的 Linux。您是否想说,我们只是创建一个 prism 应用程序并捆绑它,谁想要运行它 - 她/他必须安装 Firefox 3.5 和 prism?
      【解决方案4】:

      我几乎可以肯定我已经看到使用 Qt Webkit 完成类似的事情了。只需几行 C++ 代码就可以使用 Web 浏览器控件创建窗口并加载本地页面。该页面创建了应用程序的 UI。但是我找不到链接。

      【讨论】:

        【解决方案5】:

        我赞同 liori 关于使用 XULRunner 的说法。您可以轻松部署 HTML 应用程序,更重要的是,当您遇到 HTML 5 或其在 Gecko 中的支持级别的限制时,您可以使用 XUL API 解决它。

        (AFAIK,Firefox 3.5 不支持 HTML 内容中的任何套接字 API,也不支持 Web 应用中的离线存储,仅支持 localStorage 部分)。

        【讨论】:

        • 我只是想让它与firefox 3.5一起工作作为第一步,但我的应用程序使用google ajax api,我们可以使用manifest在离线模式下制作google api(javascripts)吗?我们也通过:file:///C:/Projects/ui/html/index.htm 运行,它不保存任何东西,它是否检查它应该从 http:// 开始
        • 你应该这么说的!是的,file:// 文档无法访问 http://(因为它们可以访问其他一些 file:// URL)。您有多种解决此问题的方法,但这是一个不同的问题,应单独提出。
        猜你喜欢
        • 2016-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多