Шаблоны примеры qt
Как в WebView передать из web-страницы сообщение внутрь приложения
Проверено в ОС Аврора 4
Добавляем в qml/js файлик framescript.js такого содержания
addEventListener("DOMContentLoaded", function (event) {
event.originalTarget.addEventListener("framescript:action",
function (event) {
sendAsyncMessage("webview:action", event.detail)
});
});
В qml с WebVieb грузим его и вешаем обработчик
WebView {
id: webView
objectName: "webView"
onViewInitialized: {
webView.loadFrameScript(Qt.resolvedUrl("../js/framescript.js"));
webView.addMessageListener("webview:action");
}
onRecvAsyncMessage: {
console.log("recv action: " + data.action + " recv msg: " + message)
}
}
А в html добавляем функцию для отправки
function sendAsyncMessage(action, data) {
document.dispatchEvent(new CustomEvent('framescript:action', {
detail: {
action: action,
data: data
}
}))
}
Если ее повесить на кнопку, то увидим в коде сообщения