Quiero crear un cuadro de diálogo simple en un navegador que haga clic en el botón como entrada usando WebAssembly.
Logré crear una aplicación usando OpenGL, SDL2 e imGui y la transfiero a JavaScript usando Emscripten. Pero tengo problemas para pasar datos de la aplicación WebAssembly OpenGL a JavaScript.
¿Cómo puedo pasar datos de C ++ a Javascript para reconocer la página web que los usuarios han realizado algunas acciones (por ejemplo, hacer clic en el botón "Aceptar")?
Intenté detener el ciclo de ejecución de Emscripten usando emscripten_cancel_main_loop . Y la aplicación simplemente se congela en la página web.
Estoy tratando de emitir eventos de C++ a JavaScript, pero no pude entender cómo funciona.
Después de varios intentos, llegué a un enfoque para enviar CustomEvent desde WebAssembly a mi página web.
La función que se utilizó para enviar datos se ve así:
EM_JS(void, sendData, (int data), { window.dispatchEvent( new CustomEvent("fromWASM", { detail: { data: data } }) ); }); Luego llame a sendData() directamente en el código C++ como si fuera una función normal de C++.
Finalmente, necesitaremos escuchar el evento en el lado de JavaScript con addEventListener :
window.addEventListener('fromWASM', (event) => { console.log(event.detail); });También me pregunto si podemos pasar mensajes de la página web a la aplicación OpenGL.