从本地html(WebView的源代码)

时间:2016-05-26 16:24:56

标签: javascript qt webview qml

我有一个Qt应用程序,我使用QML文件作为源创建并显示QQuickView对象。 这个QML有一个'WebView'项(QtWebView 1.0),它显示一个本地的.html文件。

我需要从Qt代码(Qt - > Qml - > Html)访问html代码,反之亦然(Html - > Qml - > Qt)

我的Qt代码和Qml代码已连接,但我在Qml< - >中遇到了问题。 HTML ...

在互联网上搜索我尝试了几种选择,但没有成功。最后一个是.js文件,作为代理(应该从Html调用,应该调用Qml)

我的代码现在就是这样:

MyWebView.qml

    Rectangle {
    id: rectMyWebView

    width: 1000
    height: 800

    WebView {
        id: myWebView

        objectName: "webView"

        anchors.fill: parent
        url: "file:///d:\\test.html"

        function fromHtmlToQML1(text)
        {
            console.log("Text from html" + text)
        }
    }

    // Called from Qt code: OK!!
    function fromQtToQml(text)
    {
        console.log("Text from qt: " + text)
        runJavaScript("jsCall2", function(result) { console.log(result); });
    }

    // 2nd option

    function fromHtmlToQML2(text)
    {
        console.log("Text from html" + text)
    }
}

的test.html:

<!doctype html>
<html>
    <head>
        <style type="text/css">
        ...
        ...
        </style> 
    </head>

    <body> 
        ...

        <script src="test.js" type="text/javascript"></script>

        <div class="mybutton"> <button onclick='myFunction1()'>Call Qt</button></div>

    ...

    </body>
</html>

test.js(必须在哪里?)

function myFunction1() {
    myWebView.fromHtmlToQML1();
    myWebView.fromHtmlToQML2();
}

当我使用Html按钮时,出现错误:

“js:未捕获的ReferenceError:myFunction1未定义”

这是test.js的位置问题吗?

是从Html调用Qml的方法(在Qml中用作WebView的源代码)

提前多多感谢,

0 个答案:

没有答案