Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 5093|Svar: 2

[Källa] [WebView2] (4) Web- och WinForm-anropsfunktionsmetoder till varandra

[Kopiera länk]
Publicerad på 2022-09-29 21:03:59 | | | |
Krav: Den föregående artikeln skrev om hur webbgränssnittet och WinForm-applikationen implementeras för att kommunicera med varandra och skicka meddelanden, men endast meddelandet skickades framgångsrikt och svarsinformationen kunde inte erhållas. Vad händer om C#-klienten anropar en funktionsmetod på webben för att få returresultatet? Och hur anropar webben C#-kod och får returvärdet?

Recension:

[WebView2] (1) Initial introduktion till Microsoft Edge WebView2-teknologin
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm introducerar WebView2 för att visa webbinnehåll
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Tvåvägskommunikation mellan webben och WinForm-applikationerna
https://www.itsvse.com/thread-10364-1-1.html
Först, låt oss titta på renderingarna av implementationen, webbplatsen anropar WinForm-applikationenHämta klippplattedata, WinForm-appenAnropa abc-metoden på webben för att få returvärdetFöljande följer:



C# anropar Webfunktionsmetoden

Detta scenario visar hur man kör JavaScript på webben. I denna metod specificerar värdappen JavaScript-koden som ska köras och skickar koden till webben med ExecuteScriptAsync. Funktionen ExecuteScriptAsync returnerar JavaScript-resultatet till ExecuteScript-anroparen.

Sidokoden för Angular index.html är följande:

Frontend definierar främst en abc-funktion.

Winform anropar webbens abc-funktion med följande kod:



En webbsida anropar en C#-funktionsmetod

Att skicka ursprungsobjekt till webben. Metoden för att anropa objektet från webben anropas sedan.

För att använda ett meddelande som representerar ett metodanrop, använd AddHostObjectToScript API:et. På en övergripande nivå tillåter detta API att native (värd)objekt exponeras mot webben och fungera som proxyer. Använd window.chrome.webview.hostObjects. {name}>a0> åtkomst till dessa objekt. Referensdokumentation:Inloggningen med hyperlänken är synlig.

Skapa en ny knapp på webbsidan, klicka på knappen för att anropa C#-koden och få data från systemets aktuella urklipp.

Koden för Angular app.component.html är följande:

app.component.ts kod är följande:

Front-end JS-koden har synkrona och asynkrona anrop.

c# definiera ett WebView2HostObject-värdobjekt med följande kod:


Observera: Anpassade WebView2HostObject-klasser måste vara taggade[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]egendom, annars skulle JS inte kunna komma åt klassen.

Lägg sedan till den nydefinierade instansen via AddHostObjectToScript(String,Object) med följande kod:

Klicka slutligen på knappen på framsidan för att få urklippsdata, effekten är följande:



(Slut)





Föregående:WebView2 (3) Tvåvägskommunikation mellan webben och WinForm-applikationerna
Nästa:【Turn】CURL-kommandot använder proxyer och proxies introduceras
Publicerad på 2022-10-08 15:07:01 |
Lär dig det
Publicerad på 2023-03-31 13:30:38 |
Lär dig av det, tack för att du delar med dig
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com