2013-07-23 4 views
7

작업에서 웹보기에서 자바 스크립트를 중지합니다. 나는 다른 몇 가지 대답을 시도하고 proguard 파일에 다음 줄을 추가했지만 도움이되지 않았다. 결과는 콜백을받는 디버그 버전입니다. 릴리스 버전 콜백을받지 않습니다. 당신의 자바 스크립트 인터페이스 방법이 @JavascriptInterface로 주석하는 경우Proguard와 내가 자바 스크립트 인터페이스 클래스 JSBridge (내부 클래스)가

-keep public class * implements com.mixcloud.player.view.JsCallback 

-keepclassmembers class * implements com.mixcloud.player.view.JsCallback { 
    <methods>; 
} 
-keep public class * implements com.mixcloud.player.view.JsCallback 

-keepattributes *Annotation* 
-keepattributes JavascriptInterface 
-keep public class com.mixcloud.player.view.JSRefreshWebView 
-keep public class com.mixcloud.player.view.JSRefreshWebView$JsBridge 
-keep public class * implements com.mixcloud.player.view.JSRefreshWebView$JsBridge 
-keepclassmembers class * implements com.mixcloud.player.view.JSRefreshWebView$JsBridge { 
    <methods>; 
} 

답변

17

, 당신이 아 그래 난 내가 문서에이를 본 것 같아요

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

로를 보존 할 수 있습니다, 혼란이 있었다, 나는 내가 줄 알았는데 내 실제 자바 스크립트 인터페이스 클래스와 패키지를 놓으십시오. 이것은 처음으로 일했습니다! – serenskye

+0

이상한 경우가 있는데 위의 구성을 사용하여 내 앱을 내 보낸 경우 Android 2.3.7에서 작동하지만 nexus 5 (Android 4.2)에서는 작동하지 않습니다. – StarWars