Temos o prazer de anunciar que as extensões do Chrome no DotNetBrowser estão em pré-visualização pública!

Este artigo demonstra como instalar a extensão uBlock Origin no DotNetBrowser e como interagir com ela a partir do código.

Extensão uBlock no DotNetBrowser

Uma extensão lançada no DotNetBrowser

As extensões do Chrome numa Web view trazem novas capacidades para o seu software sem qualquer custo. Com as extensões, pode bloquear anúncios, melhorar a acessibilidade, utilizar as ferramentas do programador de bibliotecas JavaScript e muito mais.

O suporte para extensões está quase pronto. E enquanto a terminamos, oferecemos à comunidade uma versão de pré-visualização. Experimente a aplicação de demonstração ou adicione alguns pacotes NuGet ao seu projeto para o verificar.

Clonar a aplicação de demonstração 

Eis como obter a aplicação de demonstração:

  1. Clonar o repositório DotNetBrowser-Examplos.

    git clone https://github.com/TeamDev-IP/DotNetBrowser-Examples.git
    
  2. Mudar para o ramo extensions-preview :

    git checkout extensions-preview
    
  3. Obtenha uma licença de avaliação gratuita de 30 dias. Preencha o formulário, e você receberá imediatamente um e-mail com a chave de licença.

Spinner

Enviando…

Desculpe, o envio foi interrompido

Tente novamente. Se o problema persistir, contate-nos através do endereço info@teamdev.com.

Leia e aceite os termos para continuar.

A sua chave de avaliação pessoal de DotNetBrowser e o guia de início rápido chegarão à sua caixa de entrada de e-mail dentro de alguns minutos.

  1. Coloque a sua chave de licença no arquivo dotnetbrowser.license na raiz do repositório.
  2. Abra a solução no Visual Studio 2019 ou mais recente.
  3. Clique com o botão direito do mouse na solução no “Solution Explorer” e selecione “Restore NuGet Packages”.
  4. Crie a solução e execute o projeto Extensions.

Utilização no projeto existente 

Se já utiliza o DotNetBrowser, pode obter a versão de pré-visualização a partir do NuGet:

  1. Adicionar o feed EAP do DotNetBrowser:

    dotnet nuget add source "https://pkgs.dev.azure.com/teamdev-products/66fbd081-377c-4af2-a64d-fee8ca740ed4/_packaging/dotnetbrowser-eaps/nuget/v3/index.json" --name "DotNetBrowser EAP NuGet feed"
    
  2. Mude para a versão de pré-visualização do DotNetBrowser:

    dotnet add package DotNetBrowser -v "2.22.1-b3483-eap"
    dotnet add package DotNetBrowser.WPF -v "2.22.1-b3483-eap"
    

Instalar a extensão 

A instalação de uma extensão é simples: encontre-a na Chrome Web Store e passe o URL para o DotNetBrowser.

No código abaixo, instalamos a extensão uBlock Origin:

// Um URL da extensão uBlock Origin na Chrome Web Store.
var url = "https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/related?hl=en";

// Concede explicitamente a permissão para instalar extensões.
var extensions = engine.Profiles.Default.Extensions;
extensions.ValidatePermissionsHandler =
    new Handler<ValidatePermissionsParameters, ValidatePermissionsResponse>(
         p => ValidatePermissionsResponse.Grant()
    );

// Instale a extensão e aguarde até estar instalada.
var extension = extensions.Install(url).Result;

Se a extensão não estiver na loja, especifique o caminho para o arquivo CRX3:

var url = "C:\\extensions\\my-extension.crx";

Interagir com a extensão 

Cada extensão tem um ícone na barra de ferramentas do Chrome. Quando um usuário clica no ícone, a extensão normalmente faz alguma coisa. Por exemplo, pode mostrar um pequeno pop-up ou alterar silenciosamente o conteúdo da página.

No DotNetBrowser, não existe uma barra de ferramentas ou um ícone para clicar. Por isso, em vez disso, fornecemos a API para “clicar no ícone” a partir do código:

extension.GetAction(browser).Click();

Se a extensão quiser mostrar um pop-up, o DotNetBrowser abri-lo-á como uma nova janela. Mas é possível alterar este comportamento.

O pop-up da extensão é uma instância normal do IBrowser. Assim, pode fazer qualquer coisa: mostrá-la dentro da janela existente, torná-la transparente, ou transformá-la numa caixa de diálogo modal. De fato, pode decidir não a mostrar.

Neste exemplo, não apresentamos o pop-up e, em vez disso, fazemos alguma automatização:

using DotNetBrowser.Browser.Handlers;
...
browser.OpenExtensionActionPopupHandler =
    new Handler<OpenExtensionActionPopupParameters, 
                OpenExtensionActionPopupResponse>(p =>
    {
        // Assim que a janela for carregada, automatize as ações necessárias.
        p.PopupBrowser.Navigation.FrameLoadFinished += (s, e) =>
        {
            if (e.Frame.IsMain)
            {
                // Clique no botão de troca atual no pop-up uBlock.
                e.Frame.GetElementById("switch").Click();
            }
        };
        // Permitir que a extensão carregue conteúdo no navegador pop-up. 
        return OpenExtensionActionPopupResponse.Open();
});
Mais funcionalidades? O DotNetBrowser tem tudo o que precisa!
Experimente agora

Dê-nos extensões para verificar 

A integração das extensões do Chrome no DotNetBrowser representa um passo significativo, oferecendo mais possibilidades para melhorar as aplicações .NET. Com esta atualização, convidamos os programadores a explorar e a dar feedback.

o que pensa e quais as extensões que pretende utilizar.