Webview2 para standalone versiones

Post Reply
hmpaquito
Posts: 1534
Joined: Thu Oct 30, 2008 2:37 pm

Webview2 para standalone versiones

Post by hmpaquito »

Hola Antonio,

Estoy realizando unas pruebas con TWebView2 en FiveWin for Harbour sobre Windows Server 2012 R2.

En este sistema, las versiones actuales del WebView2 Runtime ya no funcionan correctamente, mientras que la Fixed Version Runtime (Standalone) sí puede utilizarse, tal y como recomienda Microsoft para estos casos.

El problema que encuentro es que, según he visto, FiveWin llama a:

CreateCoreWebView2EnvironmentWithOptions(
NULL,
NULL,
...
)

por lo que siempre intenta utilizar el Runtime instalado en el sistema.

Sin embargo, la API de Microsoft permite indicar explícitamente la carpeta donde se encuentra la Fixed Version Runtime mediante el parámetro browserExecutableFolder.

¿Sería posible añadir esta posibilidad a TWebView2?

Por ejemplo, mediante una propiedad:

oWebView:cBrowserExecutableFolder := "C:\MiPrograma\WebView2Runtime"

o bien como un parámetro adicional del constructor.

De esta forma FiveWin podría utilizar tanto el Runtime instalado como una versión fija distribuida junto con la aplicación, algo que resulta muy útil en equipos antiguos o en entornos donde no es posible instalar o actualizar el Runtime del sistema.

Creo que sería una mejora interesante porque no rompe la compatibilidad actual y simplemente expondría una funcionalidad que ya ofrece la API oficial de Microsoft.

Salu2

User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Webview2 para standalone versiones

Post by Antonio Linares »

Querido Paco,

Gracias por el informe y por la propuesta: tiene mucho sentido, sobre todo en Windows Server 2012 R2 y en entornos donde no se puede instalar o actualizar el Runtime Evergreen.

Ya está soportado en TWebView2.

New() admite un tercer parámetro opcional, cBrowserExecutableFolder, equivalente al browserExecutableFolder de la API de Microsoft:

// Runtime instalado en el sistema (comportamiento habitual, sin cambios)
oWeb := TWebView2():New( oWnd )

// Fixed Version / Standalone distribuido con la aplicación
oWeb := TWebView2():New( oWnd, , "C:\MiPrograma\WebView2Runtime" )

// Con carpeta de perfil aislada + Fixed Version
oWeb := TWebView2():New( oWnd, "C:\MiPrograma\UserData", "C:\MiPrograma\WebView2Runtime" )

Notas importantes:

  1. La ruta debe ser la raíz del Fixed Version Runtime (la carpeta que contiene msedgewebview2.exe), tal como indica Microsoft.
  2. Hay que pasarla en el constructor: el entorno WebView2 se crea al hacer New(), así que asignar una propiedad después ya sería demasiado tarde.
  3. Si no se indica el 3.er parámetro, el comportamiento sigue siendo el de siempre: Runtime Evergreen del sistema.
  4. Si se indica una carpeta y no se encuentra el Runtime ahí, no se cae al Evergreen del sistema (para no enmascarar un error de empaquetado).

También se ha corregido el 2.º parámetro (cUserDataFolder): en algunos casos se sobrescribía con una ruta por defecto en AppData; ahora se respeta correctamente.

Un saludo y gracias de nuevo por la sugerencia. Si me envias un email, te envío el nuevo build para que lo pruebes 👍

regards, saludos

Antonio Linares
www.fivetechsoft.com
hmpaquito
Posts: 1534
Joined: Thu Oct 30, 2008 2:37 pm

Re: Webview2 para standalone versiones

Post by hmpaquito »

Aquí está !

hmpaquitoARROBAgmail.com

Lo pruebo y te digo !

PD. Uso bcc73/bcc74

hmpaquito
Posts: 1534
Joined: Thu Oct 30, 2008 2:37 pm

Re: Webview2 para standalone versiones

Post by hmpaquito »

Antonio,

Ha funcionado perfectamente.
Usé la carpeta alternativa de webview y por si acaso la carpeta alternativa de usuario.
Y he flipado porque ha funcionado perfectamente. Es verdad que la version webview instalada en antigua porque todas las standalone son antiguas, pero aparentemente todo el código html se lo traga muy bien.

Muchísimas gracias Antonio, le has ahorrado a mi cliente tener que actualizar.
Me gustaría mandarte un pequeño bizum de agradecimiento. Dime por favor tu teléfono

User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Webview2 para standalone versiones

Post by Antonio Linares »

+34 722461100

Gracias :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply