Publicado em 26 de novembro de 2020
DotNetBrowser 2.3
O DotNetBrowser 2.3 é baseado no Chromium 84.
O que há de novo
Chromium 84
O Chromium foi atualizado para a versão 84.0.4147.135.
Nesta compilação do Chromium, algumas das suas funcionalidades associadas ao DotNetBrowser foram removidas ou alteradas, pelo que esta versão do DotNetBrowser introduz várias alterações significativas na API pública. Consulte o guia de migração para esta versão e veja o que foi alterado/removido da API e quais alternativas você deveria utilizar.
Acesso a propriedades e campos na ponte JS-.NET
Acessar as propriedades públicos e campos de um objeto .NET injetado em JavaScript através da API JS-.NET Bridge. A API JS-.NET Bridge permite injetar objetos .NET em JavaScript e chamar os seus métodos públicos. A partir desta versão, também pode funcionar com as propriedades públicas e campos. Por exemplo:
public class MyObject {
public string MyProperty {get; set;}
}
...
IJsObject window = frame.ExecuteJavaScript<IJsObject>("window").Result;
window.Properties["myObject"] = new MyObject();
Feito isso, é possível acessar e modificar o valor da propriedade a partir do JavaScript:
window.myObject.MyProperty = "O meu valor";
Interceptação de eventos de drag e drop e suporte de IDataObject
Nesta versão foram adicionados o IDragAndDrop.EnterDragHandler
e o IDragAndDrop.DropHandler
.
Estes handlers podem ser utilizados para interceptar os eventos de arrastar e soltar correspondentes em páginas Web no modo de renderização acelerada por hardware.
Por exemplo:
browser.DragAndDrop.EnterDragHandler = novo Handler<EnterDragParameters>(OnDragEnter);
browser.DragAndDrop.DropHandler = novo Handler<DropParameters>(OnDrop);
private void OnDragEnter(EnterDragParameters arg)
{
if (arg.Event.DropData != null)
{
//Escreve os nomes dos ficheiros para depurar a saída.
foreach (IFileValue file in arg.Event.DropData.Files)
{
Debug.WriteLine($"OnDragEnter: File = {file?.FileName}");
}
}
}
private void OnDrop(DropParameters arg)
{
if (arg.Event.DropData != null)
{
//Escreve os nomes dos ficheiros para depurar a saída.
foreach (IFileValue file in arg.Event.DropData.Files)
{
Debug.WriteLine($"OnDrop: File = {file?.FileName}");
}
}
}
No .NET Framework, também é possível trabalhar com a instância IDataObject
no âmbito destes handlers para receber e processar a representação específica da plataforma dos dados arrastados e soltos. Esta funcionalidade fica disponível quando a opção --enable-com-in-drag-drop
do Chromium é especificada.
Veja os exemplos completos que mostram como utilizar esta funcionalidade:
Melhorias
- A implementação padrão do
StartDownloadHandler
é agora configurada durante a inicialização doBrowserView
se umStartDownloadHandler
personalizado não foi configurado para a instância correspondente doIBrowser
. - A implementação padrão
SelectCertificateHandler
foi adicionada. Esta implementação é configurada durante a inicialização doBrowserView
se um handler personalizado não foi configurado para a instância correspondente doIBrowser
. - A funcionalidade do método
SelectCertificateResponse.Select(Certificate)
foi melhorada. Este método era anteriormente utilizado apenas para os certificados personalizados. Agora, funcionará corretamente para os certificados dos parâmetros do handler. - A classe
UrlRequest
foi estendida com as seguintes propriedades:Browser
,ResourceType
,SslVersion
. Todas estas propriedades podem ser utilizadas para obter mais informações sobre este request de URL, incluindo o browser que iniciou este request, o tipo de recurso request e a versão SSL utilizada para efetuar o request. SuggestedFileName
eSuggestedDirectory
foram adicionados aosSaveAsPdfParameters
. Estas propriedades podem ser utilizadas para obter o caminho sugerido para guardar o arquivo PDF noSaveAsPdfHandler
.- Os eventos de chave DOM foram estendidos com a propriedade
Character
. Agora é possível obter o caractere gerado pela pressão da tecla e associado ao evento de tecla DOM interceptado. - A propriedade
INavigation.CurrentIndex
foi adicionada. - A propriedade
Cookie.SameSite
foi adicionada. - Foi introduzido o suporte de Firebase Cloud Messaging.
- A possibilidade de executar o
chromium.exe
como uma aplicação autônoma foi desativada.
Problemas corrigidos
- O
ShowNetErrorPageHandler
não funcionando corretamente para sites com certificados inválidos. - Aumento do tempo de carregamento da página ao carregar a mesma página várias vezes.
- O vazamento de memória causado pelo fato de alguns dos objetos internos não serem liberados após a eliminação do Browser.
- Os eventos DOM do DoubleClick não sendo recebidos da página Web.
- A ligação da propriedade Visibility não funcionando corretamente para o WPF BrowserView.
- O menu de contexto é mostrado apenas uma vez para os objectos Flash.
- O menu de contexto não é apresentado para arquivos PDF abertos no browser.
- Alguns vazamentos de memória para registar/remover registro de objetos .NET através da Bridge JS-.NET.
- O
BrowserView
não sendo mostrado no segundo TabItem após a inicialização. - Os cursores CSS 3 não são apresentados corretamente em ambientes Windows 7 e Windows 2008 R2.
- A localização incorreta da imagem no WPF
BrowserView
no modo acelerado por hardware. - Foco não sendo restaurado para WinForms
BrowserView
após exibir e fechar o diálogo padrão emBeforeUnloadHandler
.
Solicitar licença de avaliação
Descarregar DotNetBrowser 2.3 (.NET Framework)
Descarregar DotNetBrowser 2.3 (.NET Core)
Siga @DotNetBrowser para obter todas as atualizações da biblioteca.
Assine o nosso RSS feed para receber atualizações instantâneas sobre novos lançamentos.