Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 5093|Svare: 2

[Kilde] [WebView2] (4) Web- og WinForm-kallefunksjonsmetoder til hverandre

[Kopier lenke]
Publisert på 29.09.2022 21:03:59 | | | |
Krav: Den forrige artikkelen handlet om hvordan man implementerer webgrensesnittet og WinForm-applikasjonen for å kommunisere med hverandre for å sende meldinger, men bare meldingen ble sendt vellykket, og responsinformasjonen kunne ikke hentes. Hva om C#-klienten kaller en funksjonsmetode på nettet for å få returresultatet? Og hvordan kaller nettet C#-kode og får returverdien?

Anmeldelse:

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

[WebView2] (2) WinForm introduserer WebView2 for å vise webinnhold
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Toveis kommunikasjon mellom Web- og WinForm-applikasjoner
https://www.itsvse.com/thread-10364-1-1.html
La oss først se på renderingene av implementasjonen, nettsiden kaller WinForm-applikasjonenFå tak i utklippstavledata, WinForm-appenKall abc-metoden på nettet for å få returverdienSom følger:



C# kaller webfunksjonsmetoden

Dette scenariet viser hvordan man kjører JavaScript på nettet. I denne metoden spesifiserer vertsappen JavaScript-koden som skal kjøres og sender koden til nettet med ExecuteScriptAsync. ExecuteScriptAsync-funksjonen returnerer JavaScript-resultatet til ExecuteScript-kalleren.

Angular index.html-sidekoden er som følger:

Frontenden definerer hovedsakelig en abc-funksjon.

Winform kaller abc-funksjonen på nettet med følgende kode:



En nettside kaller en C#-funksjonsmetode

Sender native objekter til nettet. Metoden for å kalle objektet fra nettet kalles deretter.

For å bruke en melding som representerer et metodekall, bruk AddHostObjectToScript API. På et overordnet nivå gjør dette API-et det mulig å eksponere native (verts)objekter på nettet og fungere som proxyer. Bruk window.chrome.webview.hostObjects. {name}>a0> tilgang til disse objektene. Referansedokumentasjon:Innloggingen med hyperkoblingen er synlig.

Lag en ny knapp på nettsiden, klikk på knappen for å kalle C#-koden for å hente dataene til systemets nåværende utklippstavle.

Angular app.component.html-koden er som følger:

app.component.ts koden er som følger:

Front-end JS-koden har synkrone og asynkrone kall.

c# definer et WebView2HostObject-vertsobjekt med følgende kode:


Merk: Egendefinerte WebView2HostObject-klasser må være tagget[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]eiendom, ellers ville ikke JS kunne få tilgang til klassen.

Legg deretter til den nydefinerte instansen via AddHostObjectToScript(String,Object) med følgende kode:

Til slutt, klikk på knappen på fronten for å få utklippstavledataene, effekten er som følger:



(Slutt)





Foregående:WebView2 (3) Toveis kommunikasjon mellom Web- og WinForm-applikasjoner
Neste:【Turn】CURL-kommandoen bruker proxyer, og proxies introduseres
Publisert på 08.10.2022 15:07:01 |
Lær det
Publisert på 31.03.2023 13:30:38 |
Lær av det, takk for at du delte
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com