Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Proguard mess Javascript Funciones de interfaz al orientar SDK en Android Manifiesto por encima de 17

Tengo un Webview personalizado en mi proyecto android como se muestra a continuación:

public class MyWebView extends WebView { public MyWebView(Context context) { super(context); } public class JsObject { @JavascriptInterface public void show() { //... } @JavascriptInterface public void hide() { //.... } } 

Que incluye un JavascriptInterface que utilizo para comunicar desde el lado de JavaScript al lado de Android.

En el AndroidManifest tuve la siguiente

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> 

En el proyecto usé proguard que declaró:

 -keepattributes JavascriptInterface -keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; } 

Y todo estaba funcionando bien.

Sin embargo, cuando he cambiado mi AndroidManifest a android:targetSdkVersion=18 o 19 y prueba en dispositivos con 18 y más, proguard parece que de alguna manera los métodos de JavaScript que no son accesibles ya.

Si vuelvo a 16 o cualquier cosa menos de 17 todo funciona bien. Además, esto sólo ocurre con proguard. Si no utilizo proguard todo funciona bien incluso con android:targetSdkVersion=18 o 19. ¿Puede alguien ayudar a hacer que funcione cuando la orientación en el manifiesto Android> 17?

  • Android Cómo mostrar vínculos en la vista web de esta manera?
  • No se muestra la versión de WebView UTF-8 de Android
  • Android WebView desplazamiento suave
  • Guardar el estado de un WebView y volver a cargar la posición
  • Flash dentro de Android WebView - ¿Cómo configuro la pantalla completa de forma automática?
  • Vista web de Android con GSAP: intenta eliminar la referencia local que no sea JNI,
  • Cómo forzar el teclado con números en el sitio web para móviles en Android
  • Después de un tiempo de uso, mi aplicación se congela durante el desplazamiento de un WebView, diciendo "no se pudo bloquear la superficie"
  • 3 Solutions collect form web for “Proguard mess Javascript Funciones de interfaz al orientar SDK en Android Manifiesto por encima de 17”

    Copio mi respuesta de este tema para usted: https://stackoverflow.com/a/19994873/1735499

    Y, si está usando Proguard, recuerde agregar esto

     -keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; } -keepattributes JavascriptInterface -keep public class com.mypackage.MyClass$MyJavaScriptInterface -keep public class * implements com.mypackage.MyClass$MyJavaScriptInterface -keepclassmembers class com.mypackage.MyClass$MyJavaScriptInterface { <methods>; } 

    Si todavía no está bien, agregue esto

     -keepattributes *Annotation* 

    Nota: su MyJavaScriptInterface debe ser clase pública

    Ref #: Error de la interfaz de Android Proguard Javascript

    Br,

    Franco

    Estas 4 líneas suelen ser suficientes – y no hay necesidad de hacer la interfaz pública.

     -keepattributes JavascriptInterface -keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; } 

    En mi caso, sólo:

     -keepclassmembers class com.mypackage.MyJavaScriptInterface { public *; } -keepattributes *Annotation* 

    fue suficiente !

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.