List icon Conteúdo

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();
    }
}

Exemplo JxBrowser SWT

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 ao javax.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 Swing BrowserView no modo de renderização acelerada por hardware no Windows.
  • Dupla renderização de conteúdo quando o Swing BrowserView é incorporado ao JScrollPane 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 ao JFXPanel 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âncias Browser 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 eventos BrowserClosed 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 Swing BrowserView é incorporado no JDialog 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.

Enviando...
Por favor, verifique sua caixa de entrada.

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.

Obtenha Teste Gratuito de 30 dias