Domanda

Sto costruendo un'app iOS utilizzando il meraviglioso quadro di rubimozione e la pila di gemma di promozione.

Voglio visualizzare un grafico in un PM::WebScreen sul mio iPhone. Riferisco un file HTML nel metodo del contenuto e ha (1) il file HTML, (2) il mio file Metodi JS personalizzato, (3) My JS Chart Library (HighCharts) e (4) JQuery nella cartella delle risorse. Tutto questo rende bene.

Sono in grado di creare l'array di dati per il grafico nel mio PM :: File WebScreen (ricevo i dati da una chiamata API a una fonte esterna.) Il grafico rende soddisfatto i dati statici digitati.

Il problema

Voglio passare il mio array di dati al mio file JS personalizzato per farla disegnare il grafico con dati dinamici. Come posso farlo?

Preferirei non creare una chiamata Ajax dal mio JS perché potrei voler usare quella matrice altrove nel mio codice RUBYMOTION / Promozione.

Se posso passare i dati al file HTML, suppongo di poterlo estrarlo a JS da lì usando jQuery.

Si prega di avvisare. Grazie!

È stato utile?

Soluzione

È possibile utilizzare il metodo WebView stringByEvaluatingJavaScriptFromString.Ad esempio, se si dispone di una funzione JS inclusa nel tuo HTML chiamato loadData che prende data come argomento, puoi fare

nel tuo JS:

function loadData(data) {
// do something with your data
   $("#chart").show();
}
.

in RM:

data = dataFromSource
webView.stringByEvaluatingJavaScriptFromString('loadData(' + data +')')
.

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