웹뷰에서 callback 사용시 proguard 적용하기


JavascriptCallback.java

public interface JavascriptCallback {

public void WebCallBack();

public void WebCallback(String a, String b, String c);

}


인터페이스 하나 만들고


웹뷰

WebView.java 에서는 

wvContents.addJavascriptInterface(new JavascriptInterface(), "Event");

public class JavascriptInterface implements JavascriptCallback {

public void WebCallBack() {

// TODO

}

public void WebCallBack(String a, String b, String c) {

// TODO

}

}

proguard 에서는

-keep public class YOURPACKAGENAMEHERE.JavascriptCallback
-keep public class * implements YOURPACKAGENAMEHERE.JavascriptCallback
-keepclassmembers class * implements YOURPACKAGENAMEHERE.JavascriptCallback {
    <methods>;
}


http://stackoverflow.com/questions/7424510/uncaught-typeerror-when-using-a-javascriptinterface



프로가드 멀고도 험하게 적용했다. 


호출은

window.Event.WebCallBack();



Posted by [czar]
,