html入力フィールドが表示QWebEngineViewにフォーカスされるとすぐに、カスタム入力デバイスをタッチスクリーンに表示したいとします。したがって、私は入力デバイスオブジェクトをQWebChannel経由でクライアント側のJavasciptに公開しようとしました。これにより、入力フィールドがフォーカスされるとすぐに入力デバイスのshowメソッドを呼び出すことができました。QWebChannelを使用してqmlオブジェクトをWebサイト/ JavaScriptに公開する
Uncaught TypeError: Cannot read property 'send' of undefined at line 60
Uncaught ReferenceError: QWebChannel is not defined at line 2
さらに私はQWebChannelのパラメータとしてnavigator.qtWebChannelTransport代わりのqt.webChannelTransportを使用したときに確認していない:
はしかし、現在、私は、次の2つのいずれかのエラーを取得します。
Window.qml
ApplicationWindow {
WebView {
id: webView
anchors.fill: parent
// Register keyboard as web channel object.
webChannel.registeredObjects: [myObject]
}
MyObject {
id: myObject
WebChannel.id: "myWebObject"
}
}
WebView.qml
WebEngineView {
// Load web channel and input method handling scripts.
userScripts: [
WebEngineScript {
injectionPoint: WebEngineScript.DocumentCreation
name: "QWebChannel"
sourceUrl: "qrc:///qtwebchannel/qwebchannel.js"
},
WebEngineScript {
injectionPoint: WebEngineScript.DocumentReady
name: "MyObjectInjector"
sourceUrl: "qrc:/myscript.js"
}
]
}
myscript.js
window.channel = new QWebChannel(navigator.qtWebChannelTransport, function(channel) {
var inputs = window.document.getElementsByTagName('INPUT');
var index;
for(index=0; index < inputs.length; index++) {
inputs[index].onfocus = function() {
console.log("Input focused");
};
}
});