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"就能通信了。