Compartilhar via


Descrição geral das funcionalidades e APIs do WebView2

Incorporar o controlo WebView2 na sua aplicação dá à sua aplicação acesso a vários métodos e propriedades que são fornecidos através das classes ou interfaces WebView2. O WebView2 tem centenas de APIs que fornecem um vasto conjunto de capacidades, desde melhorar as capacidades de plataforma nativa da sua aplicação até permitir que a sua aplicação modifique as experiências do browser. Este artigo fornece um agrupamento de alto nível das APIs webView2 para o ajudar a compreender as diferentes coisas que pode fazer com o WebView2.

Descrição geral das áreas de funcionalidades de nível superior

Ao alojar o controlo WebView2, a sua aplicação tem acesso às seguintes funcionalidades e APIs:

Área de recurso Objetivo
Classes principais: Ambiente, Controlador e Núcleo As CoreWebView2Environmentclasses , CoreWebView2Controllere CoreWebView2 (ou interfaces equivalentes) funcionam em conjunto para que a sua aplicação possa alojar um controlo de browser WebView2 e aceder às respetivas funcionalidades do browser. Estas classes grandes expõem uma vasta gama de APIs às quais a sua aplicação anfitriã pode aceder para fornecer as categorias abaixo de funcionalidades relacionadas com o browser para os seus utilizadores.
Interoperabilidade Web/nativa Incorporar conteúdo Web em aplicações nativas. Comunique entre código nativo e código Web com mensagens simples, código JavaScript e objetos nativos.
Recursos do navegador O controlo WebView2 dá à sua aplicação acesso a muitas funcionalidades do browser. Pode modificar estas funcionalidades do browser e ativá-las ou desativá-las.
Gestão de processos Obtenha informações sobre a execução de processos WebView2, a saída de processos e processos falhados, para que a sua aplicação possa tomar medidas em conformidade.
Navegar para páginas e gerir conteúdo carregado Faça a gestão da navegação para páginas Web e faça a gestão de conteúdos carregados nas páginas Web.
iframes Incorpore outras páginas Web na sua própria página Web. Detete quando são criadas páginas Web incorporadas, detete quando as páginas Web incorporadas estão a navegar e, opcionalmente, ignore as opções de moldura x.
Autenticação A sua aplicação pode processar a autenticação básica com o controlo WebView2. A autenticação básica é uma abordagem de autenticação específica que faz parte do protocolo HTTP.
Compor o WebView2 em aplicações não estruturais Utilize estas APIs para configurar o sistema de composição WebView2 se a sua aplicação anfitriã não utilizar uma arquitetura de IU. Esta configuração de composição controla a forma como o WebView2 compõe a saída na sua aplicação anfitriã e como o WebView2 processa a entrada, o foco e a acessibilidade.
Compor WebView2 com Composição Para composição webView2 baseada em composição, utilize CoreWebView2Environment para criar um CoreWebView2CompositionController. CoreWebView2CompositionController fornece as mesmas APIs que CoreWebView2Controller, mas também inclui APIs para composição baseada em composição.
Opções de ambiente Dados do utilizador: faça a gestão da pasta de dados do utilizador (UDF), que é uma pasta no computador do utilizador. A UDF contém dados relacionados com a aplicação anfitriã e o WebView2. As aplicações WebView2 utilizam pastas de dados de utilizador para armazenar dados do browser, como cookies, permissões e recursos em cache. Gerir múltiplos perfis numa única UDF.
A seleção de runtime suporta testes de pré-lançamento e autoalojador. Pode especificar uma ordem de pesquisa para canais de pré-visualização do browser e especificar os canais de pré-visualização do browser que são procurados.
Desempenho e depuração Analise e depure o desempenho, processe eventos relacionados com o desempenho e faça a gestão da utilização da memória para aumentar a capacidade de resposta da sua aplicação.
Protocolo CDP (Chrome DevTools Protocol) Instrumente, inspecione, depure e crie perfis em browsers baseados em Chromium. O Protocolo CDP (Chrome DevTools Protocol) é a base para as DevTools do Microsoft Edge. Utilize o Protocolo DevTools do Chrome para funcionalidades que não estão implementadas na plataforma WebView2.

