我正在考虑将项目转换为WinForm应用程序中的嵌入式WebView类型架构,并考虑使用DotNetBrowser和CefSharp.
经过多次搜索后,我似乎无法找到免费CefSharp项目与付费DotNetBrowser组件的功能之间的任何比较.与DotNetBrowser的支持选项的主要区别是还有其他记录的差异吗?
如何使用 dotnetbrowser 在当前打开的选项卡和单击按钮后打开的新选项卡之间切换?是否可以?
我正在尝试从页面下载 PDF 文件,该文件在单击主页上的按钮后显示在新选项卡上。但是,我所有检索 PDF 的尝试都失败了(我已经添加了 CustomPluginFilter)。
编辑:这是我使用的代码,在获取包含 PDF 按钮的页面后(单击它后,打开一个新选项卡,显示 pdf 的内容)
public class CustomPluginFilter : PluginFilter
{
public bool IsPluginAllowed (PluginInfo pluginInfo)
{
if (pluginInfo.MimeTypes.Contains("application/pdf"))
{
return false;
}
return pluginInfo.MimeTypes.Contains("application/pdf");
}
}
DotNetBrowser.BrowserContextParams parameters = new DotNetBrowser.BrowserContextParams(directory);
DotNetBrowser.BrowserContext context = new DotNetBrowser.BrowserContext(parameters);
Browser browser = DotNetBrowser.BrowserFactory.Create(context);
Run Code Online (Sandbox Code Playgroud)
这是我请求获取带有按钮的页面的地方,它一直工作到这里。接下来是获取PDF的步骤
browser.PluginManager.PluginFilter = new CustomPluginFilter();
SampleDownloadHandler downloadHandler = new SampleDownloadHandler();
browser.DownloadHandler = downloadHandler;
DOMDocument document = browser.GetDocument();
XPathResult xpath = document.Evaluate(".//table[contains(@id, \"formulario:tabelaIE\")]//tr//a", XPathResultType.FIRST_ORDERED_NODE_TYPE);
DOMElement element = xpath.SingleNode as DOMElement;
element.Click();
Run Code Online (Sandbox Code Playgroud) 我使用以下命令设置了一个Winform-Application(以后将是WPF) DotNetBrowserControl
BrowserView browserView = new
WinFormsBrowserView(BrowserFactory.Create(BrowserType.HEAVYWEIGHT));
Controls.Add((Control)m_BrowserView);
string remoteDebuggingUrl = m_BrowserView.Browser.GetRemoteDebuggingURL();
Run Code Online (Sandbox Code Playgroud)
注意remoteDebuggingUrl是string.Empty
DotNetBrowserVersion / DotNetBrowserChromium-版本:1.8.3.0 .NetFramework:4.5.2