у меня в MainActivity:методы JavaScriptInterface не узнаваем (Android WebView)
webView.addJavascriptInterface(new JavaScriptInterface(this), "ajaxHandler");
....
public class JavaScriptInterface
{
Context mContext;
JavaScriptInterface(Context c) {
mContext = c;
}
public void DoSomething(String dataToPrint)
{
.....
}
}
Я читал, что проблема может быть ProGuard. Так я обновил файл правил Proguard:
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
-keep public class com.example.testapp.JavaScriptInterface
-keep public class * implements com.example.testapp.JavaScriptInterface
-keepclassmembers class * implements com.example.testapp.MainActivity.JavaScriptInterface{
public *;
}
Это не помогло, хотя ... в хромированной отладчик, так как я положил в консоли объект ajaxHandler и метод DoSomething, я могу видеть объект ajaxHandler, как Object {}
но он пуст, и метод DoSomething является класс undefined
спасибо, аннотации '@ JavascriptInterface' частично помогли - я вижу теперь метод в хром-отладчике, но по какой-то причине он не вызывается в коде приложения (код javascript хорош, m, используя тот же код javascript на iOS-версии приложения, и он отлично работает там.) – BVtp
изменили ваш файл proGuard.pro – Pavya
Я могу заменить ';' на 'public *;' правильно? Он все еще не работает, но я вижу метод в хром-отладчике, но он не вызывается внутри моего приложения. –
BVtp