我正在尝试在 WinForms 中使用 CefSharp v65 加载本地 html/css/js 文件。
我找到了与此相关的其他堆栈溢出帖子,但他们都没有使用新的内置版本FolderSchemeHandlerFactory
,而不是实现他们自己的版本。这是我读到的关于方案处理程序的文档:https://github.com/cefsharp/CefSharp/wiki/General-Usage https://github.com/cefsharp/CefSharp/wiki/General-Usage在“方案处理程序”标题下。
资料来源:在 CefSharp 中使用本地构建的网页 https://stackoverflow.com/questions/28697613/working-with-locally-built-web-page-in-cefsharp
我尝试像这样使用新功能:
public ChromiumWebBrowser browser;
public void InitBrowser()
{
var settings = new CefSettings();
settings.RegisterScheme(new CefCustomScheme
{
SchemeName = "localfolder",
SchemeHandlerFactory = new FolderSchemeHandlerFactory(
rootFolder: @"..\..\..\..\CEFSharpExample\webpage",
defaultPage: "index.html" // default
)
});
Cef.Initialize(settings);
string html = File.ReadAllText(@"..\..\..\webpage\index.html");
browser = new ChromiumWebBrowser();
browser.LoadHtml(html);
this.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
}
但是,我只是获取没有 css 的 html,在调试器中没有例外。有谁了解如何利用新的内置功能?
正如 aamaitland 在评论中指出的那样,我的“在[我]加载数据 URI 时并未向方案处理程序发出请求”。
我更新后的工作代码如下(如果您想知道所有事情都发生在哪里,则更加充实):
public partial class Form1 : Form
{
InitializeComponent();
InitBrowser();
}
public ChromiumWebBrowser browser;
public void InitBrowser()
{
var settings = new CefSettings();
settings.RegisterScheme(new CefCustomScheme
{
SchemeName = "localfolder",
DomainName = "cefsharp",
SchemeHandlerFactory = new FolderSchemeHandlerFactory(
rootFolder: @"C:\CEFSharpExample\webpage",
hostName: "cefsharp",
defaultPage: "index.html" // will default to index.html
)
});
Cef.Initialize(settings);
browser = new ChromiumWebBrowser("localfolder://cefsharp/");
this.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)