Изисквания: Как WebView2 може да рендерира и показва уеб ресурси за потребителски действия, как може уеб интерфейсът да комуникира с приложението WinForm? Например, уебът чете хардуерна информация през приложението, а приложението активно обновява съдържанието на уеб страницата.
Преглед:
Първо, разгледайте визуализациите на комуникацията между уеб и приложението WinForm, уебът изпраща съобщение към приложението,Извикай функцията Калкулатор, която отваря Windows систематаВ същото време приложението може успешно да получава съобщения, изпратени към уеб страната, както е показано на фигурата по-долу:
Комуникация между хоста и уеб съдържанието
Хостовете и уеб съдържанието могат да се използват за комуникация помежду си в postMessages, както следва:
- Уеб съдържанието в контрола WebView2 може да се използва за публикуване на съобщение към хоста в window.chrome.webview.postMessage. Хостът обработва съобщението с всяко съобщение, което регистрира WebMessageReceived на хоста.
- Хостът публикува съобщения към уеб съдържанието в контрола WebView2 CoreWebView2.PostWebMessageAsString или CoreWebView2.PostWebMessageAsJSON. Тези съобщения се записват от обработващия уред, добавен към window.chrome.webview.addEventListener.
Създайте нов проект за Angular SPA
Тази статия използва Angular 8.2.14, за да създаде нов уеб проект, който демонстрира комуникацията между уеба и приложението WinForm.
Кодът е следният:
В същото време модифицирайте файловете app.component.html и app.component.ts, за да реализирате функциите за изпращане и получаване на съобщения.
app.component.html код е следният:
app.component.ts код е следният:
Управлявайте проекта, както е показано по-долу:
Приложение чрез WinForm
Хост приложението трябва да модифицира кода по следния начин:
Модифициране на контрола WebView2Източникът е: http://localhost:4200/За стартиране на приложението, както е показано по-долу:
Накрая, опитайте да изпращате съобщения един на друг чрез Web и WinForm приложенията и ще видите, че и двете страни могат успешно да получат съобщенията, както е показано на следващата фигура:
(Край)
|