Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 5093|Răspunde: 2

[Sursă] [WebView2] (4) Metode de apel funcțiilor Web și WinForm între ele

[Copiază linkul]
Postat pe 29.09.2022 21:03:59 | | | |
Cerințe: Articolul anterior a scris despre cum să implementezi interfața web și aplicația WinForm pentru a comunica între ele pentru a trimite mesaje, dar doar mesajul a fost trimis cu succes, iar informațiile de răspuns nu au putut fi obținute. Ce se întâmplă dacă clientul C# apelează o metodă funcțională a web-ului pentru a obține rezultatul returnat? Și cum apelează web-ul codul C# și obține valoarea returnată?

Recenzie:

[WebView2] (1) Introducere inițială în tehnologia Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm introduce WebView2 pentru afișarea conținutului web
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Comunicare bidirecțională între aplicațiile Web și WinForm
https://www.itsvse.com/thread-10364-1-1.html
Mai întâi, să ne uităm la randările implementării, site-ul web numește aplicația WinFormObține date din clipboard, aplicația WinFormSună la metoda abc a internetului pentru a obține valoarea de randamentAșa cum urmează:



C# apelează metoda funcției Web

Acest scenariu arată cum să rulezi JavaScript pe web. În această metodă, aplicația gazdă specifică codul JavaScript ce urmează să ruleze și transmite codul către web cu ExecuteScriptAsync. Funcția ExecuteScriptAsync returnează rezultatul JavaScript apelantului ExecuteScript.

Codul paginii Angular index.html este următorul:

Frontend-ul definește în principal o funcție abc.

Winform apelează funcția abc a web-ului cu următorul cod:



O pagină web apelează o metodă a funcției C#

Transmiterea obiectelor native către web. Metoda de apelare a obiectului de pe web este apoi apelată.

Pentru a folosi un mesaj care reprezintă un apel de metodă, folosiți API-ul AddHostObjectToScript. La nivel general, acest API permite expunerea obiectelor native (gazdă) pe web și acționând ca proxy-uri. Folosește windows.chrome.webview.hostObjects. {name}>a0> accesează aceste obiecte. Documentație de referință:Autentificarea cu hyperlink este vizibilă.

Creează un buton nou pe pagina web, apasă butonul pentru a chema codul C# și a obține datele din clipboard-ul curent al sistemului.

Codul app.component.html Angular este următorul:

app.component.ts cod este următorul:

Codul JS front-end are apeluri sincrone și apeluri asincrone.

c# definește un obiect gazdă WebView2HostObject cu următorul cod:


Notă: Clasele personalizate WebView2HostObject trebuie etichetate[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]proprietate, altfel JS nu ar putea accesa clasa.

Apoi adaugă noua instanță definită prin AddHostObjectToScript(String,Object) cu următorul cod:

În final, apasă butonul din partea frontală pentru a obține datele din clipboard, efectul este următorul:



(Sfârșit)





Precedent:WebView2 (3) Comunicare bidirecțională între aplicațiile Web și WinForm
Următor:Comanda 【Turn】CURL folosește proxy-uri și sunt introduse proxy-uri
Postat pe 08.10.2022 15:07:01 |
Învață-l
Postat pe 31.03.2023 13:30:38 |
Învață din asta, mulțumesc că ai împărtășit
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com