Skip to content

TEdgeBrowser, detectar en que link cliquea el usuario

EdgeBrowser - URL

Desde la versión Delphi 10.4, se ha lanzado un nuevo componente que reemplaza al famoso WebBrowser que hemos utilizado por años, estamos hablando del nuevo componente EdgeBrowser.

Este componente, basado en chromiun, posee una innumerable cantidad de nuevos métodos, eventos y propiedades. Pero en este artículo no nos vamos a poner a enumerar cada uno de ellos, sino simplemente dar a conocer como poder detectar en que link hace click un usuario al estar navegando sobre este componente.

Este algoritmo lo podemos utilizar tanto para seguridad (bloqueando URL determinadas), como así también para elaborar estadísticas sobra la navegación del usuario.

En el componente EdgeBrowser, existe un evento llamado OnNavigationStarting que nos proporciona dos parámetros:

EdgeBrowser1NavigationStarting(Sender: TCustomEdgeBrowser; Args: TNavigationStartingEventArgs);

En el primer parámetro “Sender“, obtenemos el componente desde el cual se llama el evento, mientras que en el segundo parámetro “Args“, de tipo TNavigationStartingEventArgs, obtendremos una serie de argumentos múy utiles.

El que nos interesa en este algoritmo es:

Args.ArgsInterface.Get_uri(Url);

Esta función, guarda en la variable Url, de tipo PWideChar, la URL la cual se ha comenzado a navegar, por ende, la URL en la cual el usuario ha hecho click.

El evento completo, que muestra en el caption del formulario la URL de navegación, quedaría de la siguiente manera:

procedure TForm1.EdgeBrowser1NavigationStarting(Sender: TCustomEdgeBrowser;  Args: TNavigationStartingEventArgs);
var
  Url: PWideChar;
begin
  Args.ArgsInterface.Get_uri(Url);
  Self.Caption := Url;
end;