Я пишу приложение для Android, в котором мне нужно перенести много целых чисел из кода Java моего приложения в Javascript в WebView , чтобы они отображались пользователю.
Я вижу два способа передачи этой строки:
- Использование loadUrl в WebView:
С массивом data
, содержащим целые, я использовал бы этот код для передачи их в мое веб-представление.
webView.loadUrl("javascript:loadData(" + data[0] + ");"); // data[0] is an int
webView.loadUrl("javascript:loadData(" + data[1] + ");"); // data[1] is an int
// etc.
- Использование JavascriptInterface :
У меня есть класс Java, который содержит массив data
и предоставляет метод с именем getData(int x)
, который просто возвращает значение data[x]
. Я могу объявить JavascriptInterface, чтобы метод был виден моему коду Javascript, который затем может вызвать его и получить данные:
webView.addJavascriptInterface(backend, "dataBackend");
У меня такой вопрос: какой подход быстрее? Я представляю, что если у меня будет много элементов в data
, выполнение большого количества вызовов loadUrl()
будет медленным и ошибочным. Но работает ли альтернатива быстрее?