feb 102016
 

Buscando información para la librería GMLib sobre las novedades del TWebBrowser en Androis y iOS en las nuevas versiones de RAD Studio (acceso al HTML y ejecución de funciones JavaScript), me encontré la clase TWebBrowserEx que realiza todo lo que necesito.

Esta clase realizada por Jun HOSOKAWA es compatible con RAD Studio (desde la versión XE5 -con alguna pequeña corrección- hasta Seattle 10) y con Appmethod (desde la 1.14 a la 1.17).

La clase TWebBrowserEx hereda directamente de TWebBrowser (por lo que será compatible con cualquier aplicativo que se tenga hecho con éste componente) añadiendole ciertas funcionalidades interesantes:

  • procedure CallJS: esté método que hace una llamada a una función JavaScript (con o sin parámetros)
  • procedure EvaluateJavaScript: éste método ejecuta código JavaScript.
  • procedure LoadFromStrings: visualiza el código HTML pasado por parámetro en un string.
  • function GetTagValue: functión que devuleve el valor de cualquier tag HTML.

Si bien es cierto que en Seattle 10 tenemos el método EvaluateJavaScript del TWebBrowser, no es así en versiones anteriores y, además, no tenemos la opción de acceder a los elementos del HTML de forma estándar.

Aquí os dejo algunos trozos de código para hacer funcionar esta clase (no costaría demasiado hacerlo componente):

  // creation of object
  FWebBrowser := TWebBrowserEx.Create(Self);
  FWebBrowser.Parent := Panel2;
  FWebBrowser.Align := TAlignLayout.Client;

  // load an url
  FWebBrowser.URL := 'http://www.cadetill.com/un-repaso-a-lo-nuevo-de-delphi-10-seattle/';

  // put a html code directly
  FWebBrowser.LoadFromStrings('Hello WebBrowser!', '');

  // execute a JavaScript code
  FWebBrowser.EvaluateJavaScript('alert("EvaluateJavaScript method from WebBrowserEx class!")');

  // getting a value from id
  lat := FWebBrowser.GetTagValue('lat', 'value');
  lng := FWebBrowser.GetTagValue('lat', 'value');
  ShowMessage(Format('lat/lng clicked: %s/%s', [lat, lng]));

  // execute a JavaScript function into HTML code
  FWebBrowser.CallJS('MapSetCenter', ['42.51968735985934', '42.51968735985934']);

Además, TWebBrowserEx es de código abierto y está alojada en github.

Puedes descargarte la demo desde este enlace.

Hasta la próxima.

  2 Responses to “TWebBrowserEx Class”

  1. Hello,

    Tdcef3 is now compatible with both VCL and FMX libraries.
    Is it a great amout of work to update your library and use Tdcef3 ?

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)