Android WebView JavaScript обратные вызовы не работают в APK без Proguard
Я разоблачаю @JavascriptInterface
обратные вызовы для WebView, которые прекрасно работают при отладке приложения через Android Studio, однако, если приложение установлено через APK, обратные вызовы JavaScript не работают с:
"Uncaught TypeError: NativeApp.onProgress не является функцией"
Я знаю, что неправильные правила Proguard могут привести к этой проблеме, но в этом случае проект не использует Proguard, и проблема возникает с отладкой и выпуском APKS.
Если я проверяю APK, методы присутствуют.
public class MyServiceWithEmbeddedWebView {
...
public createWebview() {
...
webView.addJavascriptInterface(this, "NativeApp");
...
}
@JavascriptInterface
void onProgress(int loaded, int total) {
...
}
...
}
Есть идеи?
1 ответ
Решение
Изменение области действия @JavascriptInterface
методы для public
решил проблему.
Так что это работает для установки APK:
@JavascriptInterface
public void onProgress(int loaded, int total) {
// this is public
}
Это НЕ работает для установки APK, но работает как чемпион при развертывании отладчиком Android Studio:
@JavascriptInterface
void onProgress(int loaded, int total) {
// this is NOT public
}
Как раздражает!