Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 5093|Válasz: 2

[Forrás] [WebView2] (4) Web és WinForm függvény metódusok hívása egymásnak

[Linket másol]
Közzétéve 2022. 09. 29. 21:03:59 | | | |
Követelmények: Az előző cikk arról írt, hogyan lehet megvalósítani a webfelületet és a WinForm alkalmazást, hogy kommunikáljanak egymással az üzenetek küldéséhez, de csak az üzenet sikeresen elküldődött, és a válaszinformáció nem volt elérhető. Mi van, ha a C# kliens egy web függvény metódust hív meg, hogy megkapja a visszanyerő eredményt? És hogyan hívja a web a C# kódot, és hogyan kapja meg a visszatérési értéket?

Szemle:

[WebView2] (1) Első bevezetés a Microsoft Edge WebView2 technológiába
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) A WinForm bevezeti a WebView2-t a webtartalom megjelenítésére
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Kétirányú kommunikáció a web és WinForm alkalmazások között
https://www.itsvse.com/thread-10364-1-1.html
Először nézzük meg a megvalósítás rendereléseit, a weboldal WinForm alkalmazást hívSzerezz adatokat a clipboard, WinForm alkalmazásHívd a webes abc módszert, hogy megkapd a hozamértéketKövetkezőképpen:



C# a webfüggvény metódusot hívja

Ez a helyzet megmutatja, hogyan lehet futtatni JavaScriptet a weben. Ebben a módszerben a host alkalmazás megadja a futtatandó JavaScript kódot, majd a kódot az ExecuteScriptAsync segítségével továbbítja a webre. Az ExecuteScriptAsync függvény visszaadja a JavaScript eredményt az ExecuteScript hívónak.

Az Angular index.html oldalkód a következő:

A frontend főként egy abc függvényt határoz meg.

Winform a web abc függvényét a következő kóddal hívja meg:



Egy weboldal C# függvény metódusot hív

Natív objektumok továbbítása a webre. Ezután meghívják az objektum webből történő meghívásának módszerét.

Egy olyan üzenet használatához, amely egy metódushívást képvisel, használja az AddHostObjectToScript API-t. Magas szinten ez az API lehetővé teszi, hogy natív (host) objektumok elérhetővé váljanak a weben, és proxyként működjenek. Használd a windows.chrome.webview.hostObjects. {name}>a0> hozzáférés ezekhez az objektumokhoz. Referencia dokumentáció:A hiperlink bejelentkezés látható.

Hozz létre egy új gombot a weboldalon, kattints rá, hogy hívd a C# kódot, hogy megkapd a rendszer aktuális vágóasztalának adatait.

Az Angular app.component.html kód a következő:

app.component.ts kód a következő:

A front-end JS kód szinkron hívásokat és aszinkron hívásokat tartalmaz.

c# definiál egy WebView2HostObject h-objektumot a következő kóddal:


Megjegyzés: Az egyedi WebView2HostObject osztályokat címkézni kell[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]property, különben a JS nem férne hozzá az osztályhoz.

Ezután hozzáadjuk az újonnan definiált példányt az AddHostObjectToScript(String,Object) segítségével a következő kóddal:

Végül, ha megnyomod a fronton lévő gombot, hogy megkapd a vágóasztal adatait, a hatás a következő:



(Vége)





Előző:WebView2 (3) Kétirányú kommunikáció a web és WinForm alkalmazások között
Következő:【Turn】CURL parancs proxy-kat használ, és proxy-k is bevezetnek
Közzétéve 2022. 10. 08. 15:07:01 |
Tanuld meg
Közzétéve 2023. 03. 31. 13:30:38 |
Tanulj belőle, köszönöm, hogy megosztottad
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com