Esta página lista apenas as APIs que estão nos SDKs de Versão; não lista APIs Experimentais ou APIs Estáveis que ainda não estão disponíveis nos SDKs de Versão. Para obter uma lista abrangente de APIs, incluindo APIs Experimentais, veja Release Notes for the WebView2 SDK (Notas de Versão do SDK WebView2).

Classes principais: Ambiente, Controlador e Núcleo

As CoreWebView2Environmentclasses , CoreWebView2Controllere CoreWebView2 (ou interfaces equivalentes) funcionam em conjunto para que a sua aplicação possa alojar um controlo de browser WebView2 e aceder às respetivas funcionalidades do browser. Estas três classes grandes expõem uma vasta gama de APIs às quais a sua aplicação anfitriã pode aceder para fornecer várias categorias de funcionalidades relacionadas com o browser aos seus utilizadores.

  • A CoreWebView2Environment classe representa um grupo de controlos WebView2 que partilham o mesmo processo de browser WebView2, pasta de dados do utilizador e processos de composição. A partir desta CoreWebView2Environment classe, vai criar pares de CoreWebView2Controller e CoreWebView2 instâncias.
  • A CoreWebView2Controller classe é responsável por funcionalidades relacionadas com o alojamento, como o foco da janela, visibilidade, tamanho e entrada, onde a sua aplicação aloja o controlo WebView2.
  • A CoreWebView2 classe destina-se às partes específicas da Web do controlo WebView2, incluindo rede, navegação, script e análise e composição de HTML.

Veja também:

Interoperabilidade Web/nativa

O controlo WebView2 do Microsoft Edge permite-lhe incorporar conteúdo Web em aplicações nativas. Pode comunicar entre código nativo e código Web através de mensagens simples, código JavaScript e objetos nativos. Seguem-se as APIs principais para comunicar entre a Web e o código nativo.

Subsecções abaixo:

Casos de utilização comuns para interops web/nativos:

  • Atualize o título da janela do anfitrião nativo depois de navegar para um site diferente.
  • Envie um objeto de câmara nativo e utilize os respetivos métodos a partir de uma aplicação Web.
  • Execute um ficheiro JavaScript dedicado no lado Web de uma aplicação.

Veja também:

Partilha de objetos Anfitrião/Web

O WebView2 permite que os objetos definidos no código nativo sejam transmitidos para o código do lado da Web da sua aplicação. Os objetos de anfitrião são quaisquer objetos definidos no código nativo que optar por transmitir para o código do lado da Web da sua aplicação.

Os objetos anfitriões podem ser projetados em JavaScript, para que possa chamar métodos de objeto nativo (ou outras APIs) a partir do código do lado da Web da sua aplicação. Por exemplo, a sua aplicação pode chamar essas APIs como resultado da interação do utilizador no lado da Web da sua aplicação. Desta forma, não precisa de reimplementar as APIs dos objetos nativos, como métodos ou propriedades, no código do lado da Web.

Execução de scripts

Permite que a aplicação anfitriã adicione código JavaScript no conteúdo Web no controlo WebView2.

Mensagens Web

A sua aplicação pode enviar mensagens para o conteúdo Web que está dentro do controlo WebView2 e receber mensagens desse conteúdo Web. As mensagens são enviadas como cadeias de carateres ou objetos JSON.

Caixas de diálogo de script

Ao alojar o WebView2, a sua aplicação pode gerir diferentes caixas de diálogo JavaScript, suprimi-las ou substituí-las por caixas de diálogo personalizadas.

Memória intermédia partilhada

A API SharedBuffer suporta a partilha de memórias intermédias entre o processo da aplicação anfitriã WebView2 e o processo do compositor WebView2, com base na memória partilhada do SO.

Recursos do navegador

O controlo WebView2 dá à sua aplicação acesso a muitas funcionalidades do browser. Pode modificar estas funcionalidades do browser e ativá-las ou desativá-las.

Subsecções abaixo:

Impressão

Pode imprimir uma página Web numa impressora, ficheiro PDF ou fluxo de PDF ao configurar definições de impressão personalizadas.

Veja também:

Cookies

Pode utilizar cookies no WebView2 para gerir sessões de utilizador, armazenar preferências de personalização de utilizadores e controlar o comportamento dos utilizadores.

Veja também:

Captura de imagem

Ao alojar o WebView2, a sua aplicação pode capturar capturas de ecrã e indicar o formato a utilizar para guardar a imagem.

