4 在java代码里嵌入Firefox3
现在可以去用一下有用的例子了。首先我们在一个java程序里使用SWT来嵌入一个Mozilla浏览器。现在,我们可以使用
org.eclipse.swt.browser.Browser类来实例化:browser = new Browser(shell, SWT.MOZILLA); 在这之前,我们需要使用ATF项目
,以及一下ATF插件。非常幸运,现在我们不需要这些补丁了。
4.1 配置环境
为了在java程序里嵌入Mozilla浏览器,我们需要使用SWT来创建窗口和嵌入浏览器。
4.1.1 安装swt
下载对应操作系统的swt,加到classpath就好了
4.1.2 配置swt
运行后面例子需要的jar包:
javaxpcom.jar
MozillaInterfaces.jar
MozillaGlue.jar
swt.jar
src.zip
4.2 Web Browser例子
接下来,我们将增加一下SWT widgets来实现通常的交换,比如输入url,前进与后退,菜单,和两种类型:
传入一个参数制定XULRunner的路径
不传入参数使用系统安装的XULRunner
5. 在浏览器里访问JavaXPCOM
这一节里我们将讨论一下通过WebBrowser访问的功能。比如,改变浏览器的属性或者观察浏览器请求与响应。
首先我们改变用户的preferences
注:我只列出增加的部分代码。
另外一下Service也能被使用。我们已经可以改变Mozilla的属性来改变浏览器的行为,但是通过利用Service我们可以完成更有用的
任务。在下面的例子里我们将观察浏览器的请求和响应。在XPCOM里存在一个接口叫nsIObserver,它运行观察一个topic相关的event
,只要它被添加到observer Service里了。添加的方法是使用 void nsIObserverService.addObserver(nsIObserver anObserver,
String aTopic, boolean ownsWeak) 这个方法对一个特定的topic注册一个listener。anObserver是用来接受通知的一个接口,
aTopic是通知的topic,ownsWeak当nsIObserverService hold anObserver的一个strong的引用时设为false,否则设置为true。因此
,为了创建一个observer,我们必需实现nsIObserver接口,这个接口包含了一个方法 public void observe(nsISupports
aSubject, String aTopic, String aData)。
下面的例子的4个步骤:
1,获得Service Manager
2,获得Observer Service
3,创建一个简单的HTTP observer
4,把这个observer添加到监听请求和响应的Service里
XULRunner with Java: JavaXPCOM Tutorial 2
最新推荐文章于 2024-09-14 18:46:05 发布