打包无头浏览器的最佳方法是什么?

时间:2012-02-10 11:40:12

标签: firefox google-chrome web desktop-application headless-browser

我正在为一个客户端开发一个桌面软件,我正在考虑用户界面,我会使用像HTML5 + JS这样的标准网络技术,并计划简单地打包一个现代浏览器的无头版本,如Chrome / Firefox我的软件。例如,它只是浏览器的页面查看器/呈现引擎部分,没有边框/菜单/标签/快捷方式/配置文件等。以平台无关的方式实现此目的的最简单方法是什么。我知道Mozilla有像Prism / Chromeless这样的项目,但是一年多来都没有更新过。

9 个答案:

答案 0 :(得分:1)

您是否考虑过Mozilla的XUL语言?它是Mozilla项目中用于构建其用户界面的XML语言。它由他们的gecko引擎在独立的Mozilla Xulrunner中呈现,可以将您的XML和javascript打包到可执行包中。

答案 1 :(得分:1)

如果尺寸不是问题,您可以使用http://www.appcelerator.com/中的钛 它几乎可以在每个平台上运行。这就是他们用来建立奇妙清单的方式。 http://www.6wunderkinder.com/wunderlist/
如果你关心大小,你可以构建一个简单的包装器,它启动用户首选的浏览器而不需要任何控件和工具栏。

答案 2 :(得分:1)

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();
}

这是一个带窗框的工作示例! Look like this! 它就像浏览器一样工作。

答案 3 :(得分:0)

你看过Adobe AIR吗?

答案 4 :(得分:0)

我想我会在你的情况下选择Arora。它自2010年以来一直没有得到维护,但假设它运行稳定,它有一些很棒的优点:

它运行在令人印象深刻的平台上,并且具有良好的HTML和Javascript兼容性,因为它基于Webkit。 (建立在哪个苹果Safari之上。)此外,任何小问题都可能可以解决,因为你应该从头开始或多或少地开发你的应用程序。像你这样的方法的好处还在于,如果适合你,你可以很容易地用未来的其他东西替换捆绑的浏览器。

或者使用Qt,这是非常跨平台的,可以also embed Webkit

答案 5 :(得分:0)

我已经过去了,我已经将WebKit用于此目的(依赖于Cocoa中的系统WebView控件,并使用Brent Fulgham's Cairo port of WebKit用于Windows)。

webkit.org上的WebKit项目包括该端口(以及Qt和GTK +以及许多其他端口)。

答案 6 :(得分:0)

我建议使用Adobe AIR。我看到你提到你不喜欢Adobe产品及其昂贵的IDE。但是,AIR是免费的,您可以使用任何您认为合适的IDE(Aptana是构建在Eclipse之上的不错选择。)

我用Adobe AIR做过音乐播放器。那是大约一年前,从那以后他们已经释放了Adobe AIR 3。完整的功能列表非常长,但简而言之,它支持通常的浏览器内容(JS,Flex等)和一些原生内容。例如,您可以浏览计算机上的文件或显示PDF。值得一试。

答案 7 :(得分:0)

必须是一个浏览器吗?考虑在Windows上使用OSX和IE上的IE。然后你可以用一个小接口制作一个小包装器。好处是您不必打包自己的浏览器,而是使用操作系统提供的内容,从而产生较小的程序。

答案 8 :(得分:0)

近来电子是最好的:http://electron.atom.io/