Downloads

A sua aplicação pode gerir a experiência de transferência no WebView2. A sua aplicação pode:

  • Permitir ou bloquear transferências com base em metadados diferentes.
  • Altere a localização da transferência.
  • Configurar uma IU de transferência personalizada.
  • Personalizar a IU predefinida.

Geral:

Modificar a Experiência Predefinida:

Experiência de Transferência Personalizada:

Permissões

Diferentes páginas Web podem pedir-lhe permissões para aceder a alguns recursos privilegiados, como o sensor de geolocalização, a câmara e o microfone. A sua aplicação anfitriã pode responder através de programação a pedidos de permissões e pode substituir a IU de permissões predefinida pela sua própria IU.

Menus de contexto

O controlo WebView2 fornece um menu de contexto predefinido (menu de contexto) que pode personalizar ou desativar e também pode criar o seu próprio menu de contexto.

Veja também:

Barra de status

Uma barra de estado está localizada no canto inferior esquerdo da página e apresenta o estado da página Web que está a ser apresentada. No WebView2, pode ativar/desativar a barra de estado, obter o texto na barra de estado e descobrir quando o texto da barra de estado foi alterado.

Barras de deslocamento fluentes sobrepostas

Estiliza barras de deslocamento com o design Microsoft Fluent e faz com que as barras de deslocamento sobrepõem-se ao conteúdo Web. Esta estrutura adaptável da barra de deslocamento ajusta-se a vários dispositivos e tamanhos de janela.

Para experimentar as barras de deslocamento fluentes sobrepostas, no Microsoft Edge, aceda a edge://flags e, em seguida, introduza Barras de deslocamento fluentes sobrepostas.

Veja também:

  • Sinalizadores - msEdgeFluentOverlayScrollbardo browser WebView2 e msOverlayScrollbarWinStyle sinalizadores.

Agente do Usuário

O agente de utilizador é uma cadeia que representa a identidade do programa em nome do utilizador, como o nome do browser. No WebView2, pode definir o agente de utilizador.

Veja também:

Preenchimento automático

A sua aplicação pode controlar independentemente se a funcionalidade de preenchimento automático do browser está ativada para informações gerais ou para palavras-passe.

Áudio

A sua aplicação pode desativar e ativar o som de todo o áudio e descobrir quando o áudio está a ser reproduzido.

Testar os cliques do rato em regiões

Fornece resultados de testes de êxito nas regiões que um WebView2 contém. Útil para aplicações alojadas visualmente que pretendem processar eventos do rato na área não cliente da janela WebView2.

Percorrer navegação com gestos

Ao alojar o controlo WebView2, a aplicação pode ativar ou desativar a navegação por gestos de percorrer em dispositivos com entrada tátil ativada. Este gesto permite que os utilizadores finais:

  • Percorra para a esquerda/direita (percorrer horizontalmente) para navegar para a página anterior ou seguinte no histórico de navegação.
  • Puxe para atualizar (percorra verticalmente) a página atual.

Esta funcionalidade está atualmente desativada por predefinição no browser. Para ativar esta funcionalidade no WebView2, defina a AdditionalBrowserArguments propriedade e especifique o --pull-to-refresh comutador.

Ativar ou desativar a resposta do browser às teclas de acelerador (teclas de atalho)

ICoreWebView2AcceleratorKeyPressedEventArgs tem uma IsBrowserAcceleratorKeyEnabled propriedade que lhe permite controlar se o browser processa teclas de acelerador (teclas de atalho), como Ctrl+P ou F3.

Veja também:

Ecrã inteiro

No WebView2, pode descobrir quando um elemento HTML entra ou sai da vista de ecrã inteiro.

Barra de ferramentas de PDF

No visualizador de PDF do browser, existe uma barra de ferramentas específica para PDF na parte superior. No WebView2, pode ocultar alguns dos itens na barra de ferramentas do visualizador de PDF.

Temas

No WebView2, pode personalizar o tema de cor como sistema, claro ou escuro.

Idioma

A Language propriedade define o idioma de apresentação predefinido para WebView2 que se aplica à IU do browser (como menus de contexto e caixas de diálogo), juntamente com a definição do accept-language cabeçalho HTTP que o WebView2 envia para sites.

