2013-07-23 12 views
7

çalışmasını WebView'da JavaScript durur. Diğer bazı SO cevaplarını denedim ve proguard dosyama şu satırları ekledim, ama yardımcı olmadı. Sonuç, geri dönüşleri aldığım hata ayıklama sürümüdür. senin JavaScript arabirim yöntemleri @JavascriptInterface ile açıklamalı iseProguard Ben bir javascript arayüzü olan bir sınıf JSBridge (bir iç sınıfı) sahip

-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>; 
} 

cevap

17

, sen Ahh evet ben belgelerinde bu gördüm

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

onları koruyabilir, karışıklık oldu, ben mıydım düşünce paketi benim gerçek javascript arabirim sınıfım ile yerleştirin. Bu ilk kez çalıştı! – serenskye

+0

Garip bir durumum var, uygulamanızı yukarıdaki yapılandırmaları kullanarak verdim ve android 2.3.7'de çalıştı ama nexus 5'de değil (Android 4.2) – StarWars

İlgili konular