Цель: я хотел бы взять строку JSON и передать ее в функцию JavaScript, которая находится в Android WebView.
Что я делаю: мне нужно получить данные из базы данных SQLite для Android, включитеэто в JSON, передать его в браузер и использовать диаграмму для отображения данных.Я выполнил все это, за исключением того, что не могу понять, как передать JSON в функцию JavaScript / в браузер.
Так что здесь у меня есть функция js в моем html-заголовке:
<script type="text/javascript">
function returnData(json) {
//Do something in here with the JSON String
}
</script>
И затем в моем Java у меня есть интерфейс javascript, который я буду вызывать для выполнения функции «returnData» JS.
final class DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
json = "[{ country: \\\"USA\\\", visits: 4252 },{ country: \\\"China\\\", visits: 1882 },{ country: \\\"Japan\\\", visits: 1809 }]";
mWebView.loadUrl("javascript:returnData("+json+")");
}
});
}
}
Теперь, если я ПРОСТО хочу выполнить функцию «returnData», она получаетисполнено просто отлично.(Работает ниже)
mWebView.loadUrl("javascript:returnData()");
Но если я попытаюсь вставить строку в функцию (как показано ниже), она просто «не справится» ... к сожалению, у меня нет большого опыта работы с JS, и поэтомуЯ понятия не имею, почему никогда не вызывается функция JS.
mWebView.loadUrl("javascript:returnData("+json+")");
Я ищу ЛЮБОЙ способ вставить данные в функцию скрипта Java, или где-нибудь в DOM я могу хранить данные (я полагаю)откуда функция JS может получать данные.
Любая помощь будет признательна, спасибо.