Publicado em 14 de janeiro de 2022
DotNetBrowser 2.11
O que há de novo
Chromium 96
O Chromium foi atualizado para a versão 96.0.4664.110.
Esta versão do Chromium inclui 5 correções de segurança, portanto,recomendamos que atualize para esta versão.
Interceptação de eventos de toque
Agora é possível tratar eventos de toque utilizando os seguintes handlers: Touch.Started.Handler
, Touch.Moved.Handler
, Touch.Canceled.Handler
e Touch.Ended.Handler
. Ver exemplo abaixo:
private void Subscribe(IBrowser browser)
{
// Assinar evento de toque iniciado
browser.Touch.Started.Handler = new Handler<ITouchEventArgs, InputEventResponse>(e =>
{
ITouchPoint point = e.TouchPoints.First(p => p.TouchState == TouchState.Started);
Console.WriteLine($@"Touch {point.Id} started at - ({point.LocationOnWidget.X} : {point.LocationOnWidget.X})");
return InputEventResponse.Proceed;
});
// Subscrever evento de toque movido
browser.Touch.Moved.Handler = new Handler<ITouchEventArgs, InputEventResponse>(e =>
{
ITouchPoint point = e.TouchPoints.First(p => p.TouchState == TouchState.Moved);
Console.WriteLine($@"Touch {point.Id} moved to - ({point.LocationOnWidget.X} : {point.LocationOnWidget.X})");
return InputEventResponse.Proceed;
});
// Subscrever evento de toque cancelado
browser.Touch.Canceled.Handler = new Handler<ITouchEventArgs, InputEventResponse>(e =>
{
ITouchPoint point = e.TouchPoints.First(p => p.TouchState == TouchState.Canceled);
Console.WriteLine($@"Touch {point.Id} cancelado em - ({point.LocationOnWidget.X} : {point.LocationOnWidget.X})");
return InputEventResponse.Proceed;
});
// Subscrever evento de toque terminado
browser.Touch.Ended.Handler = new Handler<ITouchEventArgs, InputEventResponse>(e =>
{
ITouchPoint point = e.TouchPoints.First(p => p.TouchState == TouchState.Ended);
Console.WriteLine($@"Touch {point.Id} ended at - ({point.LocationOnWidget.X} : {point.LocationOnWidget.X})");
return InputEventResponse.Proceed;
});
}
Simulação de eventos táteis
O evento de toque pode ser simulado com a ajuda dos eventos de entrada browser.Touch.Started
, browser.Touch.Moved
e browser.Touch.Ended
:
private void SimulateTouches(IBrowser browser)
{
browser.Focus();
// Iniciar o toque com ID = 0 na localização (10, 10)
browser.Touch.Started.Raise(
new TouchStartedEventArgs(
new TouchPoint(0, TouchState.Started, new Point(10, 10))));
Thread.Sleep(500);
// Deslocar o toque com ID = 0 em 5 pixéis ao longo do eixo x
browser.Touch.Moved.Raise(
new TouchMovedEventArgs(
new TouchPoint(0, TouchState.Moved, new Point(15, 10))));
Thread.Sleep(500);
// Terminar toque com ID = 0 na localização (10, 10)
browser.Touch.Ended.Raise(
new TouchEndedEventArgs(
new TouchPoint(0, TouchState.Ended, new Point(15, 10))));
Thread.Sleep(500);
// Iniciar o toque com ID = 1 na localização (10, 10)
browser.Touch.Started.Raise(
new TouchStartedEventArgs(
new TouchPoint(1, TouchState.Started, new Point(10, 10))));
Thread.Sleep(500);
// Deslocar o toque com ID = 1 em 5 pixéis ao longo do eixo x
browser.Touch.Moved.Raise(
new TouchMovedEventArgs(
new TouchPoint(1, TouchState.Moved, new Point(15, 10))));
Thread.Sleep(500);
// Cancelar toque com ID = 1 na localização (10, 10)
browser.Touch.Canceled.Raise(
new TouchCanceledEventArgs(
new TouchPoint(1, TouchState.Canceled, new Point(10, 10))));
Thread.Sleep(500);
}
System.Guid
A funcionalidade da bridge JS-.NET foi estendida. Agora, é possível injetar a estrutura System.Guid
no JavaScript e obtê-la como um objeto do JavaScript.
Elemento de imagem DOM
A API DOM foi estendida com a interface IImageElement
. Ela permite obter o conteúdo da imagem a partir da etiqueta IMG
:
IImageElement element = document.GetElementByTagName("img") as IImageElement;
Bitmap contents = element.Contents;
Melhorias
- A compatibilidade do pacote VS 2022 VSIX foi adicionada.
Problemas corrigidos
AlertHandler
causando o congelamento de toda a aplicação.
Solicitar licença de avaliação
Baixar DotNetBrowser 2.11 (.NET Framework)
Baixar DotNetBrowser 2.11 (.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.