Как использовать statusChanged в WebView (QtQuick 2.0 и QtWebKit 3)?

В QtQuick 1.0 и QtWebKit 1.0 я мог сделать onLoadFinished для выполнения функции после того, как страница была готова. Как это сделать в версиях 2 и 3 соответственно?

Есть статус поменялся в документах. Я не понимаю, как его использовать.

Ранее у меня было:

import QtQuick 2.0
import QtWebKit 3.0

WebView {
width: 700
height: 800

url:"http://www.yahoo.com"settings.developerExtrasEnabled : trueid: webView
objectName: "myWebView"onLoadFinished: evaluateJavaScript("window.setTimeout('window.location.reload()',5000);")

}

но это показывает ошибку:

Невозможно присвоить несуществующему свойству «onLoadFinished»

3

Решение

Вы должны использовать onLoadingChanged Объект signal и loadRequest для проверки точного статуса:
http://qt-project.org/doc/qt-5.0/qtwebkit/qml-qtwebkit3-webview.html#onLoadingChanged-signal

import QtQuick 2.0
import QtWebKit 3.0

WebView {
width: 700
height: 800

url:"http://google.com"
id: webView
objectName: "myWebView"
onLoadingChanged: {
console.log("onLoadingChanged: status=" + loadRequest.status);
if (loadRequest.status == WebView.LoadStartedStatus)
console.log("Loading started...");
if (loadRequest.status == WebView.LoadFailedStatus) {
console.log("Load failed! Error code: " + loadRequest.errorCode);
if (loadRequest.errorCode === NetworkReply.OperationCanceledError)
console.log("Load cancelled by user");
}
if (loadRequest.status == WebView.LoadSucceededStatus)
console.log("Page loaded!");
}

}

onLoadingChanged Сигнал возникает, когда любая загрузка страницы начинается, заканчивается или заканчивается неудачей. Различные параметры только для чтения доступны в loadRequest:

  • url: местоположение загружаемого ресурса.
  • статус: отражает одно из трех состояний загрузки: LoadStartedStatus, LoadSucceededStatus или LoadFailedStatus. Смотрите WebView :: LoadStatus.
  • errorString: описание ошибки загрузки.
  • errorCode: код ошибки HTTP.
  • errorDomain: высокоуровневые типы ошибок, один из следующих: NetworkErrorDomain, HttpErrorDomain, InternalErrorDomain, DownloadErrorDomain или NoErrorDomain. Смотрите WebView :: ErrorDomain.
4

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

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

По вопросам рекламы [email protected]