Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 5093|Odpověď: 2

[Zdroj] [WebView2] (4) Web a WinForm si navzájem volají metody funkcí

[Kopírovat odkaz]
Zveřejněno 29.09.2022 21:03:59 | | | |
Požadavky: Předchozí článek se zabýval tím, jak implementovat webové rozhraní a aplikaci WinForm, aby spolu komunikovaly za účelem odesílání zpráv, ale úspěšně byla odeslána pouze zpráva a odpovědi nebylo možné získat. Co když klient v C# zavolá funkční metodu webu, aby získal zpětný výsledek? A jak web volá kód v C# a získává zpětnou hodnotu?

Přezkoumání:

[WebView2] (1) Počáteční seznámení s technologií Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm zavádí WebView2 pro zobrazení webového obsahu
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Obousměrná komunikace mezi webem a aplikacemi WinForm
https://www.itsvse.com/thread-10364-1-1.html
Nejprve se podívejme na vykreslování implementace, kterou web nazývá aplikací WinFormZískejte data ze schránky, aplikace WinFormPoužijte metodu abc webu pro získání návratnostiNásledovně:



C# volá metodu webové funkce

Tento scénář ukazuje, jak spustit JavaScript na webu. V této metodě hostitelská aplikace specifikuje JavaScriptový kód pro spuštění a předává kód webu pomocí ExecuteScriptAsync. Funkce ExecuteScriptAsync vrací výsledek JavaScriptu volajícímu ExecuteScript.

Kód stránky Angular index.html je následující:

Frontend hlavně definuje abc funkci.

Winform volá abc funkci webu následujícím kódem:



Webová stránka volá metodu funkce v C#

Předávat nativní objekty na web. Metoda volání objektu z webu se pak nazývá.

Pro použití zprávy reprezentující volání metody použijte API AddHostObjectToScript. Obecně toto API umožňuje nativním (host) objektům být vystaveny webu a fungovat jako proxy. Použijte windows.chrome.webview.hostObjects. {name}>a0> přistup k těmto objektům. Referenční dokumentace:Přihlášení k hypertextovému odkazu je viditelné.

Vytvořte nové tlačítko na webové stránce, klikněte na tlačítko pro volání kódu C# a získejte data z aktuálního schránkového systému systému.

Kód Angular app.component.html je následující:

app.component.ts kód je následující:

Front-end JS kód obsahuje synchronní a asynchronní hovory.

c# definuje hostitelský objekt WebView2HostObject pomocí následujícího kódu:


Poznámka: Vlastní třídy WebView2HostObject musí být označeny tagem[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]vlastnosti, jinak by JS nemohl ke třídě přistupovat.

Poté přidejte nově definovanou instanci pomocí AddHostObjectToScript(String,Object) s následujícím kódem:

Nakonec klikněte na tlačítko na přední straně pro získání dat ze schránky, efekt je následující:



(Konec)





Předchozí:WebView2 (3) Obousměrná komunikace mezi webem a aplikacemi WinForm
Další:【Otočit】Příkaz CURL používá proxy a jsou zavedeny proxy
Zveřejněno 08.10.2022 15:07:01 |
Nauč se to
Zveřejněno 31.03.2023 13:30:38 |
Poučte se z toho, díky za sdílení
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com