我正在为客户端开发桌面软件,我正在考虑 UI,我将使用 HTML5+JS 等标准 Web 技术,并计划简单地将我的软件打包到 Chrome/Firefox 等现代浏览器的无头版本中。例如,它只是浏览器的页面查看器/渲染引擎部分,没有边框/菜单/选项卡/快捷方式/配置文件等。以独立于平台的方式完成此任务的最简单方法是什么。我知道 Mozilla 有像Prism / Chromeless这样的项目,但它们已经一年多没有更新了。
9 回答
你考虑过 Mozilla 的 XUL 语言吗?它是 Mozilla 项目中用于构建用户界面的 XML 语言。它是由他们的壁虎引擎在独立的 Mozilla Xulrunner 中呈现的,它可以与您的 XML 和 javascript 一起打包到一个可执行包中。
如果尺寸不是问题,您可以使用来自http://www.appcelerator.com/
的钛金属
它几乎可以在每个平台上运行。这就是他们用来建立奇妙清单的东西。http://www.6wunderkinder.com/wunderlist/
如果您关心大小,您可以构建一个简单的包装器,它可以启动用户首选的浏览器,而无需任何控件和工具栏。
QtWebkit 应该是一个合理的选择。您可以使用 Qt SDK 或 QtCreator 制作一个简单的应用程序。您可以将 HTML/CSS/JS 嵌入到 Qt 资源文件中的应用程序中。请检查以下源代码:
#include <QtGui/QApplication>
#include <QWebView>
#include <QNetworkProxy>
class MainWin : public QWebView
{
public:
explicit MainWin(QWidget * parent = 0) {
m_network = new QNetworkAccessManager(this);
// Setup the network proxy when required!
//m_network->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, "10.1.1.80", 80));
page()->setNetworkAccessManager(m_network);
// You can use the internal HTML/Javascrip/CSS by
// specify qrc:// URLs refer to resources. See resource.qrc
QUrl startURL = QUrl("http://www.google.com");
// Load web content now!
setUrl(startURL);
}
private:
QNetworkAccessManager * m_network;
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWin w;
w.show();
return a.exec();
}
这是一个带有窗框的工作示例!
它就像浏览器一样工作。
你看过 Adobe AIR 吗?
在你的情况下,我想我会选择Arora。它自 2010 年以来一直没有维护,但假设它按原样运行稳定,它有一些很棒的优点:
它可以在大量平台上运行,并且具有良好的 HTML 和 Javascript 合规性,因为它基于 Webkit。(Apples Safari 是基于它构建的。)此外,任何小问题都可能得到解决,因为您应该或多或少地从头开始开发您的应用程序。采用像您这样的方法的好处还在于,如果适合您,您将来可以很容易地用其他东西替换捆绑的浏览器。
或者使用Qt,非常跨平台,也可以嵌入Webkit。
我过去曾为此目的使用过 WebKit(依赖于 Cocoa 中的系统 WebView 控件,并使用Brent Fulgham 的适用于 Windows 的 WebKit 的 Cairo 端口)。
webkit.org 上的 WebKit 项目包括该端口(以及 Qt 和 GTK+ 以及许多其他端口)。
我建议使用 Adobe AIR。我看到您提到您不喜欢 Adobe 产品及其昂贵的 IDE。但是,AIR 是免费的,您可以使用任何您认为合适的 IDE(Aptana是构建在 Eclipse 之上的不错选择)。
我用 Adobe AIR 做了一个音乐播放器。那是大约一年前,从那时起他们发布了Adobe AIR 3。完整的功能列表很长,但简而言之,它支持常见的浏览器内容(JS、Flex 等)和一些原生内容。例如,您可以浏览计算机上的文件或显示 PDF。很值得一试。
必须是一个浏览器吗?考虑在 OSX 上使用 webkit,在 Windows 上使用 IE。然后你可以制作一个带有小接口的小包装器。好处是您不必打包自己的浏览器,而是使用操作系统提供的内容,从而使程序更小。
这些天电子是最好的:http: //electron.atom.io/