diff --git a/README.md b/README.md index a7c28a5..745b0ea 100644 --- a/README.md +++ b/README.md @@ -140,9 +140,22 @@ Java层方法可以返回void 或 能转为字符串的类型(如int、long、 } ### 发布时防混淆 -注意注入类中的方法名称不能被混淆,否则页面会调用失败。故发布时需在你的混淆配置文件中加入注入类的防混淆代码,如demo中的HostJsScope配置: - - -keepclassmembers class cn.pedant.SafeWebViewBridge.demo.HostJsScope{ *; } +发布时需在你的混淆配置加入像下面这样的代码,注意**返回到页面的自定义Java类以及注入到页面的接口类都要换成你项目中使用实际类名**: + + ##--------------- BEGIN: Gson防混淆 ---------- + -keepattributes *Annotation* + -keep class sun.misc.Unsafe { *; } + -keep class com.idea.fifaalarmclock.entity.*** + -keep class com.google.gson.stream.** { *; } + ##--------------- END ---------- + + ##--------------- BEGIN: 返回到页面的自定义Java对象防混淆 ---------- + -keepclassmembers class cn.pedant.SafeWebViewBridge.sample.HostJsScope$RetJavaObj{ *; } + ##--------------- END ---------- + + ##--------------- BEGIN: 注入到页面的接口类防混淆 ---------- + -keepclassmembers class cn.pedant.SafeWebViewBridge.sample.HostJsScope{ *; } + ##--------------- END ---------- ### 小心过大数字 JS中使用过大数字时,可能会导致精度丢失或者错误的数字结果,如下面: diff --git a/build.gradle b/build.gradle index f144679..a18211e 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.13.2' + classpath 'com.android.tools.build:gradle:0.14.0' } } diff --git a/library/src/main/java/cn/pedant/SafeWebViewBridge/JsCallJava.java b/library/src/main/java/cn/pedant/SafeWebViewBridge/JsCallJava.java index e41195d..b58aa12 100644 --- a/library/src/main/java/cn/pedant/SafeWebViewBridge/JsCallJava.java +++ b/library/src/main/java/cn/pedant/SafeWebViewBridge/JsCallJava.java @@ -120,7 +120,7 @@ public String call(WebView webView, String jsonStr) { // 方法匹配失败 if (currMethod == null) { - return getReturn(jsonStr, 500, "not found method(" + methodName + ") with valid parameters"); + return getReturn(jsonStr, 500, "not found method(" + sign + ") with valid parameters"); } // 数字类型细分匹配 if (numIndex > 0) { diff --git a/sample/build.gradle b/sample/build.gradle index f52e54d..da3925e 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -17,6 +17,14 @@ android { lintOptions { abortOnError false } + + buildTypes { + release { + proguardFile 'proguard-android.txt' + minifyEnabled true + shrinkResources true + } + } } dependencies {