Publicado em 15 de maio de 2020
JxBrowser 7.7
Temos o prazer de apresentar o JxBrowser 7.7! Esta atualização é uma nova etapa na história da biblioteca. Nesta versão introduzimos o controle SWT BrowserView
puro para as aplicações SWT/Eclipse RCP.
SWT
A biblioteca agora fornece o controle SWT puro com.teamdev.jxbrowser.view.swt.BrowserView
que pode ser incorporado nas aplicações
SWT/Eclipse RCP.
Aqui está um exemplo simples que demonstra como usar o SWT BrowserView
numa aplicação SWT simples:
import static com.teamdev.jxbrowser.engine.RenderingMode.HARDWARE_ACCELERATED;
import com.teamdev.jxbrowser.browser.Browser;
import com.teamdev.jxbrowser.engine.Engine;
import com.teamdev.jxbrowser.engine.EngineOptions;
import com.teamdev.jxbrowser.view.swt.BrowserView;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public final class HelloWorld {
public static void main(String[] args) {
// Criar e executar o motor Chromium
Engine engine = Engine.newInstance(
EngineOptions.newBuilder(HARDWARE_ACCELERATED).build());
Browser browser = engine.newBrowser();
// Carregar a página Web necessária
browser.navigation().loadUrl("https://html5test.teamdev.com");
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("JxBrowser SWT");
shell.setLayout(new FillLayout());
// Criar componente SWT para renderizar conteúdo web carregado
// na instância Browser
BrowserView view = BrowserView.newInstance(shell, browser);
view.setSize(800, 600);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
// Fechar o motor e liberar todos os recursos atribuídos
engine.close();
display.dispose();
}
}
Eclipse RCP
O kit de ferramentas SWT é frequentemente utilizado em aplicações Eclipse RCP, por isso preparamos um pequeno tutorial que descreve como utilizar o JxBrowser
SWT BrowserView
numa aplicação Eclipse RCP.
JsFunction
A classe JsFunction
foi restaurada
na API Bridge JavaScript-Java.
Agora é possível trabalhar com as funções
JavaScript diretamente a partir do código Java e passar a referência a uma função de JavaScript para Java e vice-versa. Por exemplo:
JsObject window = frame.executeJavaScript("window");
if (window != null) {
JsFunction alert = frame.executeJavaScript("window.alert");
if (alert != null) {
alert.invoke(window, "Hello world!");
}
}
Melhorias
- As páginas Web agora estão sendo carregadas duas vezes mais rapidamente do que nas versões anteriores devido às melhorias no tempo de carregamento e à utilização de memória nos processos do Chromium.
- Agora o JxBrowser suporta o Firebase Cloud Messaging.
- O suporte WebAssembly foi adicionado.
- Com esta versão, é possível processar a tag HTML
<datalist>
nas páginas Web. - A funcionalidade de preenchimento automático de formulários Web está agora desativada por padrão.
- Agora você pode arrastar e soltar arquivos, imagens, texto de e para o componente Swing/JavaFX
BrowserView
no Linux, uma vez que as limitações da funcionalidade Drag and Drop em ambos os modos de renderização foram removidas. - Uma vez que o JxBrowser suporta apenas a versão de 64 bits do Linux, agora ele lança uma exceção ao tentar ser executado no
Linux de 32 bits. Isto é feito pelo novo método
Environment.checkEnvironment()
responsável por detectar este ambiente não suportado.
Problemas corrigidos
- O componente Swing
BrowserView
não fica visível quando incorporado aojavax.swing.JApplet
quando o modo de renderização acelerada por hardware está ativado. - Os recursos de teste internos excluídos dos arquivos JAR.
- Definir o foco para o Swing
BrowserView
através do clique do mouse não limpa o foco do componente Swing atualmente focado no Windows. - O erro
IllegalArgumentException
ao exibir o SwingBrowserView
no modo de renderização acelerada por hardware no Windows. - Dupla renderização de conteúdo quando o Swing
BrowserView
é incorporado aoJScrollPane
no modo de renderização fora de tela no Windows. - Congelamento ao fechar o
Browser
durante a repintura ativa na página web carregada no modo de renderização fora de tela. - O aplicativo Swing não recebe o foco após clicar no JavaFX
BrowserView
incorporado aoJFXPanel
no modo de renderização acelerada por hardware no Windows. - O Google reCAPTCHA não está recebendo o foco através da tecla
Tab
. - A impossibilidade de escrever qualquer coisa nos campos de texto localizados dentro de um
IFRAME
numa página Web no modo de renderização fora de tela. - O fechamento da janela onde o componente
BrowserView
está incorporado leva ao fechamento de todas as instânciasBrowser
no modo de renderização fora de tela no Windows. - Congelamento ao fechar o
Engine
no modo de renderização fora da tela no Windows e no Linux por causa dos tempos. - Congelamento ao fechar o
Engine
depois de cancelar a assinatura de receber os eventosBrowserClosed
no Windows e Linux. - Falha do Chromium ao carregar a página web
chrome://settings
. Esta página Web está agora desativada. - O erro
ClassCastException
quando o componente SwingBrowserView
é incorporado noJDialog
e o download do arquivo foi iniciado. - Uma linha vertical branca de um pixel no modo tela cheia no Linux no modo de renderização acelerada por hardware.
- Criação de arquivos de registro do Chromium no diretório com os binários do Chromium no macOS quando o motor falhou ou terminou inesperadamente.
- Os ângulos brancos dentro do componente
BrowserView
no Ubuntu no modo de renderização acelerada por hardware.
Baixe o JxBrowser 7.7
Por favor, compartilhe seu e-mail conosco, e nós lhe enviaremos instruções para download.
Não foi possível enviar o e-mail. Por favor, use o link direto para baixar o JxBrowser.
Se você é um cliente registrado, não precisa fazer nada para usar esta atualização.
Se você deseja avaliar o produto, precisa de uma licença de avaliação.
Siga @JxBrowserTeam para obter todas as atualizações da biblioteca.
Se inscreva na nossa RSS feed para obter atualizações instantâneas sobre os novos lançamentos.