求Java富客户端程序内嵌HTML5浏览器方案
zoeg 2013-11-20 11:13:32 总的目标是通过一个java的富客户端程序,在一个窗口内显示HTML5页面,其实就是一个普通的B/S企业应用,但是由于应用非常特殊,需要富客户端进行一些特殊的措施,比如:必须全屏,禁止用户看到或者操作到HTML5页面以外的窗口或功能,禁止被关闭,总是保持打开,本地设备调用等等等等,所以传统的浏览器是做不到了!
要求如下(For windows,如果能跨平台是最好了):
1、免安装,可移动,易部署;
2、能够运行Flash;
3、能够运行Applet;
4、符合HTML5;
5、最好是在Java程序中嵌入,不想引入新的开发语言。
我个人针对这个问题进行了如下功课:
1、JavaFX 的WebView组件,这个方案按说软接口是最合适不过的,纯java,html5。可惜硬伤是flash不支持,甚至自家的applet也不支持(可能是我不懂弄),但是最要命的是卡的让你崩溃,页面渲染尤其是字体难看的要死,所以其他的方面根本就没有继续测试的必要了;
2、SWT Browser -style MOZILLA,这个方案似乎是几乎接近我的要求了,绿色版,包括xulrunner及其flash插件,都是免安装。applet的话可以运行,只是有个小小的问题一直解决不了:applet运行时jre必须是安装版的,而且,加载富客户端的jre必须就是这个安装版的jre,否则程序崩溃。不过这个方案最要命的是“断货”啊,只支持到xulrunner1.9.2。再往后就不更新了,当时的这个版本对HTML5的支持还比较差,以后项目上万一遇到问题很麻烦,没法与时俱进;
3、SWT Browser -style WEBKIT,这个方案其实是我最想要的,但是我测试总也跑不起来(Mac OS X没问题),windwos上安装了Safari也没能让我看到它运行起来,这个方案应该是比MOZILLA的方案优势是eclipse放弃了MOZILLA现在支持WEBKIT。让我郁闷的是eclipse内部的浏览器设置成webkit是可以的,而我直接通过SWT加载却启动不了,错误大概是Fail to load swt-webkit Library;
4、SWT Browser -style NONE,这个方案怎么说呢,应该是我最靠谱,最有把握的方案。在windows上它其实就是嵌入IE,但是IE这个坑货一直到IE9才开始支持HTML5,貌似到IE11才比较不错,坑就坑在IE是跟着操作系统走的,我不能独立打包,绿色版就别谈了,跨平台就更别提了,不过跨平台倒不是我主要考虑的方向,只是部署上要求安装jre和指定的IE版本总是如鲠在喉。不过呢,这个方案除了部署上的要求达不到,有点麻烦,其他的软性的功能全部都OK。
如上所述,我做了好多功课,一直没能达到我理想的目标,在此恳求各位高手不吝赐教。
C++的方案也考虑过,不过自己不会C++,公司也不想引入新的开发语言,所以一直没有涉及。另外,方案4除了部署差强人意以外,各方面都符合要求,所以不打算考虑其他语言。当然方案中肯定都会有使用其他语言编写的部分,只是希望我们需要动手的地方都是java!