A ScriptLocale propriedade permite que a aplicação anfitriã defina a região predefinida para todas as Intl APIs JavaScript e outras APIs JavaScript que dependem da mesma, como Intl.DateTimeFormat(), o que afeta a formatação de cadeias em formatos de data/hora.

Nova janela

O WebView2 fornece funcionalidades para processar a função window.open()JavaScript .

Fechar janela

O WebView2 fornece funcionalidades para processar a função window.close()JavaScript .

Título do documento

A sua aplicação pode detetar quando o título do documento de nível superior atual foi alterado.

Favicon

No WebView2, pode definir um Favicon para um site ou ser notificado quando este for alterado.

Segurança e privacidade

Prevenção de controlo

A prevenção de controlo permite que a aplicação anfitriã controle o nível de prevenção de controlo do controlo WebView2 associado ao perfil de utilizador.

SmartScreen

O Microsoft Defender SmartScreen ("SmartScreen") está ativado por predefinição. A IsReputationCheckingRequired propriedade controla se o SmartScreen está ativado.

Se não desativar o SmartScreen, tem de indicar a todos os utilizadores que o software inclui o Microsoft Defender SmartScreen e recolhe e envia as informações do utilizador à Microsoft, conforme divulgado na Declaração de Privacidade da Microsoft e no Documento Técnico de Privacidade do Microsoft Edge.

Veja também:

Relatórios de falhas personalizados

Se algum processo webView2 falhar, um ou mais ficheiros de minidump são criados e enviados para a Microsoft para diagnóstico. Utilize esta API para personalizar os relatórios de falhas ao executar diagnósticos e efetuar análises.

  • Para impedir que as informações de falha de sistema sejam enviadas para a Microsoft, defina a IsCustomCrashReportingEnabled propriedade como false.
  • Para localizar informações de falha de sistema e personalizar as mesmas, utilize a CrashDumpFolderPath propriedade .

Veja também:

Extensões do navegador

A sua aplicação pode incorporar um controlo WebView2 que utiliza extensões de browser (suplementos). Uma extensão do Microsoft Edge é uma pequena aplicação que os programadores utilizam para adicionar ou modificar funcionalidades do Microsoft Edge para melhorar a experiência de navegação de um utilizador.

Veja também:

Gestão de processos

Obtenha informações sobre a execução de processos WebView2, a saída de processos e processos falhados, para que a sua aplicação possa tomar medidas em conformidade.

Subsecções abaixo:

Informações do processo de moldura

A API de Informações do Processo de Moldura, incluindo GetProcessExtendedInfos, fornece uma coleção de instantâneos de todos os frames que estão a ser executados ativamente no processo de composição associado. Esta API permite que a sua aplicação detete que parte do WebView2 está a consumir recursos, como a memória ou a utilização da CPU.

Através do controlo WebView2, a sua aplicação pode gerir a navegação em páginas Web e gerir conteúdos carregados nas páginas Web.

Subsecções abaixo:

Gerir conteúdo carregado para o WebView2

Estas APIs carregam, param de carregar e recarregam conteúdos para o WebView2. O conteúdo carregado pode ser:

  • Conteúdo de um URL.
  • Uma cadeia de HTML.
  • Conteúdo local através do nome do anfitrião virtual para o mapeamento de pastas local.
  • Conteúdo de um pedido de rede construído.

Veja também:

Os métodos de histórico permitem a navegação anterior e reencaminhada no WebView2 e os eventos do histórico fornecem informações sobre as alterações no histórico e na origem atual do WebView2.

NavigationKind obtém o tipo de navegação de cada navegação, como Anterior/Reencaminhar, Recarregar ou navegar para um novo documento.

Bloquear navegação indesejada

O NavigationStarting evento permite que a aplicação cancele a navegação para URLs especificados no WebView2, incluindo para frames.

Com NavigationStarting e os outros eventos de navegação, a aplicação pode ser informada do estado da navegação no WebView2. Uma navegação é o processo para carregar um novo URL.

Veja também:

Gerir pedidos de rede no WebView2

O WebResourceRequested evento permite que a aplicação intercete e substitua todos os pedidos de rede no WebView2. O WebResourceResponseReceived evento permite que a aplicação monitorize o pedido enviado e a resposta recebida da rede.

Veja também:

Registo de esquema personalizado

