Intentando crear una aplicación de demostración usando la biblioteca VAST Client JS en mi proyecto de Android.
Para esto, he descargado la versión preempaquetada de la biblioteca.
y ponerlo en la carpeta de activos.
Además de eso, también he creado un archivo HTML que básicamente llama a las funciones JS de la biblioteca.
< !DOCTYPE html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <script src='file:///android_asset/vast-client-browser-min.js'></script> <script> // Get the VAST Url from the Java class const tagURL = window.MyHandler.getVASTUrl(); const vastClient = new VAST.VASTClient(); vastClient.get(tagURL) .then(res => { // notify my Java class window.MyHandler.onResponse('hey'); }).catch(err => { // notify my Java class window.MyHandler.onError('heyy'); }); </script> </head> <html> <body> </body> </html>En el lado de Java, llamo a mi archivo HTML
// initialize webview WebView.setWebContentsDebuggingEnabled(true); webView.setWebChromeClient(new WebChromeClient()); webView.getSettings().setMediaPlaybackRequiresUserGesture(false); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setDomStorageEnabled(true); // add javascript interface to notify my java class from the JS side. webView.addJavascriptInterface(new JavaScriptInterface(this, webView), "MyHandler"); // Load the HTML file webView.loadUrl("file:///android_asset/vast_client_handler.html");Sin embargo, cuando ejecuto la aplicación, obtengo esto;
I/chromium: [INFO:CONSOLE(17)] "Uncaught ReferenceError: VASTClient is not defined", source: file:///android_asset/vast_client_handler.html (17)¿Qué me podría estar perdiendo? Gracias
Todo su documento HTML es incorrecto.
<html> y no con la etiqueta <head> .< !DOCTYPE html> tiene un espacio después del primer carácter < por lo que no se analiza correctamentebody para que no tenga condiciones de carrera (el contenido <head> se carga antes que el <body> )