Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 5093|Odpowiedź: 2

[Źródło] [WebView2] (4) Web i WinForm wymieniają metody funkcji ze sobą

[Skopiuj link]
Opublikowano 29.09.2022 21:03:59 | | | |
Wymagania: Poprzedni artykuł opisywał, jak zaimplementować interfejs webowy i aplikację WinForm do komunikacji w celu wysyłania wiadomości, jednak tylko wiadomość została pomyślnie wysłana i nie udało się uzyskać informacji odpowiedzi. Co jeśli klient C# wywołuje metodę funkcji w sieci, aby uzyskać wynik zwrotny? A jak web wywołuje kod C# i otrzymuje wartość zwrotną?

Recenzja:

[WebView2] (1) Pierwsze wprowadzenie do technologii Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm wprowadza WebView2 do wyświetlania treści internetowych
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Dwukierunkowa komunikacja między aplikacjami Web a WinForm
https://www.itsvse.com/thread-10364-1-1.html
Najpierw przyjrzyjmy się renderowaniu implementacji, którą strona internetowa nazywa aplikacją WinFormPobierz dane z schowka, aplikacja WinFormZadbaj o metodę abc w sieci, aby uzyskać wartość zwrotuNastępujący sposób:



C# wywołuje metodę funkcji Web

Ten scenariusz pokazuje, jak uruchomić JavaScript w sieci. W tej metodzie aplikacja hosta określa kod JavaScript do uruchomienia i przekazuje go do sieci za pomocą ExecuteScriptAsync. Funkcja ExecuteScriptAsync zwraca wynik JavaScript wywoływającemu ExecuteScript.

Kod strony Angular index.html wygląda następująco:

Frontend głównie definiuje funkcję abc.

Winform wywołuje funkcję abc sieci za pomocą następującego kodu:



Strona internetowa wywołuje metodę funkcji w C#

Przekazywanie natywnych obiektów do sieci. Następnie nazywa się metodę wywoływania obiektu z sieci.

Aby użyć wiadomości reprezentującej wywołanie metody, użyj API AddHostObjectToScript. Na wysokim poziomie to API pozwala na udostępnienie natywnych (host) obiektów w sieci i działania jako proxy. Użyj window.chrome.webview.hostObjects. {name}>a0> dostęp do tych obiektów. Dokumentacja referencyjna:Logowanie do linku jest widoczne.

Stwórz nowy przycisk na stronie internetowej, kliknij przycisk, aby wywołać kod C#, aby pobrać dane z aktualnej schowki systemu.

Kod app.component.html Angular wygląda następująco:

app.component.ts kod wygląda następująco:

Kod JS na początku obejmuje wywołania synchroniczne i asynchroniczne.

c# definiuje obiekt hosta WebView2HostObject za pomocą następującego kodu:


Uwaga: Niestandardowe klasy WebView2HostObject muszą być oznaczone tagami[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]property, w przeciwnym razie JS nie miałby dostępu do tej klasy.

Następnie dodaj nowo zdefiniowaną instancję za pomocą AddHostObjectToScript(String,Object) z następującym kodem:

Na koniec kliknij przycisk na froncie, aby pobrać dane ze schowka – efekt wygląda następująco:



(Koniec)





Poprzedni:WebView2 (3) Dwukierunkowa komunikacja między aplikacjami Web a WinForm
Następny:【Turn】Polecenie CURL wykorzystuje proxy, a wprowadzone są proxy
Opublikowano 08.10.2022 15:07:01 |
Naucz się go
Opublikowano 31.03.2023 13:30:38 |
Ucz się z tego, dzięki za podzielenie się
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com