XULRunner技术学习一

基于 Mozilla 的 SWT 浏览器部件

为了使用基于 Mozilla 的 SWT 浏览器部件,需要在操作系统中预先安装与注册 XULRunner 。那,什么是 XULRunner 呢?“ XULRunner 是一个单独的“ Mozilla 运行时”安装包,可用于启动多种如同 Firefox 和 Thunderbird 一样丰富的 XUL+XPCOM 应用程序。它提供了安装、升级和卸载这些应用程序的机制。 XULRunner 还将提供 libxul,这个解决方案允许把 Mozilla 技术嵌入到其它项目和产品中。”(此段定义译自https://developer.Mozilla.org/En/XULRunner)简单来说,XULRunner 是基于 Mozilla 的浏览器(如 Firefox,Camino 等)的核心。

XULRunner 的安装与注册:

  1. 下载合适版本的 XULRunner 。下载地址:http://releases.Mozilla.org/pub/Mozilla.org/XULRunner/releases。注意:如果在 Mac 下进行开发或者需要使用 JavaXPCOM,则需要下载 1.8.1.2 或更新版本。
      • Windows: 将下载的 zip 包解压到合适的文件夹,将当前目录设置为解压后的文件夹。
      • Linux: 将下载的 zip 包解压到合适的文件夹,将当前目录设置为解压后的文件夹。
      • Mac: 安装下载的 dmg 文件,将当前目录设置为 XULRunner 的安装位置。(通常为/Library/Frameworks/XUL.framework/Versions/Current) 。
  2. 卸载之前版本的 XULRunner 。如果之前没有安装过 XULRunner,可忽略这一步。

    如果之前版本的 XULRunner 注册为供所有用户使用,执行如下命令:

      • Windows:XULRunner --unregister-global
      • Linux:sudo ./XULRunner --unregister-global
      • Mac: sudo ./XULRunner-bin --unregister-global

      如果之前版本的 XULRunner 注册为供当前用户使用,则执行命令:

        • Windows:XULRunner --unregister-user
        • Linux: ./XULRunner --unregister-user
        • Mac: ./XULRunner-bin --unregister-user
      1. 通过命令行注册 XULRunner 。

        注册为供所有用户使用:

          • Windows:XULRunner --register-global
          • Linux:sudo ./XULRunner --register-global
          • Mac: sudo ./XULRunner-bin --register-global

          注册为供当前用户使用:

            • Windows:XULRunner --register-user
            • Linux: ./XULRunner --register-user
            • Mac: ./XULRunner-bin --register-user
          1. 做完以上准备工作后,就可以通过简单的代码创建一个基于 Mozilla 的 SWT 浏览器部件。

            public class Test {
            	public static void main(String[] args) {
            
            		Display display = new Display();
            		final Shell shell = new Shell(display);
            		FillLayout layout = new FillLayout();
            		shell.setLayout(layout);
            
            		final Browser browser = new Browser(shell, SWT.MOZILLA); // 1
            		browser.addTitleListener(new TitleListener() { // 2
            					public void changed(TitleEvent event) {
            						shell.setText(event.title);
            					}
            				});
            		browser.setUrl("http://www.baidu.com"); // 3
            		shell.open();
            		while (!shell.isDisposed()) {
            			if (!display.readAndDispatch())
            				display.sleep();
            		}
            		display.dispose();
            	}
            }

             

            你可能感兴趣的:(Runner)