Передача данных в Javascript с веб-экрана ProMotion

Я создаю приложение для iOS, используя замечательную платформу RubyMotion и стек гем ProMotion.

Я хочу отобразить график в PM::WebScreen на моем iPhone. Я ссылаюсь на файл HTML в методе содержимого и имею (1) файл HTML, (2) мой файл пользовательских методов JS, (3) мою библиотеку диаграмм JS (HighCharts) и (4) jQuery в моей папке ресурсов. Все это делает хорошо.

Я могу создать массив данных для диаграммы в моем файле PM::WebScreen (я получаю данные от вызова API к внешнему источнику.) Диаграмма отрисовывается нормально при вводе статических данных.

Эта проблема

Я хочу передать массив данных в свой пользовательский файл JS, чтобы он нарисовал диаграмму с динамическими данными. Как я могу это сделать?

Я предпочел бы не делать вызов ajax из моего JS, потому что я могу захотеть использовать этот массив в другом месте моего кода RubyMotion/ProMotion.

Если я смогу передать данные в файл HTML, я полагаю, что смог бы извлечь их из JS оттуда с помощью jQuery.

Пожалуйста, порекомендуйте. Спасибо!

1 ответ

Решение

Вы можете использовать метод веб-просмотра stringByEvaluatingJavaScriptFromString, Например, если у вас есть функция JS, включенная в ваш HTML под названием loadData что взять data в качестве аргумента вы можете сделать

В вашем JS:

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

В рм:

data = dataFromSource
webView.stringByEvaluatingJavaScriptFromString('loadData(' + data +')')
Другие вопросы по тегам