Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 5093|Répondre: 2

[Source] [WebView2] (4) Méthodes d’appel de fonctions Web et WinForm entre elles

[Copié le lien]
Publié sur 29/09/2022 21:03:59 | | | |
Exigences : L’article précédent expliquait comment implémenter l’interface web et l’application WinForm pour communiquer entre elles afin d’envoyer des messages, mais seul le message a été envoyé avec succès, et les informations de réponse n’ont pas pu être obtenues. Que se passe-t-il si le client C# appelle une méthode de fonction du web pour obtenir le résultat de retour ? Et comment le web appelle-t-il le code C# et obtient-il la valeur de retour ?

Révision:

[WebView2] (1) Introduction initiale à la technologie Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm introduit WebView2 pour afficher du contenu web
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Communication bidirectionnelle entre les applications Web et WinForm
https://www.itsvse.com/thread-10364-1-1.html
Tout d’abord, regardons les rendus de l’implémentation, le site web appelle l’application WinFormObtenir des données du presse-papier, application WinFormAppelez la méthode abc du web pour obtenir la valeur de retourComme suit:



C# appelle la méthode de la fonction Web

Ce scénario montre comment exécuter JavaScript sur le web. Dans cette méthode, l’application hôte spécifie le code JavaScript à exécuter et transmet le code au web avec ExecuteScriptAsync. La fonction ExecuteScriptAsync renvoie le résultat JavaScript à l’appelant ExecuteScript.

Le code de la page Angular index.html est le suivant :

Le frontend définit principalement une fonction abc.

Winform appelle la fonction abc du web avec le code suivant :



Une page web appelle une méthode de fonction C#

Passer des objets natifs vers le web. La méthode d’appel de l’objet depuis le web est alors appelée.

Pour utiliser un message représentant un appel de méthode, utilisez l’API AddHostObjectToScript. À un niveau global, cette API permet d’exposer des objets natifs (hôtes) au web et d’agir comme des proxys. Utilisez windows.chrome.webview.hostObjects. {name}>a0> accédez à ces objets. Documentation de référence :La connexion hyperlientérée est visible.

Créez un nouveau bouton sur la page web, cliquez sur le bouton pour appeler le code C# afin d’obtenir les données du presse-papiers actuel du système.

Le code app.component.html angulaire est le suivant :

app.component.ts code est le suivant :

Le code JS front-end comporte des appels synchrones et des appels asynchrones.

c# définissez un objet hôte WebView2HostObject avec le code suivant :


Note : Les classes personnalisées WebView2HostObject doivent être étiquetées[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]propriété, sinon JS ne pourrait pas accéder à la classe.

Ajoutez ensuite l’instance nouvellement définie via AddHostObjectToScript(String,Object) avec le code suivant :

Enfin, cliquez sur le bouton en interface pour obtenir les données du clipboard, l’effet est le suivant :



(Fin)





Précédent:WebView2 (3) Communication bidirectionnelle entre les applications Web et WinForm
Prochain:【Turn】La commande CURL utilise des proxies et des proxys sont introduits
Publié sur 08/10/2022 15:07:01 |
Apprends-le
Publié sur 31/03/2023 13:30:38 |
Apprends-en un peu, merci de partager
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com