C# 是否有类似于在CefSharp库中导航的事件WebBrowser?
我需要调用事件时,我在网站上点击下载按钮,并立即获得下载链接。我知道它是如何与WebBrowser一起工作的:C# 是否有类似于在CefSharp库中导航的事件WebBrowser?,c#,wpf,cefsharp,C#,Wpf,Cefsharp,我需要调用事件时,我在网站上点击下载按钮,并立即获得下载链接。我知道它是如何与WebBrowser一起工作的: private void WebBrowser_Navigating(object sender, NavigatingCancelEventArgs e) { string url = e.Uri.ToString(); if (url.Contains("https://accounts.google.com/AccountChooser") {
private void WebBrowser_Navigating(object sender, NavigatingCancelEventArgs e)
{
string url = e.Uri.ToString();
if (url.Contains("https://accounts.google.com/AccountChooser")
{
_userAgentController.UserAgentRefresh();
}
if (url.Contains("get:")) //specific form of download link
{
DownloadModel(url);
}
}
但我应该在CefSharp库中使用它,并使用使用下载url的DownloadModel方法
我尝试加载Changed和FrameLoadEnd事件,但无法获得所需的链接。看起来CefSharp为您提供了一个接口来实现,该接口具有用于下载的回调 下面是一个例子:
public class DownloadHandler : IDownloadHandler
{
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
var handler = OnBeforeDownloadFired;
if (handler != null)
{
handler(this, downloadItem);
}
if (!callback.IsDisposed)
{
using (callback)
{
callback.Continue(downloadItem.SuggestedFileName, showDialog: true);
}
}
}
public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
var handler = OnDownloadUpdatedFired;
if (handler != null)
{
handler(this, downloadItem);
}
}
}
从这里开始,下载完成后,您将拥有DownloadItem对象,该对象提供您需要的完整路径:
请参见此处的类结构:谢谢,我使用了DownloadHandler.cs和OnBeforeDownloadFired来获取下载链接,然后不执行下载,所以我可以调用我的方法