Что быстрее в Android: отправка данных в WebView с помощью loadUrl или получение их из WebView с помощью JavascriptInterface? - PullRequest
3 голосов
/ 15 марта 2012

Я пишу приложение для 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() будет медленным и ошибочным. Но работает ли альтернатива быстрее?

1 Ответ

0 голосов
/ 29 мая 2012

В общем случае loadUrl и jsInterface не должны передавать большие объемы данных.Но вы можете попробовать построить одну большую строку из этих целых чисел и использовать ее вместо этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...