Permite o CustomSchemeRegistration registo de esquemas personalizados no WebView2 para que a aplicação possa processar o WebResourceRequested evento de pedidos para esses URLs de esquema personalizado e navegar no WebView2 para esses URLs.

Certificados de cliente

No WebView2, pode utilizar a API de Certificado de Cliente para selecionar o certificado de cliente ao nível da aplicação. Esta API permite-lhe:

  • Apresentar uma IU ao utilizador, se assim o desejar.
  • Substitua o pedido de diálogo certificado de cliente predefinido.
  • Consulte programaticamente os certificados.
  • Selecione um certificado na lista para responder ao servidor, quando o WebView2 estiver a fazer um pedido a um servidor HTTP que precise de um certificado de cliente para autenticação HTTP.

Certificados de servidor

No WebView2, pode utilizar a API de Certificado de Servidor para confiar no certificado TLS do servidor ao nível da aplicação. Desta forma, a aplicação anfitriã pode compor a página sem perguntar ao utilizador sobre o erro TLS ou a aplicação anfitriã pode cancelar automaticamente o pedido.

Iniciar um esquema de URI externo

Inicie um esquema de URI registado no SO.

iframes

Os iframes permitem-lhe incorporar outras páginas Web na sua própria página Web. No WebView2, pode:

  • Saiba quando são criados iframes.
  • Saiba quando os iframes estão a navegar.
  • Permitir ignorar opções de moldura x.

Veja também:

Autenticação

A sua aplicação pode processar a autenticação básica com o controlo WebView2. A autenticação básica é uma abordagem de autenticação específica que faz parte do protocolo HTTP.

Veja também:

Compor o WebView2 em aplicações não estruturais

Utilize estas APIs para configurar o sistema de composição WebView2 se a sua aplicação anfitriã não utilizar uma arquitetura de IU. Esta configuração de composição controla a forma como o WebView2 compõe a saída na sua aplicação anfitriã e como o WebView2 processa a entrada, o foco e a acessibilidade.

Quando utilizar estas APIs

  • Arquitetura de IU – se estiver a utilizar uma arquitetura de IU para a sua aplicação, deve utilizar o elemento WebView2 fornecido por essa arquitetura de IU, em vez de utilizar estas APIs.

  • Sem arquitetura de IU e sem utilizar Composição – se não estiver a utilizar uma arquitetura de IU para a sua aplicação (por exemplo, se estiver a utilizar diretamente o Win32 puro) ou se a sua arquitetura de IU não tiver um elemento WebView2, terá de criá-la CoreWebView2Controller e compor na sua aplicação com estas APIs nesta secção.

  • Sem arquitetura de IU e com Composição – se a IU da sua aplicação for criada com o DirectComposition ou o Windows.UI.Composition, deve utilizar CoreWebView2CompositionController em vez de utilizar estas APIs; consulte Composição webView2 com Composição, abaixo.

Subsecções abaixo:

Dimensionamento, posicionamento e visibilidade

CoreWebView2Controller utiliza um elemento principal HWND. A Bounds propriedade dimensiona e posiciona o WebView2 em relação ao principal HWND. A visibilidade do WebView2 pode ser alternada com IsVisible.

A ampliar

O WebView2 ZoomFactor é utilizado para dimensionar apenas o conteúdo Web da janela. O dimensionamento da IU também é atualizado quando o utilizador amplia o conteúdo ao premir Ctrl enquanto roda a roda do rato.

Escala de rasterização

A API RasterizationScale dimensiona toda a IU do WebView2, incluindo menus de contexto, descrição e pop-ups. A aplicação pode definir se o WebView2 deve detetar alterações de dimensionamento de monitorização e atualizar automaticamente o RasterizationScale. BoundsMode é utilizado para configurar se a propriedade Bounds é interpretada como pixels não processados ou DIPs (que têm de ser dimensionados por RasterizationScale).

Foco e tabulagem

O controlo WebView2 gera eventos para informar a aplicação quando o controlo ganha foco ou perde o foco. Para a tabulação ( premir a Tecla de Tabulação), existe uma API para mover o foco para o WebView2 e um evento para o WebView2 solicitar que a aplicação volte a focar-se.

Janela principal

O WebView2 pode ser reparentedo para uma alça de janela principal diferente (HWND). O WebView2 também tem de ser notificado quando a posição da aplicação no ecrã for alterada.

