У меня проблема с Android 4.2 с proguard.JavascriptInterface не работает с proguard на Android 4.2
В основном я использую JavascriptInterface на WebView так:
public class MyJavascriptInterface {
public void doSomething() { ... }
}
Теперь я понимаю, что когда ProGuard запутывает код переименовывает имя класса и имя метода, поэтому он не может быть вызван из Javascript больше. Вот почему я должен добавить это к Proguard конфигурации:
-keepclassmembers class mypackage.MyJavascriptInterface {
public void doSomething();
}
Когда я поставил цель SDK 17 (Android 4.2) Я должен добавить @JavascriptInterface
аннотацию к моему методу Javascript интерфейса по соображениям безопасности:
@JavascriptInterface
public class MyJavascriptInterface {
public void doSomething() { ... }
}
Теперь проблема в том, что это не работает, если proguard включен (doSomething не вызывается, как будто класс все еще переименован на этапе обфускации). Если я отключу proguard, код работает нормально.
Как я могу сделать эту работу с целевым sdk 17?
Для меня функция интерфейса javascript не называется, пожалуйста, скажите мне, что мне делать ??? – Ravi
Не могу сказать с этим описанием вашей проблемы ... Вы могли бы открыть новый вопрос и подробно описать свою установку, возможно, разместите соответствующий код андроида и javascript;) – Tim
http://stackoverflow.com/a/17637530/ 9636 и http://stackoverflow.com/a/28034176/9636 - более обобщенные ответы. –