загрузить консоль возвращает следующую ошибку:Ошибка загрузки
Frame load interrupted by policy change
Пример:
<a href="app.exe">Start Download</a>
Console Preview:
Должен ли я настроить что-то в Компилятор или QWebSettings?
загрузить консоль возвращает следующую ошибку:Ошибка загрузки
Frame load interrupted by policy change
Пример:
<a href="app.exe">Start Download</a>
Console Preview:
Должен ли я настроить что-то в Компилятор или QWebSettings?
Я обнаружил. В обычных браузерах Webkit место для загрузки консоли показывает, как отменяется запрос, поэтому перед тем, как перейти к «диспетчеру загрузки» браузера, запрос должен быть отменен.
решение:
//replace [QWebView] by your WebView
connect([QWebView]->page(), SIGNAL(unsupportedContent(QNetworkReply*)),
this, SLOT(downloadContent(QNetworkReply*)));
...
void [main class]::downloadContent(QNetworkReply *reply){
//Replace "[main class]" by "Class" having the signs used in WebView.
[QWebView]->stop();
//solution: stop loading --replace [QWebView] by your WebView
/*function to donwload*/
}
Редактировать: трудно сказать без надлежащего обратного хода, который я запросил в комментариях, но похоже, что предупреждение может быть действительно безвредным.
Оригинал: Это потому, что QWebView
doesn't know что делать с файлом app.exe
- это не HTML страницы или text/plain
документ или поддерживаемый образ, в конце концов. Класс QWebView
не является веб-браузером; вы, очевидно, хотите начать загрузку некоторого файла, но в этом классе нет полноценного менеджера загрузки. Вам нужно будет предоставить свой собственный код для этого - код должен будет запросить правильное место для его сохранения и т. Д.
Вы можете начать с QWebPage::setLinkDelegationPolicy
и обработать этот конкретный клик самостоятельно.
Спасибо за ответ, но мой код загружается нормально. Я не использовал 'QWebPage :: setLinkDelegationPolicy'. Я использовал 'connect (QWebPage, SIGNAL (unsupportedContent (QNetworkReply *)), это, SLOT (signalDownload (QNetworkReply *)));' и 'setForwardUnsupportedContent (true)', загрузка отлично работает с ним. Единственная проблема - это сообщение «политика», которое странно (я не понимаю, почему эта политика или что это такое). Если вы можете отредактировать свой ответ, я был бы благодарен. Добрый день. –
Я могу установить 'setLinkDelegationPolicy' только для' mimetypes' непризнанных? И распознанные миметики продолжают нормально функционировать (стандартный режим)? –
Хорошо, я проверил источник qtwebkit, и похоже, что предупреждение печатается даже в довольно безобидных случаях. Было бы интересно увидеть обратную трассировку этой ошибки - '' WebCore :: MainResourceLoader :: stopLoadingForPolicyChange() '' как функция для установки точки останова. Как выглядит трассировка стека? –
Возможно расширение "EXE" является источником этой аллергии. Исполняемые файлы, как правило, блокируются от прямой загрузки, чтобы избежать вредоносного кода. Это может объяснить слово «политика». – Ihsan
Работы по загрузке (я использую unsupportedContent (QNetworkReply *) и setForwardUnsupportedContent (true)), проблема на самом деле - странное сообщение. Интересно, что это за сообщение/ошибка. Не могли бы вы рассказать мне, почему он появляется? Когда я загружаюсь, должен отображаться отмененный и не сбой (как это происходит в обычных браузерах). Должен ли я использовать функцию «edit/rewrite» 'unsupportedContent' с помощью' QWebView-> setPage (new myClassPageRewrite()) '? –