Introdução
Instalação
Guias
- Engine
- Profile
- Browser
- BrowserView
- Navegação
- Conteúdo
- DOM
- JavaScript
- Pop-ups
- Diálogos
- Downloads
- Extensões
- Rede
- Cache
- Cookies
- Proxy
- Autenticação
- Plugins
- Impressão
- Senhas
- Perfis de dados do Usuário
- Cartões de Crédito
- Mídia
- Área de transferência
- Zoom
- Corretor Ortográfico
- Implantação
- Chromium
Resolução de Problemas
Chromium
Este guia descreve como trabalhar com a compilação do Chromium utilizada pelo JxBrowser.
Não é necessário instalar o Chromium ou o Google Chrome no ambiente de destino para utilizar o JxBrowser. O JxBrowser utiliza e implementa a sua própria compilação Chromium.
Binários
Os binários do Chromium para cada plataforma suportada estão localizados dentro dos JARs JxBrowser correspondentes:
jxbrowser-win32-8.2.1.jar
– Binários do Chromium para Windows 32-bit.jxbrowser-win64-8.2.1.jar
– Binários do Chromium para Windows 64-bit.jxbrowser-win64-arm-8.2.1.jar
– Binários do Chromium para Windows ARM 64-bit.jxbrowser-mac-8.2.1.jar
– Binários do Chromium para macOS.jxbrowser-mac-arm-8.2.1.jar
– Binários do Chromium para macOS Apple Silicon.jxbrowser-linux64-8.2.1.jar
– Binários do Chromium para Linux 64-bit.jxbrowser-linux64-arm-8.2.1.jar
– Binários do Chromium para Linux ARM 64-bit.
Localização
Por padrão, o JxBrowser extrai os binários do Chromium para o diretório temp do usuário no Linux e macOS, e para o diretório
AppData\Local\JxBrowser
no Windows.
Eis como alterar o diretório onde o JxBrowser extrairá os binários:
Utilizando a propriedade do sistema
jxbrowser.chromium.dir
.Isso pode ser feito pelo método
System.setProperty()
:JavaKotlinSystem.setProperty("jxbrowser.chromium.dir", "Users/Me/.jxbrowser");
System.setProperty("jxbrowser.chromium.dir", "Users/Me/.jxbrowser")
ou através de um parâmetro da JVM:
-Djxbrowser.chromium.dir="Users/Me/.jxbrowser"
Através do
EngineOptions
ao construir oEngine
:JavaKotlinvar engine = Engine.newInstance(EngineOptions.newBuilder(renderingMode) .chromiumDir(Paths.get("Users/Me/.jxbrowser")) .build());
val engine = Engine(renderingMode) { chromiumDir = Path("Users/Me/.jxbrowser") }
O caminho do diretório pode ser relativo ou absoluto.
O diretório não pode estar localizado numa unidade de rede.
Verificação
Cada versão do JxBrowser é compatível apenas com a mesma versão dos binários. Por exemplo, o JxBrowser 8.2.1.1 não funcionará com os binários do JxBrowser 8.2.1.
Para se certificar de que os binários do Chromium são compatíveis com a versão atual do JxBrowser, a biblioteca verifica os binários.
Extração
Por padrão, o JxBrowser extrai os binários de um arquivo JAR correspondente quando o Engine
é criado pela primeira vez. Se precisar
extrair binários antes, utilize este código:
// Usar o diretório padrão.
ChromiumBinaries.deliverToDefaultDirectory();
// Ou utilize um diretório arbitrário.
ChromiumBinaries.deliverTo(Paths.get("/path/to/binaries"));
// Usar o diretório padrão.
ChromiumBinaries.deliverToDefaultDirectory()
// Ou utilize um diretório arbitrário.
ChromiumBinaries.deliverTo(Path("/path/to/binaries"))
Se os binários compatíveis já tiverem sido extraídos, o JxBrowser não os extrairá novamente. Caso contrário, o JxBrowser irá extrair os binários novamente e substituir os arquivos existentes.
Entrega personalizada
A partir do JxBrowser 7.35, os programadores podem obter o controle total do fornecimento de binários Chromium ao ambiente. Esta capacidade destina-se a casos de utilização avançados, como o download de binários da rede ou a utilização de um algoritmo de compressão personalizado.
Para personalizar a entrega, implemente a interface BinariesDelivery
e entregue os binários quando precisar deles:
class TuneBinaryDelivery implements BinariesDelivery {
public void deliverTo(Path chromiumDir) {
// Pseudocódigo:
// Path downloadedArchive = SharedNetworkDrive.download("jxbrowser-win64.gz");
// Gzip.extract(downloadedArchive, chromiumDir);
}
}
...
// Use o diretório padrão.
ChromiumBinaries.deliverToDefaultDirectory(new TuneBinaryDelivery());
// Ou use um diretório arbitrário.
ChromiumBinaries.deliverTo(chromiumDir, new TuneBinaryDelivery());
class TuneBinaryDelivery : BinariesDelivery {
override fun deliverTo(chromiumDir: Path) {
// Pseudocódigo:
// Path downloadedArchive = SharedNetworkDrive.download("jxbrowser-win64.gz");
// Gzip.extract(downloadedArchive, chromiumDir);
}
}
...
// Use o diretório padrão.
ChromiumBinaries.deliverToDefaultDirectory(TuneBinaryDelivery())
// Ou use um diretório arbitrário.
ChromiumBinaries.deliverTo(chromiumDir, TuneBinaryDelivery())
Se os binários compatíveis já tiverem sido extraídos, o JxBrowser não chamará a entrega personalizada.
Sandbox
Windows
O JxBrowser suporta o Chromium Sandbox no Windows.
A Sandbox está ativada por padrão, mas você pode desativá-la através da opção Engine
apropriada:
var engine = Engine.newInstance(EngineOptions.newBuilder(renderingMode)
.disableSandbox()
.build());
val engine = Engine(renderingMode) {
sandboxDisabled = true
}
Linux e macOS
Atualmente, a Sandbox é suportada apenas na plataforma Windows.