Передача данных в 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 +')')