Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 5093|Odgovoriti: 2

[Vir] [WebView2] (4) Web in WinForm si med seboj izmenjujeta funkcije

[Kopiraj povezavo]
Objavljeno na 29. 09. 2022 21:03:59 | | | |
Zahteve: Prejšnji članek je opisoval, kako implementirati spletni vmesnik in aplikacijo WinForm za medsebojno komunikacijo za pošiljanje sporočil, vendar je bilo uspešno poslano le sporočilo, informacije o odzivu pa niso bile pridobljene. Kaj pa, če C# odjemalec pokliče funkcijsko metodo spleta, da dobi povratni rezultat? In kako splet kliče C# kodo in dobi povratno vrednost?

Pregled:

[WebView2] (1) Začetni uvod v tehnologijo Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm uvaja WebView2 za prikaz spletnih vsebin
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Dvosmerna komunikacija med spletom in WinForm aplikacijami
https://www.itsvse.com/thread-10364-1-1.html
Najprej si poglejmo upodobitve implementacije, spletna stran imenuje aplikacijo WinFormPridobi podatke s odložišča, aplikacija WinFormPokličite metodo abc spleta, da dobite donosno vrednostKot sledi:



C# kliče metodo spletne funkcije

Ta scenarij prikazuje, kako zagnati JavaScript na spletu. Pri tej metodi gostiteljska aplikacija določi JavaScript kodo za zagon in kodo posreduje spletu s pomočjo ExecuteScriptAsync. Funkcija ExecuteScriptAsync vrne rezultat JavaScripta klicatelju ExecuteScript.

Koda strani Angular index.html je naslednja:

Frontend predvsem definira funkcijo abc.

Winform pokliče funkcijo abc spleta z naslednjo kodo:



Spletna stran kliče metodo funkcije v C#

Prenos izvornih predmetov na splet. Metoda klica objekta iz spleta se nato imenuje.

Za uporabo sporočila, ki predstavlja klic metode, uporabite API AddHostObjectToScript. Na splošni ravni ta API omogoča, da so izvorni (gostiteljski) objekti izpostavljeni spletu in delujejo kot proxyji. Uporabi windows.chrome.webview.hostObjects. {name}>a0> dostopaj do teh objektov. Referenčna dokumentacija:Prijava do hiperpovezave je vidna.

Ustvari nov gumb na spletni strani, klikni gumb za klic C# kode in pridobiš podatke trenutne tabele sistema.

Koda Angular app.component.html je naslednja:

app.component.ts koda je naslednja:

Sprednja JS koda vsebuje sinhrone in asinhrone klice.

c# definira WebView2HostObject gostiteljski objekt z naslednjo kodo:


Opomba: Prilagojeni razredi WebView2HostObject morajo biti označeni[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]lastnosti, sicer JS ne bi mogel dostopati do razreda.

Nato dodajte novo definirano instanco preko AddHostObjectToScript(String,Object) z naslednjo kodo:

Na koncu kliknite gumb na sprednjem koncu za pridobitev podatkov iz odložišča, učinek je naslednji:



(Konec)





Prejšnji:WebView2 (3) Dvosmerna komunikacija med spletom in WinForm aplikacijami
Naslednji:【Obrat】Ukaz CURL uporablja proxyje in uvedeni so proxy
Objavljeno na 8. 10. 2022 15:07:01 |
Nauči se
Objavljeno na 31. 03. 2023 13:30:38 |
Uči se iz nje, hvala, ker si delil
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com