问题描述
我需要一些帮助来加载解压后的表单目录(如果您知道如何打包的话)。
我进行了很多搜索,但没有发现任何更新。
我正在尝试调用此函数:
this.browser.RequestContext.LoadExtensionFromDirectory(Directory.GetCurrentDirectory() +
"/vendors/static/fcfhplploccackoneaefokcmbjfbkenj",???????????? );
但是我找不到找到文档中所述的IExtensionHandler
的方法:
RequestContextExtensions.LoadExtensionsFromDirectory
我在Form中有一个简单的CefSharp嵌入式浏览器,正在尝试加载扩展程序。
我不知道如何获得这个IExtensionHandler
。
这是我的代码:
public partial class MainEmbedBrowser : Form
{
private string ID;
private ChromiumWebBrowser browser;
public MainEmbedBrowser(string url,string combo)
{
InitializeComponent();
this.browser = new ChromiumWebBrowser("localhost",new RequestContext());
//this.browser.RequestContext.LoadExtensionFromDirectory(Directory.GetCurrentDirectory() + "/vendors/static/fcfhplploccackoneaefokcmbjfbkenj",extensionHandler);
this.Controls.Add(browser);
this.browser.Load("https://google.com");
this.browser.Height = this.Height;
this.browser.Width = this.Width;
this.Show();
}
}
如果有人可以帮助我,请先谢谢
解决方法
我对此功能没有任何经验,但是,从查看文档开始,对于您的“问号”,您将需要提供一个实现IExtensionHandler 接口的类。.因此,首先您将需要创建以下内容:
public class MyExtHandler : IExtensionHandler
{
bool CanAccessBrowser(IExtension extension,IBrowser browser,bool includeIncognito,IBrowser targetBrowser)
{
return true;
}
IBrowser GetActiveBrowser(IExtension extension,bool includeIncognito)
{
return browser;
}
bool GetExtensionResource(IExtension extension,string file,IGetExtensionResourceCallback callback)
{
return true;
}
bool OnBeforeBackgroundBrowser(IExtension extension,string url,IBrowserSettings settings)
{
return true;
}
bool OnBeforeBrowser(IExtension extension,IBrowser activeBrowser,int index,bool active,IWindowInfo windowInfo,IBrowserSettings settings)
{
return true;
}
void OnExtensionLoaded(IExtension extension)
{
}
void OnExtensionLoadFailed(CefErrorCode errorCode)
{
}
void OnExtensionUnloaded(IExtension extension)
{
}
}
然后,当该接口中的函数被调用时,您可以在具体的类中决定要使用它们做什么。现在,我只是将它们设置为返回默认值。
一旦定义了类,就可以创建一个实例,以便传递到上面的代码行。像这样:
var myExtHandler = new MyExtHandler();
this.browser.RequestContext.LoadExtensionFromDirectory(Directory.GetCurrentDirectory() + "/vendors/static/fcfhplploccackoneaefokcmbjfbkenj",myExtHandler );
我希望这可以帮助您入门。除了上面的代码,我在这里没有其他经验。