Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 6696|Respuesta: 5

[Fuente] WebView2 (3) Comunicación bidireccional entre las aplicaciones Web y WinForm

[Copiar enlace]
Publicado en 27/9/2022 22:12:31 | | | |
Requisitos: ¿Cómo puede WebView2 renderizar y mostrar recursos web para acciones de usuario, cómo puede la interfaz web comunicarse con la aplicación WinForm? Por ejemplo, la web lee información de hardware a través de la aplicación, y esta actualiza activamente el contenido de la página web.

Revisión:

[WebView2] (1) Introducción inicial a la tecnología Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm introduce WebView2 para mostrar contenido web
https://www.itsvse.com/thread-10362-1-1.html
Primero, observa los renderizados de la comunicación entre la web y la aplicación WinForm; la web envía un mensaje a la aplicación,Invocar la función Calculadora que abre el sistema WindowsAl mismo tiempo, la aplicación también puede recibir con éxito mensajes enviados al lado web, como se muestra en la figura siguiente:



Comunicación entre el anfitrión y el contenido web

Los hosts y el contenido web pueden usarse para comunicarse entre sí en postMessages, de la siguiente manera:

  • El contenido web en el control WebView2 puede usarse para publicar un mensaje al host en window.chrome.webview.postMessage. El host procesa el mensaje con cualquier mensaje que registre WebMessageReceived en el host.
  • El anfitrión publica mensajes en el contenido web del control WebView2 CoreWebView2.PostWebMessageAsString usando o CoreWebView2.PostWebMessageAsJSON. Estos mensajes son capturados por el handler añadido a window.chrome.webview.addEventListener.


Crear un nuevo proyecto Angular SPA

Este artículo utiliza Angular 8.2.14 para crear un nuevo proyecto web que demuestre la comunicación entre la web y la aplicación WinForm.

El código es el siguiente:

Al mismo tiempo, modificar los archivos app.component.html y app.component.ts para realizar las funciones de envío y recepción de mensajes.

app.component.html código es el siguiente:

app.component.ts código es el siguiente:

Ejecuta el proyecto como se muestra a continuación:



Aplicación WinForm

La aplicación anfitriona necesita modificar el código de la siguiente manera:

Modificar el control de WebView2Atributo fuente es: http://localhost:4200/para lanzar la aplicación, como se muestra a continuación:



Finalmente, intenta enviarte mensajes entre sí mediante las aplicaciones Web y WinForm, y podrás ver que ambas partes pueden recibir los mensajes con éxito, como se muestra en la siguiente figura:



(Fin)





Anterior:【Optimización de rendimiento】Funciones de Preconexión, Prelectura DNS y Precarga en el front-end
Próximo:[WebView2] (4) Métodos de función Web y WinForm entre sí
Publicado en 28/9/2022 8:55:45 |
Tiene que depender del EDG como dolor de cabeza
 Propietario| Publicado en 28/9/2022 19:26:50 |
Zmoli775 Publicado el 28-09-2022 08:55
Tiene que depender del EDG como dolor de cabeza

No, pero necesitas instalar el runtime de Webview2
Publicado en 8/10/2022 15:06:24 |
Aprende a aprender
Publicado en 31/3/2023 13:32:46 |
Win7 no parece funcionar, he leído que la documentación de Microsoft dice que no lo soporta.
 Propietario| Publicado en 7/1/2025 13:29:35 |
En el mismo proceso. NET y JavaScript.

El inicio de sesión del hipervínculo es visible.
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com