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:
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)
|