Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 5093|Atsakyti: 2

[Šaltinis] [WebView2] (4) Web ir WinForm iškvietimo funkcijos metodai vienas kitam

[Kopijuoti nuorodą]
Paskelbta 2022-09-29 21:03:59 | | | |
Reikalavimai: Ankstesniame straipsnyje rašyta apie tai, kaip įdiegti žiniatinklio sąsają ir "WinForm" programą, kad būtų galima bendrauti tarpusavyje ir siųsti pranešimus, tačiau tik pranešimas buvo sėkmingai išsiųstas, o atsakymo informacijos gauti nepavyko. Ką daryti, jei C# klientas iškviečia žiniatinklio funkcijos metodą, kad gautų grąžinimo rezultatą? Ir kaip žiniatinklis iškviečia C# kodą ir gauna grąžinamąją vertę?

Peržiūra:

[WebView2] (1) Pradinis įvadas į "Microsoft Edge WebView2" technologiją
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) "WinForm" pristato "WebView2", kad būtų rodomas žiniatinklio turinys
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Dvikryptis ryšys tarp žiniatinklio ir WinForm programų
https://www.itsvse.com/thread-10364-1-1.html
Pirma, pažvelkime į atvaizdus įgyvendinimo, interneto svetainė kviečia WinForm programąGaukite mainų srities duomenis, "WinForm" programaIškvieskite žiniatinklio abc metodą, kad gautumėte grąžinamąją reikšmęTaip:



C# iškviečia žiniatinklio funkcijos metodą

Šiame scenarijuje parodyta, kaip paleisti "JavaScript" žiniatinklyje. Taikant šį metodą, pagrindinė programa nurodo "JavaScript" kodą, kurį reikia paleisti, ir perduoda kodą žiniatinkliui su "ExecuteScriptAsync". Funkcija ExecuteScriptAsync grąžina JavaScript rezultatą ExecuteScript iškvietusiui.

"Angular index.html" puslapio kodas yra toks:

Sąsaja daugiausia apibrėžia abc funkciją.

"Winform" iškviečia žiniatinklio funkciją abc tokiu kodu:



Tinklalapis iškviečia C# funkcijos metodą

Vietinių objektų perdavimas žiniatinkliui. Tada iškviečiamas objekto iškvietimo iš žiniatinklio būdas.

Norėdami naudoti pranešimą, nurodantį metodo iškvietimą, naudokite AddHostObjectToScript API. Aukštu lygiu ši API leidžia vietiniams (pagrindiniams) objektams patekti į žiniatinklį ir veikti kaip tarpiniai serveriai. Naudokite window.chrome.webview.hostObjects. {name}>a0> pasiekti šiuos objektus. Informaciniai dokumentai:Hipersaito prisijungimas matomas.

Sukurkite naują mygtuką tinklalapyje, spustelėkite mygtuką, kad iškviestumėte C# kodą, kad gautumėte dabartinės sistemos mainų srities duomenis.

"Angular app.component.html" kodas yra toks:

app.component.ts kodas yra toks:

Priekinis JS kodas turi sinchroninius skambučius ir asinchroninius skambučius.

c# apibrėžkite WebView2HostObject pagrindinio kompiuterio objektą naudodami šį kodą:


Pastaba: Pasirinktinės WebView2HostObject klasės turi būti pažymėtos[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]savybė, kitaip JS negalėtų prieiti prie klasės.

Tada pridėkite naujai apibrėžtą egzempliorių naudodami AddHostObjectToScript(String,Object) su šiuo kodu:

Galiausiai spustelėkite mygtuką priekinėje dalyje, kad gautumėte mainų srities duomenis, efektas yra toks:



(Pabaiga)





Ankstesnis:WebView2 (3) Dvikryptis ryšys tarp žiniatinklio ir WinForm programų
Kitą:【Pasukti】 CURL komanda naudoja tarpinius serverius ir tarpinius serverius
Paskelbta 2022-10-08 15:07:01 |
Išmokite
Paskelbta 2023-03-31 13:30:38 |
Mokykitės iš jo, ačiū už pasidalinimą
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com