Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 5093|Resposta: 2

[Fonte] [WebView2] (4) Métodos de chamada de funções Web e WinForm entre si

[Copiar link]
Publicado em 29/09/2022 21:03:59 | | | |
Requisitos: O artigo anterior escreveu sobre como implementar a interface web e o aplicativo WinForm para se comunicarem entre si e enviar mensagens, mas apenas a mensagem foi enviada com sucesso, e as informações de resposta não puderam ser obtidas. E se o cliente C# chamar um método de função da web para obter o resultado de retorno? E como a web chama código C# e obtém o valor de retorno?

Revisar:

[WebView2] (1) Introdução inicial à tecnologia Microsoft Edge WebView2
https://www.itsvse.com/thread-10361-1-1.html

[WebView2] (2) WinForm introduz o WebView2 para exibir conteúdo web
https://www.itsvse.com/thread-10362-1-1.html

WebView2 (3) Comunicação bidirecional entre aplicações Web e WinForm
https://www.itsvse.com/thread-10364-1-1.html
Primeiro, vamos olhar as renderizações da implementação, o site chama a aplicação WinFormObter dados da prancheta, aplicativo WinFormLigue para o método abc da web para obter o valor de retornoComo segue:



C# chama o método da função Web

Esse cenário mostra como rodar JavaScript na web. Nesse método, o aplicativo host especifica o código JavaScript a ser executado e passa o código para a web com ExecuteScriptAsync. A função ExecuteScriptAsync retorna o resultado JavaScript ao chamador ExecuteScript.

O código da página Angular index.html é o seguinte:

A interface define principalmente uma função abc.

O Winform chama a função abc da web com o seguinte código:



Uma página web chama um método de função C#

Passar objetos nativos para a web. O método de chamar o objeto da web é então chamado.

Para usar uma mensagem que represente uma chamada de método, utilize a API AddHostObjectToScript. Em um nível geral, essa API permite que objetos nativos (host) sejam expostos à web e atuem como proxies. Use windows.chrome.webview.hostObjects. {name}>a0> acesse esses objetos. Documentação de Referência:O login do hiperlink está visível.

Crie um novo botão na página web, clique no botão para chamar o código C# e obter os dados da prancheta atual do sistema.

O código Angular app.component.html é o seguinte:

app.component.ts código é o seguinte:

O código JS front-end possui chamadas síncronas e chamadas assíncronas.

c# defina um objeto host WebView2HostObject com o seguinte código:


Nota: Classes personalizadas do WebView2HostObject devem ser marcadas[ClassInterface(ClassInterfaceType.AutoDual)]、[ComVisible(true)]property, caso contrário, JS não conseguiria acessar a classe.

Depois, adicione a instância recém-definida via AddHostObjectToScript(String,Object) com o seguinte código:

Por fim, clique no botão na interface para obter os dados da prancheta, o efeito é o seguinte:



(Fim)





Anterior:WebView2 (3) Comunicação bidirecional entre aplicações Web e WinForm
Próximo:【Turn】O comando CURL usa proxies e proxies são introduzidos
Publicado em 08/10/2022 15:07:01 |
Aprenda
Publicado em 31/03/2023 13:30:38 |
Aprenda com isso, obrigado por compartilhar
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com