Skip to content

Commit a8b0231

Browse files
committedNov 6, 2014
gralde到v0.14+, 添加混淆配置, 防混淆代码变更
1 parent 79642a8 commit a8b0231

File tree

4 files changed

+26
-5
lines changed

4 files changed

+26
-5
lines changed
 

‎README.md

+16-3
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,22 @@ Java层方法可以返回void 或 能转为字符串的类型(如int、long、
140140
}
141141

142142
### 发布时防混淆
143-
注意注入类中的方法名称不能被混淆,否则页面会调用失败。故发布时需在你的混淆配置文件中加入注入类的防混淆代码,如demo中的HostJsScope配置:
144-
145-
-keepclassmembers class cn.pedant.SafeWebViewBridge.demo.HostJsScope{ *; }
143+
发布时需在你的混淆配置加入像下面这样的代码,注意**返回到页面的自定义Java类以及注入到页面的接口类都要换成你项目中使用实际类名**:
144+
145+
##--------------- BEGIN: Gson防混淆 ----------
146+
-keepattributes *Annotation*
147+
-keep class sun.misc.Unsafe { *; }
148+
-keep class com.idea.fifaalarmclock.entity.***
149+
-keep class com.google.gson.stream.** { *; }
150+
##--------------- END ----------
151+
152+
##--------------- BEGIN: 返回到页面的自定义Java对象防混淆 ----------
153+
-keepclassmembers class cn.pedant.SafeWebViewBridge.sample.HostJsScope$RetJavaObj{ *; }
154+
##--------------- END ----------
155+
156+
##--------------- BEGIN: 注入到页面的接口类防混淆 ----------
157+
-keepclassmembers class cn.pedant.SafeWebViewBridge.sample.HostJsScope{ *; }
158+
##--------------- END ----------
146159

147160
### 小心过大数字
148161
JS中使用过大数字时,可能会导致精度丢失或者错误的数字结果,如下面:

‎build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ buildscript {
33
mavenCentral()
44
}
55
dependencies {
6-
classpath 'com.android.tools.build:gradle:0.13.2'
6+
classpath 'com.android.tools.build:gradle:0.14.0'
77
}
88
}
99

‎library/src/main/java/cn/pedant/SafeWebViewBridge/JsCallJava.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public String call(WebView webView, String jsonStr) {
120120

121121
// 方法匹配失败
122122
if (currMethod == null) {
123-
return getReturn(jsonStr, 500, "not found method(" + methodName + ") with valid parameters");
123+
return getReturn(jsonStr, 500, "not found method(" + sign + ") with valid parameters");
124124
}
125125
// 数字类型细分匹配
126126
if (numIndex > 0) {

‎sample/build.gradle

+8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ android {
1717
lintOptions {
1818
abortOnError false
1919
}
20+
21+
buildTypes {
22+
release {
23+
proguardFile 'proguard-android.txt'
24+
minifyEnabled true
25+
shrinkResources true
26+
}
27+
}
2028
}
2129

2230
dependencies {

0 commit comments

Comments
 (0)