Вимоги: Як WebView2 може рендерити та відображати веб-ресурси для дій користувача, як веб-інтерфейс може взаємодіяти з додатком WinForm? Наприклад, веб зчитує апаратну інформацію через додаток, і додаток активно оновлює вміст веб-сторінки.
Огляд:
По-перше, подивіться на рендеринг комунікації між вебом і додатком WinForm, веб надсилає повідомлення додатку,Вимкніть функцію калькулятора, яка відкриває систему WindowsВодночас додаток може успішно приймати повідомлення, надіслані на веб-сторону, як показано на рисунку нижче:
Комунікація між хостом і вебконтентом
Хости та вебконтент можуть використовуватися для взаємодії між собою у postMessages, наступним чином:
- Веб-контент у контролі WebView2 можна використати для публікації повідомлення хосту у window.chrome.webview.postMessage. Хост обробляє повідомлення з будь-яким повідомленням, яке реєструє WebMessageReceived на хості.
- Хост публікує повідомлення на веб-контент у контролі WebWebView2.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/Для запуску додатку, як показано нижче:
Нарешті, спробуйте надсилати повідомлення один одному через веб- та WinForm-додатки, і ви побачите, що обидві сторони можуть успішно отримувати повідомлення, як показано на наступному рисунку:
(Кінець)
|