快速业务通道

在Java程序中内嵌Mozilla浏览器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

在Java程序中内嵌Mozilla浏览器

时间:2010-12-15 IBM 裴娜

简介

SWT 浏览器部件是 SWT 所提供的众多部件中较为复杂的一个,它提供了在 Java 应用程序中内嵌浏览器应用并通过 Java API 与之进行交互的能力。一个 典型的应用场景是,开发者可以在客户段程序中嵌入一个内置浏览器,访问特定 HTML 应用,从而集 web 技术与客户端技术两者之所长,开发出具有更丰富功能 和界面的软件。

本文主要包含两个方面的内容:1. 如何在 Java 应用程序中内嵌基于 Mozilla 的浏览器部件。2. 使用 JavaXPCOM bridge 定制浏览器功能及与 XULRunner 进行更多交互。

本文中范例程序在 Mac OS 10.5, JDK1.5,XULRunner 1.8.1.3 环境下开发 ,编译与测试。

浏览器部件简史

SWT( The Standard Widget Toolkit)最早在 3.0 版本中引入浏览器部件 ,早期目的是为了提供一些简单的接口,使用户得以在 Java 程序中显示和浏览 HTML 页面。

最早,在不同的平台上的浏览器部件基于不同的内核,比如,在 Windows 上 基于 Internet Explorer 内核,在 Linux 上基于 Mozilla,在 Mac 上基于 Webkit 。这种机制使得 SWT 浏览器部件风格尽量接近于各个操作系统上预装的浏览器 (Windows 上的Internet Explorer, Linux 上的Firefox,Mac 上的Safari),但却导致了在不同平台下浏览器部件的行为不一致性。比如在 Linux 上的浏览器部件下打开 about:config 链接,你会看到 Mozilla 的用户偏好配 置页面 ( 见图 1),但在 Windows 和 Mac 的SWT 浏览器部件将显示空白页面 。

为了解决这种行为不一致的问题并对外提供统一接口,SWT 在 3.3M5 版本中 提出了 "Mozilla Everywhere" 的概念,在 Windows 上和 Mac 上也提供了基于 Mozilla 内核的浏览器部件。并在 SWT 3.3M6 中增加了对 JavaXPCOM 的支持, 这就使得开发者可以通过 Java 语言访问所有 Mozilla 的公开接口,从而为内 嵌浏览器提供更灵活的定制行为。

图 1. 基于 Mozilla 的SWT 浏览器部件上的用户偏好设置页面

基于 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 等)的核心。

在Java程序中内嵌Mozilla浏览器(2)

时间:2010-12-15 IBM 裴娜

XULRunner 的安装与注册:

下载合适版本的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) 。

卸载之前版本的XULRunner 。如果之前没有安装过 XULRunner,可忽略这一 步。

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

Windows:XULRunner --unregister-global

Linux:sudo ./XULRunner --unregister-global

Mac: sudo ./XULRunner-bin --unregister-globa

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号