List icon Conteúdo

Publicado em 7 de outubro de 2024

JxBrowser 8.0.0

Temos o prazer de anunciar o lançamento do JxBrowser 8.0.0!

Esta nova versão principal introduz uma série de novas funcionalidades e melhorias, incluindo Kotlin DSL, suporte para Compose Desktop, extensões Chrome, suporte para Windows ARM64, entrada através de toque, eventos DOM personalizados e muito mais. Agora, o JxBrowser requer Java 17 ou posterior.

Não alteramos significativamente a API, portanto, você pode facilmente migrar o seu código existente para a nova versão. No entanto, recomendamos que reveja o guia de migração para saber mais sobre as alterações e melhorias no JxBrowser 8.0.0.

Mais informações sobre os novos recursos e melhorias no JxBrowser 8.0.0 podem ser encontradas abaixo.

Kotlin DSL

Você pode escrever código Kotlin mais conciso e legível ao trabalhar com a API JxBrowser graças à DSL Kotlin. Para adicionar o Kotlin DSL ao seu projeto, adicione a seguinte dependência à configuração do seu projeto:

Gradle
Maven
dependencies {
    // Adiciona uma dependência ao Kotlin DSL para trabalhar com a API do JxBrowser.
    implementation(jxbrowser.kotlin)
}
<!-- Adiciona uma dependência ao Kotlin DSL para trabalhar com a API do JxBrowser. -->
<dependency>
    <groupId>com.teamdev.jxbrowser</groupId>
    <artifactId>jxbrowser-kotlin</artifactId>
    <version>8.0.0</version>
</dependency>

Aqui está um exemplo de como você pode usar o Kotlin DSL para criar e configurar uma instância Engine:

Kotlin
val engine = Engine(RenderingMode.HARDWARE_ACCELERATED) {
    options {
        license = JxBrowserLicense("your_license_key")
        language = Language.GERMAN
        remoteDebuggingPort = 9222
        schemes {
            add(Scheme.JAR, InterceptJarRequestCallback())
        }
    }
}
val browser = engine.newBrowser()

Compose Desktop

Adicionamos o suporte de mais um kit de ferramentas Java UI - Compose Desktop. Agora, é possível incorporar o JxBrowser BrowserView em aplicativos Compose Desktop e criar aplicativos desktop multiplataforma modernos com um kit de ferramentas de interface do usuário moderno.

Para adicionar a dependência do JxBrowser Compose Desktop ao seu projeto, adicione a seguinte dependência à configuração do seu projeto:

Gradle
dependencies {
    // Adiciona uma dependência para integração com o kit de ferramentas de interface do usuário Compose.
    implementation(jxbrowser.compose)
}

Aqui está um exemplo de como você pode incorporar o JxBrowser Compose BrowserView em um aplicativo Compose Desktop:

Kotlin
fun main() = singleWindowApplication {
    val engine = remember { createEngine() }
    val browser = remember { engine.newBrowser() }
    BrowserView(browser)
    DisposableEffect(Unit) {
        browser.navigation.loadUrl("google.com")
        onDispose {
            engine.close()
        }
    }
}

private fun createEngine() = Engine(RenderingMode.OFF_SCREEN) {
    options {
        license = JxBrowserLicense("your_license_key")
    }
}

Exemplos da Galeria

Você pode dar uma olhada nos seguintes exemplos da Galeria do JxBrowser para ver como você pode integrar o JxBrowser com o Compose Desktop:

Extensões do Chrome

Agora, o JxBrowser fornece a API de extensões que permite instalar, atualizar, desinstalar e trabalhar com extensões do Chrome. Abre uma vasta gama de possibilidades para integrar as extensões do Chrome nas suas aplicações de ambiente desktop Java.

Com a API de extensões, pode:

  • Obter uma lista de extensões instaladas;
  • Instalar manualmente extensões do Chrome a partir da Chrome Web Store;
  • Controlar quais as extensões que podem ser instaladas manualmente pelos usuários;
  • Instalar programaticamente extensões do Chrome a partir de arquivos CRX;
  • Desinstalar programaticamente extensões que foram instaladas a partir da Chrome Web Store ou de arquivos CRX;
  • Controlar quais as extensões que podem ser desinstaladas manualmente pelos usuários;
  • Obter notificações quando uma extensão é instalada, atualizada ou desinstalada;
  • Apresentar popups de extensões;
  • Simular cliques no ícone da extensão e muito mais.

JxBrowser Chrome Web Store

Pode ler mais sobre como trabalhar com extensões do Chrome no guia Extensões.

Windows ARM64

Agora, o JxBrowser suporta Windows ARM64. Você pode executar aplicações JxBrowser em dispositivos Windows ARM64, como o Microsoft Surface Pro X ou qualquer dispositivo Copilot+ PC, e beneficiar do desempenho melhorado e da duração da bateria que os dispositivos ARM64 proporcionam.

Para executar o JxBrowser no Windows ARM64, é necessário adicionar a seguinte dependência à configuração do seu projeto Gradle ou Maven:

Gradle
Maven
dependencies {
    implementation(jxbrowser.winArm)
}
<dependency>
    <groupId>com.teamdev.jxbrowser</groupId>
    <artifactId>jxbrowser-win64-arm</artifactId>
    <version>8.0.0</version>
