Я пытаюсь извлечь объекты и списки, созданные в JavaScript, чтобы использовать их внутри приложения Android. (Мне удалось извлечь отдельные значения.) Я использую метод addJavaScriptInterface для реализации этого.
Внутри test.html у меня есть следующий код скрипта:
(Я пробовал без ".slice ()", но тоже не сработало)
function getList(){
var categoryTotals = {};
categoryTotals[0] = 1;
categoryTotals[1] = 2;
categoryTotals[2] = 3;
return categoryTotals.slice();
}
И метод onPageFinished в WebViewClient содержит следующий код:
mWebView.loadUrl("javascript:window.HTMLOUT.callAndroidList(getList());");
Мой JavaScriptInterface имеет следующую функцию:
public void callAndroidList(final List list){
myList = list;
Log.d("ListTest" , "LIST 1 >>>>>>>>>>>>> " + ListTest.myList.get(0));
Log.d("ListTest" , "LIST 2 >>>>>>>>>>>>> " + ListTest.myList.get(1));
Log.d("ListTest" , "LIST 3 >>>>>>>>>>>>> " + ListTest.myList.get(2));
}
Когда я запускаю этот код, я получаю NullPointerException, говоря, что параметр callAndroidList, list, является нулевым. Я не особо разбирался с JavaScript, так что я думаю, что возможно это связано с созданием и удалением экземпляров объектов JavaScript.
Не могли бы вы мне помочь? Заранее спасибо.