C# CefShap从目录加载扩展名
我需要一些帮助来加载未打包的(或者打包的,如果你知道我怎么做的话)表单目录。C# CefShap从目录加载扩展名,c#,winforms,cefsharp,chromium-embedded,C#,Winforms,Cefsharp,Chromium Embedded,我需要一些帮助来加载未打包的(或者打包的,如果你知道我怎么做的话)表单目录。 我搜索了很多,但没有找到任何更新的内容 我正在尝试调用此函数: this.browser.RequestContext.LoadExtensionFromDirectory(Directory.GetCurrentDirectory() + "/vendors/static/fcfhplploccackoneaefokcmbjfbkenj", ???????????? ); 但是我没有找
我搜索了很多,但没有找到任何更新的内容 我正在尝试调用此函数:
this.browser.RequestContext.LoadExtensionFromDirectory(Directory.GetCurrentDirectory() +
"/vendors/static/fcfhplploccackoneaefokcmbjfbkenj", ???????????? );
但是我没有找到一种方法来获取文档中描述的IExtensionHandler
:
我在表单中有一个简单的嵌入式浏览器,我正在尝试加载扩展。我不知道如何获得这个
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();
}
}
如果有人可以帮助我,请提前感谢我没有任何使用此功能的经验,但是,从查看文档中,对于您的“问号”,您需要提供一个实现该接口的类。。因此,首先您需要创建如下内容:
public class MyExtHandler : IExtensionHandler
{
bool CanAccessBrowser(IExtension extension,IBrowser browser,bool includeIncognito,IBrowser targetBrowser)
{
return true;
}
IBrowser GetActiveBrowser(IExtension extension,IBrowser browser,bool includeIncognito)
{
return browser;
}
bool GetExtensionResource(IExtension extension,IBrowser browser,string file, IGetExtensionResourceCallback callback)
{
return true;
}
bool OnBeforeBackgroundBrowser(IExtension extension, string url, IBrowserSettings settings)
{
return true;
}
bool OnBeforeBrowser(IExtension extension,IBrowser browser,IBrowser activeBrowser,int index,string url,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 );
我希望这能帮助你开始。除了上述代码之外,我在这里没有其他经验。到目前为止,您尝试过什么?你能分享你的代码吗?