我们很高兴地宣布,DotNetBrowser 中的 Chrome 扩展程序现已公开预览!

本篇文章将演示如何在 DotNetBrowser 中安装 uBlock Origin 扩展, 以及如何从代码中与其进行交互。

DotNetBrowser 中的 uBlock 扩展

在 DotNetBrowser 中启动的扩展程序

在网页视图中使用 Chrome 扩展程序,无需任何费用即可为您的软件增添众多新功能。 通过这些扩展程序,不仅可以屏蔽广告、提升可访问性,还可以使用 JavaScript 库的开发工具等, 以及其他更多实用功能。

扩展支持即将完成。在最终完成之前,我们为社区提供了预览版本。 您可以尝试演示应用程序,或者将一些 NuGet 包添加到您的项目中以进行体验。

克隆演示应用程序

获取演示应用程序的方法如下:

  1. 克隆 DotNetBrowser-Examples 仓库。

    git clone https://github.com/TeamDev-IP/DotNetBrowser-Examples.git
    
  2. 切换到 extensions-preview 分支:

    git checkout extensions-preview
    
  3. 要获取免费的 30 天试用许可证,请填写表单, 之后,您将会收到一封包含许可证密钥的电子邮件。

Spinner

发送中。。。

抱歉,发送中断

请再次尝试,如果问题仍然存在,请联系我们 info@teamdev.com.

阅读并同意条款以继续。

您的个人 DotNetBrowser 试用密钥和快速入门指南将在几分钟内发送至您的电子邮箱。

  1. 将您的许可证密钥放入存储库根目录中的 dotnetbrowser.license 文件中。
  2. 在 Visual Studio 2019 或更新版本中打开解决方案。
  3. 在 “Solution Explorer” 中右键单击解决方案, 然后选择 “Restore NuGet Packages”。
  4. 构建解决方案并运行 Extensions 项目。

在现有项目中使用

如果您已经在使用 DotNetBrowser,您可以从 NuGet 获取预览版本。

  1. 添加 DotNetBrowser EAP 订阅源

    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. 切换到 DotNetBrowser 的预览版本。

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

安装扩展程序

安装扩展程序的过程非常简单:只需在 Chrome 网络应用商店中找到所需的扩展, 然后将它的 URL 传递给 DotNetBrowser 即可。

在下面的代码中,我们将安装 uBlock Origin 扩展:

// Chrome 网络应用商店中 uBlock Origin 扩展的 URL。
var url = "https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm/related?hl=en";

// 明确授予安装扩展程序的权限。
var extensions = engine.Profiles.Default.Extensions;
extensions.ValidatePermissionsHandler =
    new Handler<ValidatePermissionsParameters, ValidatePermissionsResponse>(
         p => ValidatePermissionsResponse.Grant()
    );

// 安装扩展程序并等待安装完成。
var extension = extensions.Install(url).Result;

如果扩展程序不在商店中,请指定到 CRX3 文件的路径:

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

与扩展程序交互

每个扩展程序在 Chrome 工具栏中都有一个图标。 当用户点击该图标时,扩展程序通常会执行某些操作。 例如,它可能会显示一个小型弹出窗口,或者静默地更改页面的内容。

在 DotNetBrowser 中,没有可点击的工具栏或图标。 因此,我们提供了 API 来从代码中 “点击图标”:

extension.GetAction(browser).Click();

如果扩展程序想要显示一个弹出窗口,DotNetBrowser 会将其打开为新窗口。 但您可以更改这种行为。

扩展程序的弹出窗口是一个常规的 IBrowser 实例。 因此,您可以执行任何操作: 您可以选择在现有窗口内显示它,也可以将其设置为 透明, 甚至可以将其转换为模态对话框。 当然,您也可以选择完全不显示它。

在此示例中,我们不显示弹出窗口,而是执行一些自动化操作:

using DotNetBrowser.Browser.Handlers;
...
browser.OpenExtensionActionPopupHandler =
    new Handler<OpenExtensionActionPopupParameters, 
                OpenExtensionActionPopupResponse>(p =>
    {
        // 一旦框架加载完毕,就会自动执行必要的操作
        p.PopupBrowser.Navigation.FrameLoadFinished += (s, e) =>
        {
            if (e.Frame.IsMain)
            {
                // 点击 uBlock 弹出窗口中的实际切换按钮。
                e.Frame.GetElementById("switch").Click();
            }
        };
        // 允许扩展程序在弹出式浏览器中加载内容。
        return OpenExtensionActionPopupResponse.Open();
    });
需要更多功能? DotNetBrowser 将为您提供全方位支持!
立即体验

提供您想要检测的扩展程序

将 Chrome 扩展程序集成到 DotNetBrowser 中,是向前迈出的重要一步, 为增强 .NET 应用程序提供了更多的可能性。随着此次更新, 我们热切地邀请广大开发者们前来探索,并分享你们的宝贵反馈和建议。

欢迎随时与我们分享您的想法, 并告诉我们您希望使用哪些扩展程序。