Aceleradores de teclado

Quando o WebView2 tem o foco, recebe diretamente entradas do utilizador. Uma aplicação pode querer intercetar e processar determinadas combinações de teclas de acelerador (teclas de atalho) ou desativar os comportamentos normais da chave do acelerador do browser.

Consulte também Ativar ou desativar a resposta do browser às teclas de acelerador (teclas de atalho) acima.

Cor de fundo predefinida

O WebView2 pode especificar uma cor de fundo predefinida. A cor pode ser qualquer cor opaca ou transparente. Esta cor será utilizada se a página HTML não definir a sua própria cor de fundo.

Compor WebView2 com Composição

Para composição webView2 baseada em composição, utilize CoreWebView2Environment para criar um CoreWebView2CompositionController. CoreWebView2CompositionController fornece as mesmas APIs que CoreWebView2Controller, mas também inclui APIs para composição baseada em composição.

Subsecções abaixo:

Ligar à árvore de elementos visuais

O WebView2 pode ligar a árvore de composição a um IDCompositionVisual, IDCompositionTarget ou Windows::UI::Composition::ContainerVisual.

A reencaminhar entrada

A entrada espacial (rato, toque, caneta) é recebida pela aplicação e tem de ser enviada para o WebView2. O WebView2 notifica a aplicação quando o cursor deve ser atualizado com base na posição do rato.

Arrastar e largar

Por predefinição, é suportado arrastar de um controlo WebView2 para outra aplicação. No entanto, arrastar para um controlo WebView2 requer que, quando a aplicação anfitriã recebe um IDropTarget evento do sistema, a aplicação anfitriã tenha de reencaminhar o evento para o controlo WebView2. Arrastar para um controlo WebView2 inclui operações de arrastar e largar que estão inteiramente dentro de um controlo WebView2.

Utilize as seguintes APIs para reencaminhar IDropTarget eventos do sistema para o controlo WebView2.

Acessibilidade

Por predefinição, o WebView2 será apresentado na árvore de acessibilidade como subordinado do HWND principal, para aplicações Win32/C++. O WebView2 fornece API para posicionar melhor o conteúdo webView2 em relação a outros elementos na aplicação.

Não aplicável.

Opções de ambiente

Subsecções abaixo:

Dados de usuários

Faça a gestão da pasta de dados do utilizador (UDF), que é uma pasta no computador do utilizador. A UDF contém dados relacionados com a aplicação anfitriã e o WebView2. As aplicações WebView2 utilizam pastas de dados de utilizador para armazenar dados do browser, como cookies, permissões e recursos em cache.

Subsecções abaixo:

Veja também:

Limpar dados de navegação:

Múltiplos perfis

Gerir múltiplos perfis numa única pasta de dados de utilizador.

Veja também:

Crie um objeto de opções que defina um perfil:

Crie um controlo WebView2 que utilize o perfil:

Aceder e manipular o perfil:

Excluir um perfil

A sua aplicação pode eliminar perfis de utilizador para um controlo de browser WebView2.

Veja também:

Seleção de runtime

A seleção de runtime suporta testes de pré-lançamento e autoalojador. Ao criar um ambiente WebView2:

  • Para especificar uma ordem de pesquisa para canais de pré-visualização do browser, utilize a CoreWebView2EnvironmentOptions.ChannelSearchKind propriedade .
  • Para especificar que canais de pré-visualização do browser são procurados, utilize a CoreWebView2EnvironmentOptions.ReleaseChannels propriedade .

Veja também:

Desempenho e depuração

Analise e depure o desempenho, processe eventos relacionados com o desempenho e faça a gestão da utilização da memória para aumentar a capacidade de resposta da sua aplicação.

Subsecções abaixo:

Destino de utilização da memória

Especifica os níveis de consumo de memória, como low ou normal.

Protocolo CDP (Chrome DevTools Protocol)

O Protocolo CDP (Chrome DevTools Protocol) fornece APIs para instrumentar, inspecionar, depurar e criar perfis para browsers baseados em Chromium. O Protocolo DevTools do Chrome é a base para as DevTools do Microsoft Edge. Utilize o Protocolo DevTools do Chrome para funcionalidades que não estão implementadas na plataforma WebView2.

Veja também:

Abrir:

Chamada:

Recetor:

Confira também