Как стать автором
Обновить

Комментарии 2

И это еще не все проблемы с WebView. Я сейчас просто пишу статью об эмуляции IPTV приставок и Smart TV, там тоже рассматриваю некоторые, в том числе описанные здесь, ошибки.
В частности, в некоторых случаях (крайне редко, но происходит, обычно на 4.2 и ниже) Java-объект не инжектируется. Т.е. вызов mWebView.addJavascriptInterface(new MyJavaInterface(), «test»);
выполняется, но
<input value=«Click» onclick=«javascript:alert(test.getGreeting());»/>
не работает. Почему — так и не выяснил.

И еще на счет маппинга типов JavaScript->Java. Это не ошибка, просто дополнение к уже сказанному. Любой простой тип JavaScript может маппиться на String в Java при передаче в функцию. Т.е. вызов из JavaScript функции
test.testMe(1);
вызовет метод
@JavascriptInterface
public void testMe(String str) {}
(где в str будет «1») при отсутствии более подходящего метода.
Если появилась необходимость в WebView, то надо проанализировать, может лучше написать полностью на Cordova. Хотя бы избавиться от проблем инжектирования
Зарегистрируйтесь на Хабре, чтобы оставить комментарий