Как удалить диалог «Сохранить как» из обработчика загрузки в CefSharp - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу удалить диалоговое окно «Сохранить как» из CefSharp и хочу сохранить файл непосредственно в указанном месте. Похоже, что ничего не получается, помогите publi c void OnBeforeDownload (IWebBrowser chromiumWebBrowser, браузер IBrowser, DownloadItem downloadItem, IBeforeDownloadCallback callback) {OnBeforeDownloadFired? .Invoke (this, downloadItem);

            if (!callback.IsDisposed)
            {
                using (callback)
                {
                    callback.Continue("C:/Users/Wissensquelle/Downloads/bhavansh.txt", showDialog: false);
                }
            }
        }

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Мое решение основано на

https://github.com/cefsharp/CefSharp.MinimalExample

и

Получение HTML из браузера Cefsharp

Я просто объединил их. Сохранение html содержимого экземпляра браузера CefSharp выполняется следующим образом:

 browser = new ChromiumWebBrowser("www.google.com");
 //
 // .. etc etc
 // ..
 private async getSource()
 { 
   string source = await browser.GetBrowser().MainFrame.GetSourceAsync();
   string f = @"c:\temp\my.html";
   StreamWriter wr = new StreamWriter(f, false, System.Text.Encoding.Default);
   wr.Write(source);
   wr.Close();
 }

Чтобы проверить его, используйте указанное выше событие или прокрутите свое собственное меню Файл: добавьте элемент Сохранить. Добавьте событие Click и сделайте его asyn c. Теперь вызовите getSource () как:

 private async void saveToolStripMenuItem_Click(object sender, EventArgs e)
 {
   await getSource();
 }
0 голосов
/ 08 апреля 2020

Я хочу удалить диалоговое окно SaveAs из CefSharp и хочу сохранить файл непосредственно в указанном месте.

Это невозможно сделать ( из box ), если это так, это было бы огромным недостатком дизайна, который имел бы большие проблемы с безопасностью.

С другой стороны, взгляните на класс DownloadHandler , в частности OnBeforeDownload метод, однако вы можете изменить его по своему вкусу (больше хлопот):

 callback.Continue(downloadItem.SuggestedFileName, showDialog: true);

Кому:

 callback.Continue(SOMEPATH, showDialog: false);
...