¿Cómo puedo enviar y recibir variables desde y hacia las funciones de JavaScript utilizando DART?

StackOverflow https://stackoverflow.com//questions/10676228

  •  12-12-2019
  •  | 
  •  

Pregunta

He estado usando un poco de código (por John Evans) para ejecutar JavaScript desde Dart:

void injectJavascript(String javascript, [bool removeAfter = false]){
  var s = new Element.tag("script");
  s.attributes["type"] = "text/javascript";
  s.text = javascript;
  document.body.nodes.add(s);
  if (removeAfter != null && removeAfter)
    s.remove();
}

injectJavascript("alert('using javascript')");

Pero no he podido enviar o devolver las variables.¿Es esto actualmente posible?Si no, ¿alguna idea de cuándo será posible?

¿Fue útil?

Solución

Tendrá que usar Postmessage para hacer esto.Por ejemplo, si ha convertido su variable en JSON, puede hacerlo desde el interior DART

ventana.postMessage (JSONMESSAJE, "*");

y luego recogerlo desde el lado de JavaScript como este

function recieveMessage(event) {
  var message = JSON.parse(event.data);
  :
}
window.addEventListener("message", receiveMessage, false); 

Si necesita trabajar con cosas más avanzadas, como la comunicación y las devoluciones de llamada de dos vías, eche un vistazo al código para DartGap en particular el DeviceMessagerouter Class y The Integración de Javascript capa.

Otros consejos

Puede usar dart.js Ejecutar directamente las funciones de JavaScript y capturar la devolución.

var result = js.context.callMethod('getAnswer', [new js.JsObject.jsify(myargs)]);

Los tipos de objetos aprobados / devueltos son sin embargo limitados.Consulte el enlace de arriba para obtener información sobre qué objetos se pueden pasar directamente.Tenga en cuenta también que enumera y debe ser "jsified" antes de ser utilizados como argumentos a la llamada.

Puede usar dart: js .

Esta biblioteca proporciona acceso a los objetos JavaScript de DART, lo que permite que el código DART obtenga y configure las propiedades y llame a los métodos de los objetos Javascript e invoque las funciones de JavaScript.La biblioteca se encarga de la conversión entre los objetos DART y JavaScript cuando sea posible, o proporcionando proxies si la conversión no es posible.

Consulte también el artículo usando javascript de dart .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top