qt5.10 for android 使用webview时qml 与html 中js的相互访问

webview 本身没有qwebchannel 的接口,只能通过WebSocketServer 间接的访问。

参考 https://stackoverflow.com/questions/51313111/qt-webview-and-webchannel-over-websockets-in-qml

以及对应的实例工程:https://github.com/eyllanesc/stackoverflow/tree/master/51313111

根据该工程编译的app在windows以及小米MI6 android版本7.11 都没有问题,但是在安卓版本4.4.2却出现了这样的问题。

failed: Invalid UTF-8 sequence in header value。现象就是websocket通信不了,百度了一下说是

In case anyone else hit's this issue, it's because the Server header was blank。

    WebSocketServer{
        listen: true
        port:12345
        name:"myserver"

        onClientConnected: {
            if(webSocket.status === WebSocket.Open)
            {
                channel.connectTo(transport);
                webSocket.onTextMessageReceived.connect(transport.textMessageReceive);
                transport.onMessageChanged.connect(webSocket.sendTextMessage);
            }

        }

    }

后来设置了属性name:"myserver"就能通信了。

原文地址:https://www.cnblogs.com/kabe/p/9335657.html