Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 5093|Отговор: 2

[Източник] [WebView2] (4) Web и WinForm методи за повикване помежду си

[Копирай линк]
Публикувано в 29.09.2022 г. 21:03:59 ч. | | | |
Изисквания: Предишната статия разглеждаше как да се реализира уеб интерфейсът и приложението WinForm, за да комуникират помежду си и да изпращат съобщения, но само съобщението беше успешно изпратено и информацията за отговора не можеше да бъде получена. Ами ако C# клиентът извика функционален метод на уеб, за да получи резултата от връщането? И как уебът извиква C# код и получава възвръщаемата стойност?

Преглед:

[WebView2] (1) Първоначално въведение в технологията Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm въвежда WebView2 за показване на уеб съдържание
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Двупосочна комуникация между уеб и WinForm приложенията
https://www.itsvse.com/thread-10364-1-1.html
Първо, нека разгледаме визуализациите на реализацията, уебсайтът извиква приложението WinFormВземете данни от клипборда, приложение WinFormИзвикай метода abc на уеб, за да получиш връщаната стойностКакто следва:



C# извиква метода на уеб функцията

Този сценарий показва как да се стартира JavaScript в интернет. При този метод хост приложението определя JavaScript кода за изпълнение и предава кода към уеб чрез ExecuteScriptAsync. Функцията ExecuteScriptAsync връща JavaScript резултата на ExecuteScript извикаващия.

Кодът на страницата Angular index.html е следният:

Фронтендът основно дефинира функция abc.

Winform извиква функцията abc на уеба със следния код:



Уеб страница извиква метод на C# функция

Предаване на родни обекти към уеб. След това се извиква методът за извикване на обекта от уеб.

За да използвате съобщение, което представлява извикване на метод, използвайте AddHostObjectToScript API. На високо ниво този API позволява нативни (хост) обекти да бъдат изложени на уеб и да действат като проксита. Използвайте window.chrome.webview.hostObjects. {name}>a0> достъп до тези обекти. Референтна документация:Входът към хиперлинк е видим.

Създайте нов бутон на уеб страницата, кликнете върху бутона, за да извикате C# кода и да получите данните от текущия клипборд на системата.

Кодът Angular app.component.html е следният:

app.component.ts код е следният:

Фронтенд JS кодът има синхронни и асинхронни повиквания.

c# дефинирам хост обект WebView2HostObject със следния код:


Забележка: Персонализираните класове WebView2HostObject трябва да бъдат тагнати[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]в противен случай JS нямаше да може да получи достъп до класа.

След това добавете новодефинираната инстанция чрез AddHostObjectToScript(String,Object) със следния код:

Накрая, кликнете бутона на предния край, за да получите данните от клипборда, ефектът е следният:



(Край)





Предишен:WebView2 (3) Двупосочна комуникация между уеб и WinForm приложенията
Следващ:【Turn】CURL използва проксита и се въвеждат проксита
Публикувано в 8.10.2022 г. 15:07:01 ч. |
Научи го
Публикувано в 31.03.2023 г. 13:30:38 ч. |
Научи се от това, благодаря, че сподели
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com