2016-03-26 34 views
2

Webview.loadUrl öğesini hata ayıklama ortamında aradığımda, düzgün çalışıyor. Ama imzalı APK'da webview.loadUrl dediğimde, çağrılmaz. Sebebi ne olabilir? Eğer appproguard-rules.pro javascript çalışması için bu kuralı uygulayabilirsiniz: -webview.loadUrl düzgün çalışıyor. Ancak imzalı bir APK oluşturduğumda, işe yaramıyor.

Burada uygulayabileceğiniz iki yaklaşım vardır
webview.loadUrl("javascript:window.HTMLOUT.processHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 
+0

build.gradle minifyEnabled false kontrol edebilirsiniz, bu doğru mu? – Shishram

+0

@shishram true – Anirudh

+0

'u yanlış yapmamak ya da proguard'ınız için kurallar yazmanız yeterlidir. – Shishram

cevap

2

:

Yaklaşım 1

Aşağıda benim kod parçacığı olduğunu.

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

proguard-rules.pro

#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 
# public *; 
#} 

Yaklaşım 2'den de bu uncommenting deneyin: - Ne o yardımcı olur umarım senin build.gradleminifyEnabled false

yapabilirsiniz!

+0

Çalıştırdığımda küçültme etkinleştirilmiş. Ancak uygulama boyutu artıyor. Bu yüzden bu kuralı, proke -keepclassmembers class * {@ android.webkit.JavascriptInterface ; } ve minifyEnabled değerini doğru yaptı. Ama işe yaramıyor. Başka yolu var mı? – Anirudh

+0

düzenlemeyi kontrol edin ve deneyin. ama proguard'ın diğer işlevleri/kütüphaneleri veya diğer kodları kırmadığından emin olun. – Shishram

İlgili konular