Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 5093|Risposta: 2

[Fonte] [WebView2] (4) Metodi di chiamata Web e WinForm tra loro

[Copiato link]
Pubblicato su 29/09/2022 21:03:59 | | | |
Requisiti: L'articolo precedente ha scritto come implementare l'interfaccia web e l'applicazione WinForm per comunicare tra loro e inviare messaggi, ma solo il messaggio è stato inviato con successo e le informazioni di risposta non sono state ottenute. E se il client C# chiama un metodo funzione del web per ottenere il risultato di ritorno? E come fa il web a chiamare il codice C# e ottenere il valore di reso?

Recensione:

[WebView2] (1) Introduzione iniziale alla tecnologia Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm introduce WebView2 per visualizzare contenuti web
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Comunicazione bidirezionale tra le applicazioni Web e WinForm
https://www.itsvse.com/thread-10364-1-1.html
Per prima cosa, guardiamo i rendering dell'implementazione, il sito web chiama l'applicazione WinFormOttieni i dati della cartellina, app WinFormChiama il metodo abc del web per ottenere il valore di ritornoCome segue:



C# chiama il metodo della funzione Web

Questo scenario mostra come eseguire JavaScript sul web. In questo metodo, l'app host specifica il codice JavaScript da eseguire e lo trasmette al web con ExecuteScriptAsync. La funzione ExecuteScriptAsync restituisce il risultato JavaScript al chiamante ExecuteScript.

Il codice di pagina Angular index.html è il seguente:

Il frontend definisce principalmente una funzione abc.

Winform chiama la funzione abc del web con il seguente codice:



Una pagina web chiama un metodo di funzione C#

Passare oggetti nativi al web. Viene quindi chiamato il metodo per chiamare l'oggetto dal web.

Per usare un messaggio che rappresenta una chiamata a un metodo, usa l'API AddHostObjectToScript. A livello generale, questa API consente di esporre oggetti nativi (host) al web e agire come proxy. Usa window.chrome.webview.hostObjects. {name}>a0> accedi a questi oggetti. Documentazione di riferimento:Il login del link ipertestuale è visibile.

Crea un nuovo pulsante sulla pagina web, clicca sul pulsante per chiamare il codice C# e ottenere i dati della cartellina attuale del sistema.

Il codice app.component.html angolare è il seguente:

app.component.ts codice è il seguente:

Il codice JS front-end contiene chiamate sincrone e chiamate asincrone.

c# definisci un oggetto host WebView2HostObject con il seguente codice:


Nota: Le classi personalizzate di WebView2HostObject devono essere taggate[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]property, altrimenti JS non potrebbe accedere alla classe.

Poi aggiungi la nuova istanza definita tramite AddHostObjectToScript(String,Object) con il seguente codice:

Infine, clicca sul pulsante nella parte frontale per ottenere i dati della cartellina, l'effetto è il seguente:



(Fine)





Precedente:WebView2 (3) Comunicazione bidirezionale tra le applicazioni Web e WinForm
Prossimo:【Turn】CURL il comando usa proxy e vengono introdotti proxy
Pubblicato su 08/10/2022 15:07:01 |
Imparalo
Pubblicato su 31/03/2023 13:30:38 |
Impara da questo, grazie per aver condiviso
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com