JxBrowser是将基于Chromium的浏览器与Java应用程序集成,以处理和显示HTML5、CSS3、JavaScript、Flash等。
近日,JxBrowserv7.12发布啦!在JxBrowser 7.12中,Chromium引擎已升级到版本84。此Chromium版本在源代码中有一些重大更改,这些更改会影响JxBrowser的公共API。在本升级指南中,描述了7.12中删除了哪些API,以及应该使用哪些替代方法。
覆盖HTTP请求头部
v7.11
在Chromium 84中,BeforeSendHeadersCallback和BeforeSendProxyHeadersCallback回调已被删除。
network.set(BeforeSendHeadersCallback.class, params ->
BeforeSendHeadersCallback.Response.override(modifiedHeaders));
network.set(BeforeSendProxyHeadersCallback.class, params ->
BeforeSendProxyHeadersCallback.Response.override(modifiedHeaders));
v7.12
要在HTTP头信息被发送到Web服务器之前覆盖它们,请使用以下API。
network.set(BeforeStartTransactionCallback.class, params ->
BeforeStartTransactionCallback.Response.override(modifiedHeaders));
资源筛选
在Chromium 84中删除了LoadResourceCallback回调。
v7.11
network.set(LoadResourceCallback.class, params -> {
if (params.resourceType() == ResourceType.IMAGE) {
return LoadResourceCallback.Response.cancel();
}
return LoadResourceCallback.Response.load();
});
v7.12
使用BeforeUrlRequestCallback回调来过滤资源,如下所示。
network.set(BeforeUrlRequestCallback.class, params -> {
if (params.urlRequest().resourceType() == ResourceType.IMAGE) {
return BeforeUrlRequestCallback.Response.cancel();
}
return BeforeUrlRequestCallback.Response.proceed();
});
缓存
v7.11
删除了被废弃的HttpCache.clearDiskCache(Runnable)方法。
httpCache.clearDiskCache(() -> {
// HTTP cache has been cleared.
});
v7.12
使用以下API代替。
CompletableFuturefuture = httpCache.clear();
鼠标轮
v7.11
以下com.teamdev.jxbrowser.ui.event.MouseWheel方法已被删除。
isHorizontalScroll()
scrollbarPixelsPerLine()
unitsToScroll()
v7.12
使用 deltaX() 和 deltaY()方法替代。
键盘活动
访问com.teamdev.jxbrowser.dom.event.KeyEvent中的密钥代码的方式已经改变。因此,删除了无用的com.teamdev.jxbrowser.dom.event.KeyEvent.keyCode()方法。
v7.11
要访问DOM KeyEvent的密钥代码,你可以使用以下API。
document.addEventListener(EventType.KEY_PRESS, event -> {
if (event instanceof KeyEvent) {
KeyEvent keyEvent = (KeyEvent) event;
System.out.println("DOM KeyEvent: keyCode=" + keyEvent.keyCode());
}
}, false);
v7.12
在这个版本中,改进了这个功能,所以现在它的工作方式接近于DOM API的工作方式。
document.addEventListener(EventType.KEY_PRESS, event -> {
if (event instanceof KeyEvent) {
KeyEvent keyEvent = (KeyEvent) event;
DomKeyCode keyCode = keyEvent.domKeyCode();
String character = keyEvent.character();
System.out.println("DOM KeyEvent: keyCode=" + keyCode + ", character=" + character);
}
}, false);
现在,你可以得到预期的按键代码和当前所选语言中的按键字符的字符串表示。
加载URL
v7.11
以下的导航方法已被删除。
loadUrlAndWait(String, Timestamp)
loadUrlAndWait(LoadUrlParams, Timestamp)
v7.12
使用以下方法代替:
loadUrlAndWait(String url, Duration timeout)
loadUrlAndWait(LoadUrlParams params, Duration timeout)
慧都是TeamDev官方友好合作伙伴,如果您对jxbrowser感兴趣,可以联系在线客服了解具体授权价格和使用机制。
标签:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果
0
好文不易,鼓励一下吧!