WebView - 错误的onLoadingChanged事件

时间:2016-11-02 15:43:52

标签: android qt webview qml

我使用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/ 

0 个答案:

没有答案