Помимо переопределения OnRequestDownload, что еще мне нужно, чтобы получить автономный веб-браузер для загрузки файлов по запросу веб-страницы в Awesomium?

Я использую Awesomium 1.7.5 в C ++ на VC ++.

У меня есть консольная программа, которую я хотел бы автоматически загружать с веб-страниц. Я работаю безголовый веб-браузер Я переопределил виртуальную функцию «OnRequestDownload» следующим образом:

void WebViewListener::Download::OnRequestDownload(Awesomium::WebView*
caller,
int download_id,
const Awesomium::WebURL& url,
const Awesomium::WebString& suggested_filename,
const Awesomium::WebString& mime_type)
{
std::cout << "Download Triggered";

view->DidChooseDownloadPath(download_id, Awesomium::WSLit
("n:\\test.pdf"));

}

Моя веб-страница отправляет ссылку на скачивание PDF-файла при каждом нажатии на ссылку. Несмотря на то, что вручную щелкают координаты ссылки и щелкают ссылку в java, событие загрузки не инициируется.

Я занимался этим уже два дня, поливал документацию, и я никак не могу понять это. Заранее благодарны за Вашу помощь.

РЕДАКТИРОВАТЬ:

Таким образом, я сделал конкретный класс из всего виртуального класса. Это все еще не выполнено.

class DLListener : public WebViewListener::Download {
public:
void OnRequestDownload(Awesomium::WebView* caller,
int download_id,
const Awesomium::WebURL& url,
const Awesomium::WebString& suggested_filename,
const Awesomium::WebString& mime_type);

void OnUpdateDownload(Awesomium::WebView* caller,
int download_id,
int64 total_bytes,
int64 received_bytes,
int64 current_speed);

void OnFinishDownload(Awesomium::WebView* caller,
int download_id,
const Awesomium::WebURL& url,
const Awesomium::WebString& saved_path);

};void DLListener::OnRequestDownload(Awesomium::WebView* caller,
int download_id,
const Awesomium::WebURL& url,
const Awesomium::WebString& suggested_filename,
const Awesomium::WebString& mime_type)
{
std::cout << "Download Triggered.\n";

view->DidChooseDownloadPath(download_id, Awesomium::WSLit   ("n:\\test.pdf"));

}

void DLListener::OnFinishDownload(Awesomium::WebView* caller,
int download_id,
const Awesomium::WebURL& url,
const Awesomium::WebString& saved_path)
{
std::cout << "Download Finished.\n";}

В моем основном коде я создаю экземпляр и затем устанавливаю слушателя:

DLListener *listener = new DLListener;
view->set_download_listener(listener);

Еще ничего. Нет файла, нет вывода на консоль. Я все еще делаю что-то не так?
Для справки, элемент, который вызывает событие, выглядит так:

<a id="ctl00_phPageContent_lnkPrintFiling" href="javascript:__doPostBack('ctl00$phPageContent$lnkPrintFiling','')">Print Filing</a>

При нажатии загружается файл PDF.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector