Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 5093|Svar: 2

[Kilde] [WebView2] (4) Web- og WinForm-kaldsfunktionsmetoder til hinanden

[Kopier link]
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:

[WebView2] (1) Indledende introduktion til Microsoft Edge WebView2-teknologi
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm introducerer WebView2 til at vise webindhold
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Tovejskommunikation mellem web- og WinForm-applikationer
https://www.itsvse.com/thread-10364-1-1.html
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-applikationer
Næste:【Turn】CURL-kommandoen bruger proxies, og proxies introduceres
Opslået på 08/10/2022 15.07.01 |
Lær det
Opslået på 31/03/2023 13.30.38 |
Lær af det, tak fordi du delte
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com