See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 5093|Vastuse: 2

[Allikas] [WebView2] (4) Web ja WinForm kutsuvad üksteisele funktsioonimeetodeid

[Kopeeri link]
Postitatud 29.09.2022 21:03:59 | | | |
Nõuded: Eelmine artikkel kirjutas, kuidas rakendada veebiliidest ja WinFormi rakendust, et omavahel sõnumeid saata, kuid ainult sõnum saadeti edukalt ning vastuseinfot ei õnnestunud saada. Mis siis, kui C# klient kutsub veebist funktsioonimetoodi, et saada tagastustulemus? Ja kuidas veeb kutsub C# koodi ja saab tagastusväärtuse?

Läbivaatamine:

[WebView2] (1) Microsoft Edge WebView2 tehnoloogia esmatutvustus
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm tutvustab WebView2 veebisisu kuvamiseks
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Kahepoolne suhtlus veebi ja WinFormi rakenduste vahel
https://www.itsvse.com/thread-10364-1-1.html
Esmalt vaatame rakenduse renderdusi, veebileht kutsub WinFormi rakendustHangi lõikelaua andmed, WinForm rakendusHelistage veebis abc meetodile, et saada tootlusväärtusJärgmiselt:



C# kutsub veebifunktsiooni meetodit

See stsenaarium näitab, kuidas JavaScripti veebis käivitada. Selles meetodis määrab hostrakendus JavaScripti koodi, mida käivitada, ja edastab koodi veebi ExecuteScriptAsync abil. ExecuteScriptAsync funktsioon tagastab JavaScripti tulemuse ExecuteScript kutsujale.

Angular index.html lehekülje kood on järgmine:

Frontend määratleb peamiselt abc funktsiooni.

Winform kutsub veebi abc funktsiooni järgmise koodiga:



Veebileht kutsub C# funktsiooni meetodit

Natiivsete objektide edastamine veebile. Seejärel kutsutakse välja meetod objekti kutsumiseks veebist.

Et kasutada sõnumit, mis esindab meetodikutset, kasuta AddHostObjectToScript API-d. Kõrgel tasemel võimaldab see API natiivsetel (host)objektidel veebis olla avatud ja toimida proksidena. Kasuta window.chrome.webview.hostObjects. {name}>a0> pääseb neile objektidele ligi. Viitedokumentatsioon:Hüperlingi sisselogimine on nähtav.

Loo veebilehel uus nupp, klõpsa nuppu, et kutsuda C# koodi, et saada süsteemi praeguse lõikelaua andmed.

Angular app.component.html kood on järgmine:

app.component.ts kood on järgmine:

Front-end JS-kood sisaldab sünkroonseid ja asünkroonneid kõnesid.

c# defineeri WebView2HostObject hostobjekti järgmise koodiga:


Märkus: Kohandatud WebView2HostObject klassid peavad olema märgistatud[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]omadus, muidu JS ei pääseks klassile ligi.

Seejärel lisa uus defineeritud eksemplar AddHostObjectToScript(String,Object) kaudu järgmise koodiga:

Lõpuks, klõpsa esiküljel olevale nupule, et saada lõikelaua andmed, efekt on järgmine:



(Lõpp)





Eelmine:WebView2 (3) Kahepoolne suhtlus veebi ja WinFormi rakenduste vahel
Järgmine:【Turn】CURL käsk kasutab proksisid ja tutvustatakse proksisid
Postitatud 08.10.2022 15:07:01 |
Õpi seda
Postitatud 31.03.2023 13:30:38 |
Õpi sellest, aitäh jagamast
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com