我想使用DotNetBrowser创建一个自定义浏览器,是否有任何支持或黑客启用使用Chrome/Firefox/Opera扩展?我知道很多扩展处理浏览器特定的UI元素,这些元素是不可能模拟的,但是扩展代码的某些部分只处理html页面,所以chromium应该至少支持部分代码。我对广告拦截特别感兴趣。有人这样做过吗?由于
最新预览版DotNetBrowser支持Chrome扩展。特别是,广告拦截扩展工作得很好。
构建本身在NuGet上可用,但由于它需要许可证,请查看官方公告以了解如何获得许可证。
安装扩展很简单:
// Grant permissions.
var extensions = engine.Profiles.Default.Extensions;
extensions.ValidatePermissionsHandler =
new Handler<ValidatePermissionsParameters, ValidatePermissionsResponse>(
p => ValidatePermissionsResponse.Grant()
);
// Install directly from the web store
var extension = extensions.Install("https://chrome.google.com/webstore/detail/…").Result;
// or from a CRX file
var extension = extensions.Install("C:\extension.crx").Result;
打开扩展弹出式,调用:
// The action will interact with this `browser`.
// Think of it as the active tab.
extension.GetAction(browser).Click();
我应该注意到CefSharp已经有5年的扩展支持了(pull request)。然而,支持是非常有限的。这将改变当他们采用新的CEF的Chrome运行时。
你会发现这篇博文很有用。它回顾了两个库的扩展API,并提供了更多关于CefSharp情况的上下文。
不幸的是,当前版本的DotNetBrowser不支持Chrome扩展。因此,无法在当前版本的DotNetBrowser中启用扩展支持。