</dependency>

Entrada tátil

Agora é possível enviar e tratar de forma programática eventos de toque nos modos de renderização fora de tela e acelerada por hardware no Windows e no Linux. Isso pode ser útil quando é necessário simular a entrada de toque em testes automatizados ou quando é necessário tratar eventos de toque na sua aplicação.

O código seguinte demonstra como enviar programaticamente um evento de toque iniciado:

Java
Kotlin
browser.dispatch(TouchStarted.newBuilder(
        List.of(TouchPoint.newBuilder(1, Point.of(20, 30), STARTED)
                    .positionInWidget(Point.of(20, 30))
                    .force(0.5F)
                    .radiusX(50)
                    .radiusY(40)
                    .build()))
        .build());
val event = TouchStarted(
    touches = listOf(
        TouchPoint(
            id = 1,
            state = STARTED,
            positionInScreen = Point(20, 30),
            positionInWidget = Point(20, 30),
            force = 0.5F,
            radiusX = 50F,
            radiusY = 40F
        )
    )
)
browser.dispatch(event)

O código seguinte demonstra como tratar o evento de toque iniciado:

Java
Kotlin
browser.set(StartTouchCallback.class, params -> {
    var event = params.event();
    var touches = event.touches();
    var targetTouches = event.targetTouches();
    var changedTouches = event.changedTouches();
    var keyModifiers = event.keyModifiers();
    return Response.proceed();
});
browser.register(StartTouchCallback { params ->
    val event = params.event()
    val touches = event.touches()
    val targetTouches = event.targetTouches()
    val changedTouches = event.changedTouches()
    val keyModifiers = event.keyModifiers()
    Response.proceed()
})

Você pode utilizar StartTouchCallback para suprimir o evento de início de toque e impedir que este seja enviado para a página Web.

Eventos de toque do DOM

A API DOM do JxBrowser permite a você subscrever os eventos DOM touchstart, touchmove, touchcancel e touchend. O código seguinte demonstra como subscrever os eventos de início de toque:

Java
Kotlin
var useCapture = false;
element.addEventListener(EventType.TOUCH_START, event -> {
    if (event instanceof TouchEvent touchEvent) {
        touchEvent.touches().forEach(touch -> {
            var id = touch.id();
            var positionInWidget = touch.positionInWidget();
            var positionInScreen = touch.positionInScreen();
            var radiusX = touch.radiusX();
            var radiusY = touch.radiusY();
            var rotationAngle = touch.rotationAngle();
        });
    }
}, useCapture);
val eventType = EventType.TOUCH_START
val listener = Observer<Event> { event ->
    if (event is TouchEvent) {
        event.touches().forEach { touch ->
            val id = touch.id()
            val positionInWidget = touch.positionInWidget()
            val positionInScreen = touch.positionInScreen()
            val radiusX = touch.radiusX()
            val radiusY = touch.radiusY()
            val rotationAngle = touch.rotationAngle()
        }
    }
}
val useCapture = false
element.addEventListener(eventType, listener, useCapture)

Eventos DOM personalizados

Agora é possível criar e enviar eventos DOM personalizados. O código seguinte demonstra como criar e enviar um evento personalizado:

Java
Kotlin
var eventType = EventType.of("WebViewReady");
var eventParams = CustomEventParams.newBuilder(document)
        .detail("true")
        .build();
var event = document.createCustomEvent(eventType, eventParams);
val eventType = EventType.of("WebViewReady")
val eventParams = CustomEventParams(
    document = document,
    payload = "true"
)
val event = document.createCustomEvent(eventType, eventParams)

Senhas, cartões de crédito, perfis de dados de usuários

Agora você pode adicionar senhas, cartões de crédito e perfis de dados do usuário às lojas correspondentes de forma programática. Nas versões anteriores, estes dados só podiam ser adicionados ao armazenamento através da interação do usuário com o navegador, quando este solicitava ao usuário que salvasse os dados.

O código seguinte demonstra como adicionar uma senha ao armazenamento de senhas de forma programática:

Java
Kotlin
var url = "https://company.com";
var login = "login";
var password = "password";
var passwords = profile.passwordStore();
passwords.add(PasswordRecord.newBuilder(url, password).login(login).build());
val passwords = profile.passwordStore()
passwords.add(
    PasswordRecord(
        url = "https://company.com",
        login = "login",
        password = "password"
    )
)

Atualizações do JxBrowser 7

Continuaremos a atualizar o Chromium no JxBrowser 7 durante 12 meses após o lançamento do JxBrowser 8.0.0. O suporte para novas versões de Java e sistemas operacionais, novas funcionalidades, melhorias e correções de erros estarão disponíveis apenas no JxBrowser 8. Recomendamos que atualize para o JxBrowser 8 para se beneficiar das novas funcionalidades e melhorias.

Como atualizar

Se você tiver uma licença JxBrowser válida com suporte ativo e subscrição de atualizações, você pode atualizar para o JxBrowser 8.0.0 gratuitamente.

Você pode atualizar o JxBrowser no seu projeto alterando a versão da dependência do JxBrowser na configuração do projeto Gradle ou Maven.

Se você tiver alguma dúvida ou precisar de ajuda com a atualização, não hesite em nos contatar.

Baixe o JxBrowser 8.0.0

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