WebView2 for Harbour/Fivewin and VSC 2019

Responder
Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

WebView2 for Harbour/Fivewin and VSC 2019

Mensaje por Cristobal »

Bienvenido a FE_WebView2 ( version preliminar )
He incluido un ejemplo de uso del control para ser usado desde aplicaciones Fivewin.
Al principio del ejemplo, he detallado algunas de las webs en las que he basado mi trabajo o que he considerado interesante para las personas que quieran profundizar en este tema.
Este control WebView2 se puede desarrollar utilizando C o C++
También estoy trabajando desde hace tiempo en otra versión que utiliza C++.
Incluyo las librerías que son necesarias linkar para poder utilizarlo
Sólo están incluídas las librerías para VSC 2019 32 bits.
Se han utilizado las características que os pueden ser más prácticas.
Considero que el ejemplo es, por sí mismo, suficientemente explicativo, pero, cualquier duda o sugerencia, he considerado, que, en lugar de hacer un "manual", será mejor ir comentando en el foro.
He incluido el programa de instalación de Microsoft para que puedas utilizar este control en tu ordenador.

Espero que os guste

English
---------

Welcome to FE_WebView2 (preview version)
I have included an example of the use of the control to be used from Fivewin applications.
At the beginning of the example, I have detailed some of the websites on which I have based my work or that I have considered interesting for people who want to delve into this topic.
This WebView2 control can be developed using C or C ++
I am also working for a long time on another version that uses C ++.
I include the libraries that are necessary to link to be able to use it
Only the libraries for VSC 2019 32 bits are included.
The characteristics that can be more practical have been used.
I consider that the example is, by itself, sufficiently explanatory, but, any doubt or suggestion, I have considered that, instead of making a "manual", it will be better to comment on the forum.
I have included the Microsoft installation program so that you can use this control on your computer.

I hope you like it

Código: Seleccionar todo


//----------------------------------------------------------------------------//
//  Author  :    Cristobal Navarro Lopez ( c )
//  CLASS   :    TWEBVIEWC
//  Date    :    18/09/2021
//  Version :    0.0918      BETA
//  
//----------------------------------------------------------------------------//
#include "Fivewin.ch"

CLASS TWebViewC

   DATA cVersion      INIT ""
   DATA hWnd
   DATA cUrl          INIT ""
   DATA cUrlInit      INIT "about:blank"
   DATA lMenuPop      INIT .T.
   DATA lToolsDev     INIT .T.
   

   METHOD New( oParent, cUrl ) CONSTRUCTOR
   METHOD Activate()
   METHOD Close()
   METHOD EnableDevTools( lDevTools )
   METHOD EnablePopupMnu( lPopMnu )
   METHOD End()
   METHOD ExecuteScript( cScript )
   METHOD ExecuteScriptOnCreate( cScript )
   METHOD GoBack()
   METHOD GoForward()
   METHOD HWndWebView()
   METHOD Init( lInit )
   METHOD Navigate( cUrl )
   METHOD Reload()
   METHOD ResizeWebView()
   METHOD ShowHtml( cHtml )
   METHOD Stop()
   METHOD Url( cUrl )
   METHOD Version()

ENDCLASS

//----------------------------------------------------------------------------//
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

ramirezosvaldo
Mensajes: 127
Registered for: 3 years 5 months
Mexico

Mensaje por ramirezosvaldo »

Estimado Cristobal

Gracias por el ejemplo esta muy muy bien. ( a dios al IE Activex control )

Pregunta: Estoy viendo que lograste empaquetar las funcionalidades del control webview2 en FEWebView32.lib
es posible que dicha lib/dll pueda ser llamada desde VFP ? o Xbase++ ?, me imagino como una DLL independiente ?

Saludos
Osvaldo Ramirez

Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

Mensaje por Cristobal »

Estimado Oswaldo
Desde luego con una DLL se podría, pero...., por qué no intentas usar las dos librerias que adjunto y me dices qué problemas tienes? ( también es por curiosidad esta pregunta )
Saludos
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

ramirezosvaldo
Mensajes: 127
Registered for: 3 years 5 months
Mexico

Mensaje por ramirezosvaldo »

Mi estimado Cristobal

Deja Involucro a Pablo Botella, para ver si se puede cargar dichas libs tuyas en xbase++, y jugamos un poco.

Gracias mi estimado.
Osvaldo Ramirez

pablo-botella
Mensajes: 1
Registered for: 3 years 3 months
Spain

Mensaje por pablo-botella »

Hola,

Para Xbase++ lo suyo es montar una dll en C++ con un entry point que te cree un controlito que encapsule al navegador este le pasas el hWnd del contenedor y listo.

Problemas las ventanas de alaska corren todas en un hilo aparte donde hacen el bucle de mensajes, así que tu ventanita la tienes que crear ahí. Afortunadamente ot4xb trae delegated_eval( codeblock , parametros ) que te ejecuta el codeblock en el gui thread y también una funcioncita para subclasear ventanas.

Otra cosa es que Alaska no usa en TranslateMessage() porque lo que hace es meter un hook para atrapar las teclas y así se monta el truquito para el inkey() en los otros hilos así que para los aceleradores igual teneis que meterle un hook vuestro.

Ahora solo falta que venga alguien con tiempo y ganas para meterse en el fregao este.

Y aquí es cuando decimos, jo con lo sencillo que era todo con Fivewin :-)

Saludos
Pablo

Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

Mensaje por Cristobal »

Pues me acabas de empujar un poquito hacia algo que tenía en mente y que por falta de tiempo no lo he hecho
Hacer una implementación de WebView en C# para que podáis usarla vosotros y desde Fw también
Saludos Oswaldo
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

Mensaje por Cristobal »

Pablo, a ver si te preparo algo que es muy posible que si te funcione según las explicaciones que me has dado.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

ramirezosvaldo
Mensajes: 127
Registered for: 3 years 5 months
Mexico

Mensaje por ramirezosvaldo »

Pablo Gracias,
Pero eso seria si quisiéramos integrar codigo C en Xbase++, pero si hacemos una DLL y que fuera independiente del lenguaje ?

Saludos
Osvaldo Ramirez

Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

Mensaje por Cristobal »

Se me ha olvidado comentar también que esta es la versión preliminar, aunque ya estoy trabajando hace tiempo en otra que ya permite enviar mensajes desde Fw a la ventana del Webview ( con todo lo que ello supone de ventajas: no confundir con ejecutar código, javascript por ejemplo, que es otra cosa distinta, y que ya se puede hacer como sabéis con la versión actual ).
Estoy viendo la mejor manera de implementar el camino inverso, es decir, enviar mensajes desde la ventana de Webview a la ventana / contenedor de Fw.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Cristobal
Site Admin
Mensajes: 315
Registered for: 3 years 6 months
Spain

Mensaje por Cristobal »

También comentar que tengo otra versión en C++, a ver si saco un poco de tiempo, que fue la que inicialmente enseñé hace más de un año incluída en mi editor FivEdit.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces

Responder