|
|
Opslået på 29/09/2022 21.03.59
|
|
|
|

Krav: Den forrige artikel handlede om, hvordan webgrænsefladen og WinForm-applikationen kunne implementeres til at kommunikere med hinanden for at sende beskeder, men kun beskeden blev sendt med succes, og svarinformationen kunne ikke opnås. Hvad hvis C#-klienten kalder en funktionsmetode fra webben for at få returresultatet? Og hvordan kalder nettet C#-kode og får returværdien?
Anmeldelse:
Lad os først se på renderingerne af implementeringen, hjemmesiden kalder WinForm-applikationenFå udklipsplade-data, WinForm-appenKald abc-metoden på nettet for at få returværdienSom følger:
C# kalder Webfunktionsmetoden
Dette scenarie viser, hvordan man kører JavaScript på nettet. I denne metode specificerer værtsappen JavaScript-koden, der skal køres, og sender koden til webben med ExecuteScriptAsync. Funktionen ExecuteScriptAsync returnerer JavaScript-resultatet til ExecuteScript-kalderen.
Angular index.html-sidekoden er som følger:
Frontenden definerer hovedsageligt en abc-funktion.
Winform kalder abc-funktionen på nettet med følgende kode:
En webside kalder en C#-funktionsmetode
Sender oprindelige objekter til nettet. Metoden til at kalde objektet fra webben kaldes derefter.
For at bruge en besked, der repræsenterer et metodekald, brug AddHostObjectToScript API'en. På et overordnet niveau tillader dette API, at native (host) objekter kan eksponeres for nettet og fungere som proxies. Brug window.chrome.webview.hostObjects. {name}>a0> adgang til disse objekter. Referencedokumentation:Hyperlink-login er synlig.
Opret en ny knap på websiden, klik på knappen for at kalde C#-koden for at få dataene fra systemets aktuelle udklipsholder.
Angular app.component.html-koden er som følger:
app.component.ts kode er som følger:
Front-end JS-koden har synkrone kald og asynkrone kald.
c# definer et WebView2HostObject-værtsobjekt med følgende kode:
Bemærk: Brugerdefinerede WebView2HostObject-klasser skal være tagget[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]ejendom, ellers ville JS ikke kunne få adgang til klassen.
Tilføj derefter den nydefinerede instans via AddHostObjectToScript(String,Object) med følgende kode:
Til sidst klikker du på knappen på fronten for at få udklipsholder-dataene, effekten er som følger:
(Slut)
|
Tidligere:WebView2 (3) Tovejskommunikation mellem web- og WinForm-applikationerNæste:【Turn】CURL-kommandoen bruger proxies, og proxies introduceres
|