下載一個控制檯返回以下錯誤:錯誤下載
Frame load interrupted by policy change
例子:
<a href="app.exe">Start Download</a>
控制檯前瞻:
我應該配置一些在編譯器或QWebSettings?
下載一個控制檯返回以下錯誤:錯誤下載
Frame load interrupted by policy change
例子:
<a href="app.exe">Start Download</a>
控制檯前瞻:
我應該配置一些在編譯器或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
類不是一個Web瀏覽器;您顯然希望開始下載某個文件,但該類中沒有完整的下載管理器。你將不得不爲此提供自己的代碼 - 該代碼將不得不尋求合適的位置,以保存它,等
您可以QWebPage::setLinkDelegationPolicy
啓動和處理這個特殊的點擊你自己。
感謝您的回答,但我的代碼正常下載。 我沒有使用過'QWebPage :: setLinkDelegationPolicy'。 (QWebPage,SIGNAL(unsupportedContent(QNetworkReply *)),this,SLOT(signalDownload(QNetworkReply *)));''和'setForwardUnsupportedContent(true)',下載完全適用於它。 唯一的問題是'政策'的消息很奇怪(我不明白爲什麼這個政策或它是什麼)。如果你可以編輯你的答案,我將不勝感激。美好的一天。 – 2013-05-02 12:38:40
我只能爲'mimetypes'設置'setLinkDelegationPolicy'無法識別?識別的mimetypes繼續正常工作(標準模式)? – 2013-05-02 12:41:39
好的,我已經檢查過qtwebkit源代碼,看起來即使在相當無害的情況下也會打印警告。看到這個錯誤的回溯會很有趣 - 「WebCore :: MainResourceLoader :: stopLoadingForPolicyChange()」似乎是設置斷點的函數。堆棧跟蹤是怎樣的? – 2013-05-02 13:25:40
也許 「EXE」 擴展名是這個過敏源。通常阻止可執行文件直接下載以避免惡意代碼。這可以解釋「政策」一詞。 – Ihsan 2013-05-07 06:55:45
下載工作(我使用unsupportedContent(QNetworkReply *)和setForwardUnsupportedContent(true)),問題真的是奇怪的消息。我不知道這是什麼信息/錯誤。你能告訴我爲什麼出現?當我下載應該顯示取消,並沒有失敗(正常瀏覽器中發生)。我需要使用'QWebView-> setPage(new myClassPageRewrite())''編輯/重寫'函數'unsupportedContent'嗎? – 2013-05-07 19:23:48