《JavaFX应用程序添加HTML内容》-JavaFX WebView组件概述
来源:互联网 发布:java sleep cpu 编辑:程序博客网 时间:2024/06/06 03:04
原文链接
JavaFX WebView组件概述
本章介绍了JavaFX嵌入式浏览器,一个提供了web查看器以及通过其API提供了完整的浏览功能的用户界面组件。
嵌入式浏览器组件基于WebKit,一个开源的web浏览器引擎。它支持级联样式表(CSS)、JavaScript、文档对象模型(DOM)和HTML5。
嵌入式浏览器允许您在JavaFX应用程序中执行以下任务:
从本地和远程URL渲染HTML内容
获得网络历史记录
执行JavaScript命令
从JavaScript向上调用JavaFX
管理web弹出窗口
应用效果到嵌入式浏览器
嵌入式浏览器继承了Node类所有字段和方法,因此有Node类的所有功能。
这些在javafx.scene.web包中的类构成了嵌入式浏览器。图2-1显示了嵌入式浏览器的体系结构,以及如何与其它JavaFX类关联。
图2-1 嵌入式浏览器的体系结构
图2-1 嵌入式浏览器体系结构的描述
WebEngine类
WebEngine类提供了基本的web页面功能。它支持用户交互,如导航链接和提交HTML表单,尽管它不直接与用户交互。WebEngine类一次处理一个web页面。它支持基本浏览功能,加载HTML内容、访问DOM以及执行JavaScript命令。
两个构造函数允许您创建一个WebEngine对象:一个空的构造方法和一个指定URL的构造函数。如果你实例化一个空的构造函数,可以通过load方法传递URL给WebEngine对象。
从JavaFX SDK 2.2开始,开发人员可以启用和禁用JavaScript调用web引擎和应用自定义样式表。用户样式表替换默认页面样式由用户定义的WebEngine实例渲染。
WebView类
WebView类是Node类的扩展。它封装了一个WebEngine对象,包含HTML内容到应用程序场景,并提供属性和方法应用效果和转换。调用WebView对象的getEngine()方法返回与之关联的web引擎。
例2-1展示了在您的应用程序中创建WebView和WebEngine对象的典型方式。
例2-1 创建WebView和WebEngine对象
WebView browser = new WebView();WebEngine webEngine = browser.getEngine();webEngine.load("http://mySite.com");
PopupFeatures类
PopupFeatures类描述按照JavaScript规范定义的网页弹出窗口功能。当你需要在你的应用程序中打开一个新的浏览器窗口,这个类的实例传递给弹出处理程序,这个处理程序通过setCreatePopupHandler方法注册到WebEngine对象,如例2-2所示。
例2-2 创建一个弹出处理程序
webEngine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() { @Override public WebEngine call(PopupFeatures config) { // do something // return a web engine for the new browser window }});
如果方法返回同一个WebView对象的web引擎,目标文档是在同一个浏览器窗口中打开。为了在另一个窗口打开目标文档,指定另一个WebView的WebEngine对象。当你需要阻止弹出窗口,返回null值。
其他特性
在使用WebView组件时,您应该记住它默认缓存在内存中。这意味着一旦包含WebView组件的应用程序关闭缓存的内容会丢失。不过,开发人员可以使用java.net.ResponseCache类来实现应用程序级别的缓存。从WebKit的角度来说,持久化缓存是网络层属性,类似于连接和cookie处理程序。一旦它们被安装,WebView组件以透明的方式使用它们。
上一篇:更新内容
下一篇:支持HTML5特性
- 《JavaFX应用程序添加HTML内容》-JavaFX WebView组件概述
- 《JavaFX应用程序添加HTML内容》-添加WebView组件到应用程序场景
- 《JavaFX应用程序添加HTML内容》-更新内容
- 《JavaFX应用程序添加HTML内容》-前言
- 《JavaFX应用程序添加HTML内容》-支持HTML5特性
- 《JavaFX应用程序添加HTML内容》-处理JavaScript命令
- JavaFX之应用程序线程概述
- JavaFX应用程序
- JavaFx
- JavaFX
- JavaFX
- javaFX
- JavaFx
- JAVAFX
- javafx
- JavaFX
- JavaFX
- javaFX
- 设计模式二 观察者模式
- Crane(POJ-2991)(线段树)
- js基本知识比较系列三:事件
- JAVA事务的概念
- 关于 iOS HTTP2.0 的学习实践
- 《JavaFX应用程序添加HTML内容》-JavaFX WebView组件概述
- JUnit之扩展IntrumentationTest框架
- 报错TypeError: pool_2d() got an unexpected keyword argument 'ws'
- 258. Add Digits
- Leetcode 64. Minimum Path Sum
- MySQL5.7.17安装教程
- 关于ceph client创建RBD报错的解决方法
- BZOJ3443: 装备合成
- IOS AR技术开发