我使用QT 5.7 + QML + WebView + Android 6.0。我在手机上关闭互联网,然后尝试加载一些网址。首先,webview状态更改为LoadFailedStatus,但在1秒后,它更改为LoadSucceededStatus。为什么?设备上没有输入以太网,屏幕上仍然显示错误信息。
的main.cpp
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtWebView::initialize();
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
main.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtWebView 1.1
import QtQuick.Layouts 1.0
ApplicationWindow {
id: app
visible: true
WebView {
id: webView
anchors.fill: parent
visible: true
url: "http://lenta.ru"
onLoadingChanged: {
if (loadRequest.status == WebView.LoadStartedStatus) {
console.log("Load start: " + loadRequest.url)
} else if (loadRequest.status == WebView.LoadSucceededStatus) {
console.log("Load succeeded: " + loadRequest.url)
} else if (loadRequest.status == WebView.LoadFailedStatus) {
console.log("Load failed: " + loadRequest.url + ". Error code: " + loadRequest.errorString)
}
}
}
}
输出
(onLoadingChanged): qml: Load start: https://lenta.ru/
(onLoadingChanged): qml: Load failed: https://lenta.ru/. Error code: net::ERR_INTERNET_DISCONNECTED
(onLoadingChanged): qml: Load succeeded: https://lenta.ru/
(onLoadingChanged): qml: Load succeeded: https://lenta.ru/