2014-02-20 146 views
0

我需要创建一个跨平台(Win,Mac和Linux)应用程序嵌入WebKit浏览器与HTML5和WebGL支持。 到目前为止,我使用Java/SWT方式,但是在Windows上使用webkit只是部分可能的(仅限win32,safari 5),并且具有有限的html5支持,根本没有3D。跨平台应用程序嵌入Webkit支持WebGL支持

在linux下我顺利地嵌入了WebGL的支持webkit2gtk3在VALA这样的:

using GLib; 
using Gtk; 
using WebKit; 

public class Browser : Window { 
    private const string URL = "http://lo-th.github.io/Oimo.js/index.html"; 

    public Browser() { 
     this.add(this.create_web_window()); 

     this.destroy.connect(Gtk.main_quit); 
    } 

    private ScrolledWindow create_web_window() { 
     var view = new WebView(); 
     view.get_settings().set_enable_webgl(true); 
     view.load_uri(Browser.URL); 

     var scrolled_window = new ScrolledWindow(null, null); 
     scrolled_window.set_policy(PolicyType.AUTOMATIC, PolicyType.AUTOMATIC); 
     scrolled_window.add(view); 

     return scrolled_window; 
    } 

    public static int main(string[] args) { 
     Gtk.init(ref args); 

     var browser = new Browser(); 
     browser.resize(800,600); 
     browser.show_all(); 

     Gtk.main(); 

     return 0; 
    } 
} 

编译

valac --vapidir=. --pkg gtk+-3.0 --pkg webkit2gtk-3.0 --thread hellowebkit.vala 

我也有使用Python的成功是这样的:

#!/usr/bin/env python 

import gtk, webkit 

w = gtk.Window() 
w.set_title("Example Editor") 
w.connect("destroy", gtk.main_quit) 
w.resize(800,600) 

scroll = gtk.ScrolledWindow() 
w.add(scroll) 

browser = webkit.WebView() 
browser.get_settings().set_property("enable-webgl", True) 
scroll.add(browser) 

w.show_all() 

browser.open("http://lo-th.github.io/Oimo.js/index.html"); 

gtk.main() 

所以现在的问题是:是否有机会(和文档)来获得上述任何(com打桩)并且在Win32/64和OSX上运行并支持WebGL?

回答

2

也许这可以帮助

https://github.com/rogerwang/node-webkit

基于Chromium引擎和node.js的应用运行时。支持HTML5,CSS3,JS和WebGL。 尝试过没有WebGL的简单项目,工作流畅。非常容易设置。

检查这个SlideShare上,可能会在决定帮它是否是相关

https://speakerdeck.com/zcbenz/node-webkit-app-runtime-based-on-chromium-and-node-dot-js

UPDATE:发现一对夫妇更多的选择做类似的东西,没有尝试过但

  1. https://github.com/milani/appjs
  2. https://www.tidekit.com/

另一个可能有帮助的stackoverflow线程Alternatives to node webkit? (filesize of importance)

+0

我有一个快速的样子,它似乎很有趣。这与我在mint中的有点区别(将WebKit嵌入到java或py中)位它可能是实现相同目标的强大替代方案。谢谢! – lviggiani

+0

我刚测试过它,它也适用于webgl(在arch linux上)。不幸的一面是该项目仍处于演示/预览模式,您可以从常出现的分割错误中看到它。我注意到Arch Linux用户:因为arch linux现在使用systemd,所以你必须创建一个象libcef这样的符号链接来工作:ln -sf /usr/lib/libudev.so.1.0.1/usr/lib/libudev .so.0 – lviggiani

+0

噢好吧,不知道。试过在Windows和Mac上,运行良好。无论如何,我已经用同样的线路更新了我的答案和其他几个备选方案。 – aravind

0

您的Vala示例使用WebKit2Gtk3。不幸的是,WebKit2Gtk3尚未被移植到Windows。 Citing Carlos Garcia Campos

这一直是我们的TODO列表中,但非常低优先级的任务,主要是 由于缺乏窗口知识,时间和兴趣的人。当然,任何 贡献添加windows支持WebKit2GTK +将会超过 。

也许唯一的解决办法是聘请一个开发商在这项任务的工作:-(


我不知道这WebKitGtk的版本是在您的Python的例子使用。WebKitGtk3应该工作在Windows上,WebKit2Gtk3不为Windows存在的。不过,我有一个在Windows上运行的Python/GTK/WebKitGtk应用的经验。