Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 5093|Vastaus: 2

[Lähde] [WebView2] (4) Web ja WinForm kutsuvat funktiometodeja toisilleen

[Kopioi linkki]
Julkaistu 29.9.2022 21.03.59 | | | |
Vaatimukset: Edellinen artikkeli käsitteli verkkokäyttöliittymän ja WinForm-sovelluksen toteuttamista viestien lähettämiseksi, mutta vain viesti lähetettiin onnistuneesti, eikä vastaustietoja saatu hankituksi. Entä jos C#-asiakasohjelma kutsuu webin funktiometodin saadakseen palautustuloksen? Ja miten verkko kutsuu C#-koodia ja saa palautusarvon?

Arvostelu:

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

[WebView2] (2) WinForm esittelee WebView2:n näyttämään verkkosisältöä
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Kaksisuuntainen viestintä Web- ja WinForm-sovellusten välillä
https://www.itsvse.com/thread-10364-1-1.html
Ensiksi tarkastellaan toteutuksen renderöintiä, verkkosivusto kutsuu WinForm-sovellustaHanki lehtiödataa, WinForm-sovellusKutsu verkon abc-menetelmää saadaksesi tuottoarvonSeuraavasti:



C# kutsuu Web-funktiometodia

Tässä tilanteessa näytetään, miten JavaScript ajetaan verkossa. Tässä menetelmässä isäntäsovellus määrittää suoritettavan JavaScript-koodin ja välittää koodin verkkoon ExecuteScriptAsync-toiminnolla. ExecuteScriptAsync-funktio palauttaa JavaScript-tuloksen ExecuteScript-kutsujalle.

Angular index.html -sivukoodi on seuraava:

Frontend määrittelee pääasiassa abc-funktion.

Winform kutsuu webin abc-funktiota seuraavalla koodilla:



Verkkosivu kutsuu C#-funktiometodia

Natiiviesineiden välittäminen verkkoon. Menetelmä, jolla objekti kutsutaan verkosta, kutsutaan sitten.

Käyttääksesi viestiä, joka edustaa metodikutsua, käytä AddHostObjectToScript API:ta. Korkealla tasolla tämä API mahdollistaa natiivien (isäntä)objektien altistamisen verkkoon ja toimimisen välityspalvelina. Käytä window.chrome.webview.hostObjects. {name}>a0> pääsy näihin objekteihin. Viitedokumentaatio:Hyperlinkin kirjautuminen on näkyvissä.

Luo uusi painike verkkosivulle, klikkaa painiketta soittaaksesi C#-koodia saadaksesi järjestelmän nykyisen lehtiön tiedot.

Angular app.component.html -koodi on seuraava:

app.component.ts koodi on seuraava:

Front-endin JS-koodissa on synkronisia ja asynkronisia kutsuja.

c# määrittele WebView2HostObject-isäntäobjekti seuraavalla koodilla:


Huomautus: Mukautetut WebView2HostObject-luokat on tunnistettava[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]ominaisuus, muuten JS ei pääsisi käsiksi luokkaan.

Lisää sitten uusi määritelty instanssi AddHostObjectToScript(String,Object) -toiminnolla seuraavalla koodilla:

Lopuksi, klikkaa etupään painiketta saadaksesi lehtiödatan, vaikutus on seuraava:



(Loppu)





Edellinen:WebView2 (3) Kaksisuuntainen viestintä Web- ja WinForm-sovellusten välillä
Seuraava:【Turn】CURL-komento käyttää välityspalvelijoita ja välityspalvelimet otetaan käyttöön
Julkaistu 8.10.2022 15.07.01 |
Opettele se
Julkaistu 31.3.2023 13.30.38 |
Opi siitä, kiitos kun jaoit kokemuksesi
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com