Come posso inviare e ricevere variabili da e verso le funzioni JavaScript utilizzando DART?

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

  •  12-12-2019
  •  | 
  •  

Domanda

Ho usato un po 'di codice (di John Evans) per eseguire JavaScript tra 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')");
.

Ma non sono stato in grado di inviare o restituire variabili.È attualmente possibile?Se no, nessuna idea quando sarà possibile?

È stato utile?

Soluzione

Dovrai usare Postmessage per fare questo.Ad esempio se hai convertito la tua variabile in JSON, allora puoi farlo da DART DART

.

window.postmessage (jsonmessage, "*");

e poi prendilo dal lato JavaScript come questo

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

Se è necessario lavorare con cose più avanzate come la comunicazione e le callback a due vie, quindi dare un'occhiata al codice per DartGap in particolare il DevicemessaGerouter classe e Integrazione JavaScript strato.

Altri suggerimenti

è possibile utilizzare dart.js eseguire direttamente le funzioni JavaScript e acquisire il ritorno.

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

I tipi di oggetti passati / restituiti sono comunque limitati.Vedere il link sopra per informazioni su cui gli oggetti possono essere passati direttamente.Nota anche che elenca e dovrebbe essere "jsified" prima di essere utilizzato come argomenti per callmethod.

Puoi usare DART: JS . .

Questa libreria fornisce accesso agli oggetti JavaScript da DART, consentendo il codice DART di ottenere proprietà e impostare le proprietà e chiamare i metodi di oggetti JavaScript e invocare le funzioni JavaScript.La biblioteca si prende cura di convertire tra gli oggetti DART e JavaScript ove possibile o fornire ai proxy se la conversione non è possibile.

Vedi anche l'articolo usando JavaScript da DART .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top