Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 5093|Odpoveď: 2

[Zdroj] [WebView2] (4) Web a WinForm si navzájom volajú metódy funkcií

[Kopírovať odkaz]
Zverejnené 29. 9. 2022 21:03:59 | | | |
Požiadavky: Predchádzajúci článok sa zaoberal tým, ako implementovať webové rozhranie a aplikáciu WinForm na vzájomnú komunikáciu pri odosielaní správ, ale úspešne bola odoslaná iba správa a informácie o odpovedi nebolo možné získať. Čo ak klient v C# zavolá funkčnú metódu webu, aby získal výsledok? A ako web volá kód v C# a získava vrátenú hodnotu?

Revízia:

[WebView2] (1) Počiatočné zoznámenie s technológiou Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm zavádza WebView2 na zobrazovanie webového obsahu
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Obojsmerná komunikácia medzi webom a WinForm aplikáciami
https://www.itsvse.com/thread-10364-1-1.html
Najprv sa pozrime na vizualizácie implementácie, ktorú webová stránka nazýva aplikáciou WinFormZískajte dáta zo schránky, aplikácia WinFormZavolajte metódu abc na webe, aby ste získali výnosnú hodnotuTakto:



C# volá metódu webovej funkcie

Tento scenár ukazuje, ako spustiť JavaScript na webe. Pri tejto metóde hostiteľská aplikácia špecifikuje JavaScriptový kód na spustenie a odovzdáva kód webu pomocou ExecuteScriptAsync. Funkcia ExecuteScriptAsync vráti výsledok JavaScriptu volajúcemu ExecuteScript.

Kód stránky Angular index.html je nasledovný:

Frontend hlavne definuje abc funkciu.

Winform volá abc funkciu webu pomocou nasledujúceho kódu:



Webová stránka volá metódu funkcie v C#

Odovzdávanie natívnych objektov na web. Potom sa nazýva metóda volania objektu z webu.

Na použitie správy, ktorá reprezentuje volanie metódy, použite API AddHostObjectToScript. Na vysokej úrovni toto API umožňuje natívnym (hostiteľským) objektom byť vystavené webu a pôsobiť ako proxy. Použite windows.chrome.webview.hostObjects. {name}>a0> prístup k týmto objektom. Referenčná dokumentácia:Prihlásenie na hypertextový odkaz je viditeľné.

Vytvorte nové tlačidlo na webovej stránke, kliknite na tlačidlo na zavolanie C# kódu, aby ste získali dáta aktuálnej schránky systému.

Kód Angular app.component.html je nasledovný:

app.component.ts kód je nasledovný:

Front-end JS kód obsahuje synchronné a asynchrónne volania.

c# definuje hostiteľský objekt WebView2HostObject s nasledujúcim kódom:


Poznámka: Vlastné triedy WebView2HostObject musia byť označené[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]property, inak by JS nemal prístup k tejto triede.

Potom pridajte novo definovanú inštanciu pomocou AddHostObjectToScript(String,Object) s nasledujúcim kódom:

Nakoniec kliknite na tlačidlo na prednej strane pre získanie údajov zo schránky, efekt je nasledovný:



(Koniec)





Predchádzajúci:WebView2 (3) Obojsmerná komunikácia medzi webom a WinForm aplikáciami
Budúci:【Turn】Príkaz CURL používa proxy a sú zavedené proxy
Zverejnené 8. 10. 2022 15:07:01 |
Nauč sa to
Zverejnené 31. 3. 2023 13:30:38 |
Pouč sa z toho, ďakujem za zdieľanie
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com