Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 5093|Antwort: 2

[Quelle] [WebView2] (4) Web- und WinForm-Aufruffunktionsmethoden aufeinander

[Link kopieren]
Veröffentlicht am 29.09.2022 21:03:59 | | | |
Anforderungen: Der vorherige Artikel beschrieb, wie man die Weboberfläche und die WinForm-Anwendung implementiert, um miteinander zu kommunizieren, um Nachrichten zu senden, aber nur die Nachricht wurde erfolgreich gesendet und die Antwortinformationen konnten nicht abgerufen werden. Was ist, wenn der C#-Client eine Funktionsmethode des Webs aufruft, um das Rückgabeergebnis zu erhalten? Und wie ruft das Web C#-Code auf und erhält den Rückgabewert?

Rezension:

[WebView2] (1) Erste Einführung in die Microsoft Edge WebView2-Technologie
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm führt WebView2 ein, um Webinhalte anzuzeigen
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Bidirektionale Kommunikation zwischen Web- und WinForm-Anwendungen
https://www.itsvse.com/thread-10364-1-1.html
Schauen wir uns zunächst die Renderings der Implementierung an, die Website ruft die WinForm-Anwendung aufHol dir Daten aus dem Zwischenbrett., WinForm-AppRufen Sie die abc-Methode des Webs auf, um den Rückgabewert zu erhaltenFolgendermaßen:



C# ruft die Webfunktionsmethode auf

Dieses Szenario zeigt, wie man JavaScript im Web ausführen kann. Bei dieser Methode gibt die Host-App den JavaScript-Code an, der ausgeführt werden soll, und übergibt den Code mit ExecuteScriptAsync an das Web. Die Funktion ExecuteScriptAsync gibt das JavaScript-Ergebnis an den ExecuteScript-Aufrufer zurück.

Der Seitencode von Angular index.html ist wie folgt:

Das Frontend definiert hauptsächlich eine abc-Funktion.

Winform ruft die abc-Funktion des Webs mit folgendem Code auf:



Eine Webseite ruft eine C#-Funktionsmethode auf.

Native Objekte ins Netz weitergeben. Die Methode, das Objekt aus dem Web aufzurufen, wird dann aufgerufen.

Um eine Nachricht zu verwenden, die einen Methodenaufruf repräsentiert, verwenden Sie die AddHostObjectToScript-API. Auf hoher Ebene ermöglicht diese API es, native (Host-)Objekte dem Web zugänglich zu machen und als Proxys zu fungieren. Verwenden Sie window.chrome.webview.hostObjects. {name}>a0> Zugriff auf diese Objekte. Referenzdokumentation:Der Hyperlink-Login ist sichtbar.

Erstelle einen neuen Button auf der Webseite, klicke auf den Button, um den C#-Code aufzurufen und die Daten der aktuellen Zwischenablage des Systems zu erhalten.

Der Angular-app.component.html-Code ist wie folgt:

app.component.ts Code lautet wie folgt:

Der Frontend-JS-Code enthält synchrone und asynchrone Aufrufe.

c# ein WebView2HostObject-Hostobjekt mit folgendem Code definieren:


Hinweis: Benutzerdefinierte WebView2HostObject-Klassen müssen getaggt sein[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]Property, andernfalls hätte JS keinen Zugriff auf die Klasse.

Fügen Sie dann die neu definierte Instanz über AddHostObjectToScript(String,Object) mit folgendem Code hinzu:

Klicken Sie schließlich auf den Button auf der Vorderseite, um die Zwischenablagedaten zu erhalten; der Effekt ist wie folgt:



(Ende)





Vorhergehend:WebView2 (3) Bidirektionale Kommunikation zwischen Web- und WinForm-Anwendungen
Nächster:【Turn】CURL-Befehl verwendet Proxys, und es werden Proxies eingeführt
Veröffentlicht am 08.10.2022 15:07:01 |
Lerne es
Veröffentlicht am 31.03.2023 13:30:38 |
Lerne daraus, danke fürs Teilen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com