Skip to content

Commit f1a32a3

Browse files
author
niuxiaowei
committed
把Param注解中的isNeedConvert属性去掉;传递的对象若是JsonObject不能直接存取的,直接通过发射把该对象进行转化为json或从json转化为该对象
1 parent 975125d commit f1a32a3

File tree

11 files changed

+227
-91
lines changed

11 files changed

+227
-91
lines changed

app/app-release.apk

1.47 MB
Binary file not shown.

app/build.gradle

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,23 @@ android {
1111
versionCode 1
1212
versionName "1.0"
1313
}
14+
15+
signingConfigs {
16+
config {
17+
keyAlias 'SimpleJavaJs'
18+
keyPassword 'simple'
19+
storeFile file('simple.jks')
20+
storePassword 'simple'
21+
}
22+
23+
}
24+
1425
buildTypes {
1526
release {
1627
minifyEnabled false
28+
signingConfig signingConfigs.config
29+
manifestPlaceholders = [APP_NAME: "SimpleJavaJs_release"]
30+
1731
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
1832
}
1933
}

app/simple.jks

2.03 KB
Binary file not shown.

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest package="com.bridge"
3+
xmlns:tools="http://schemas.android.com/tools"
34
xmlns:android="http://schemas.android.com/apk/res/android">
45

56
<application
67
android:allowBackup="true"
78
android:icon="@mipmap/ic_launcher"
8-
android:label="@string/app_name"
9+
android:label="${APP_NAME}"
910
android:supportsRtl="true"
11+
tools:replace="android:label"
1012
android:theme="@style/AppTheme">
1113
<activity
1214
android:name=".view.MainActivity"

app/src/main/java/com/bridge/view/IInvokeJS.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ public static class City{
2828
void exam(@Param("test") String testContent, @Param("id") int id,@ParamCallback IJavaCallback2JS iJavaCallback2JS);
2929

3030
@InvokeJSInterface("exam1")
31-
void exam1(@Param(needConvert = true) City city, @ParamCallback IJavaCallback2JS iJavaCallback2JS);
31+
void exam1(@Param City city, @ParamCallback IJavaCallback2JS iJavaCallback2JS);
3232

3333
@InvokeJSInterface("exam2")
34-
void exam2(@Param(needConvert = true) City city, @Param("contry") String contry,@ParamCallback IJavaCallback2JS iJavaCallback2JS);
34+
void exam2(@Param City city, @Param("contry") String contry,@ParamCallback IJavaCallback2JS iJavaCallback2JS);
3535

3636
@InvokeJSInterface("exam3")
37-
void exam3(@Param(value = "city",needConvert = true) City city, @Param("contry") String contry,@ParamCallback IJavaCallback2JS iJavaCallback2JS);
37+
void exam3(@Param(value = "city") City city, @Param("contry") String contry,@ParamCallback IJavaCallback2JS iJavaCallback2JS);
3838

3939
@InvokeJSInterface("exam4")
4040
void exam4(@ParamCallback IJavaCallback2JS iJavaCallback2JS);

app/src/main/java/com/bridge/view/JavaInterfaces4JS.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,62 +46,62 @@ public Person(String name, int age) {
4646
* 发送响应状态的接口
4747
*/
4848
public interface IResponseStatusCallback {
49-
void callbackResponse(@ParamResponseStatus("status") int status, @ParamResponseStatus("msg") String msg);
49+
void callbackResponse(@ParamResponseStatus ResponseStatus responseStatus);
5050
}
5151

5252
public interface ITestJSCallback extends IResponseStatusCallback {
53-
void callback(@ParamResponseStatus("status") int status, @ParamResponseStatus("msg") String msg, @Param("content") String content);
53+
void callback(@ParamResponseStatus ResponseStatus responseStatus, @Param("content") String content);
5454
}
5555

5656
public interface ITest1JSCallback extends IResponseStatusCallback {
57-
void callback(@ParamResponseStatus("status") int status, @ParamResponseStatus("msg") String msg, @Param(needConvert = true) Person person);
57+
void callback(@ParamResponseStatus ResponseStatus responseStatus, @Param Person person);
5858
}
5959

6060
@JavaInterface4JS("test")
6161
public void test(@Param("msg") String msg, @ParamCallback ITestJSCallback jsCallback) {
6262
mWebViewFragment.setResult("js传递数据: " + msg);
63-
jsCallback.callbackResponse(-1, "错误");
63+
jsCallback.callbackResponse(ResponseStatus.FAILED);
6464
}
6565

6666

6767

6868
@JavaInterface4JS("test1")
69-
public void test(@Param(needConvert = true) Person personInfo, @ParamCallback ITest1JSCallback jsCallback) {
69+
public void test(@Param Person personInfo, @ParamCallback ITest1JSCallback jsCallback) {
7070

7171
if (personInfo != null) {
7272
mWebViewFragment.setResult("native的test1接口被调用,js传递数据: " + "name=" + personInfo.name + " age=" + personInfo.age);
7373

7474
}
75-
jsCallback.callback(1, "ok", new Person("niuxiaowei", 30));
75+
jsCallback.callback(ResponseStatus.OK, new Person("niuxiaowei", 30));
7676
}
7777

7878

7979
@JavaInterface4JS("test2")
80-
public void test2(@Param(value = "person", needConvert = true) Person personInfo, @ParamCallback ITest1JSCallback jsCallback) {
80+
public void test2(@Param(value = "person") Person personInfo, @ParamCallback ITest1JSCallback jsCallback) {
8181

8282
if (personInfo != null) {
8383
mWebViewFragment.setResult("native的test2接口被调用,js传递数据: " + "name=" + personInfo.name + " age=" + personInfo.age);
8484

8585
}
86-
jsCallback.callback(1, "ok", new Person("niuxiaowei", 30));
86+
jsCallback.callback(ResponseStatus.OK, new Person("niuxiaowei", 30));
8787
}
8888

8989
@JavaInterface4JS("test3")
90-
public void test3(@Param("jiguan") String jiguan, @Param(value = "person", needConvert = true) Person personInfo, @ParamCallback ITest1JSCallback jsCallback) {
90+
public void test3(@Param("jiguan") String jiguan, @Param(value = "person") Person personInfo, @ParamCallback ITest1JSCallback jsCallback) {
9191

9292
if (personInfo != null) {
9393
mWebViewFragment.setResult("native的test3接口被调用,js传递的数据: " + "jiguan=" + jiguan + " name=" + personInfo.name + " age=" + personInfo.age);
9494

9595
}
96-
jsCallback.callback(1, "ok", new Person("niuxiaowei", 30));
96+
jsCallback.callback(ResponseStatus.OK, new Person("niuxiaowei", 30));
9797
}
9898

9999
@JavaInterface4JS("test4")
100100
public void test3(@ParamCallback IResponseStatusCallback jsCallback) {
101101

102102
mWebViewFragment.setResult("native的test4无参接口被调用");
103103

104-
jsCallback.callbackResponse(1, "ok");
104+
jsCallback.callbackResponse(ResponseStatus.OK);
105105
}
106106

107107

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.bridge.view;
2+
3+
/**
4+
* java发送给js的响应状态
5+
*
6+
* Created by niuxiaowei on 16/10/21.
7+
*/
8+
public enum ResponseStatus {
9+
10+
OK(1,"ok"), FAILED(0,"failed"), FAILED_METHOD_NOT_DEFINED(-1,"method not defined"), FAILED_PARAM_ERROR(-2,"param error")
11+
, FAILED_TIME_OUT(-3,"time out"), FAILED_USER_CANCEL(-4,"user cancel");
12+
13+
14+
private int status;
15+
16+
private String msg;
17+
18+
ResponseStatus(int status, String msg) {
19+
this.status = status;
20+
this.msg = msg;
21+
}
22+
23+
public int getStatus() {
24+
return status;
25+
}
26+
27+
public String getMsg() {
28+
return msg;
29+
}
30+
}

app/src/main/java/com/bridge/view/fragment/WebViewFragment.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public void onClick(View v) {
133133
invokeJS.exam1(city, new IJavaCallback2JS() {
134134

135135
@JavaCallback4JS
136-
public void test(@Param(needConvert = true) IInvokeJS.City city1) {
136+
public void test(@Param IInvokeJS.City city1) {
137137
mResultView.setText("js返回信息: cityName="+city1.cityName+" cityProvince="+city1.cityProvince);
138138
}
139139

@@ -152,7 +152,7 @@ public void onClick(View v) {
152152
invokeJS.exam2(city,"中国", new IJavaCallback2JS() {
153153

154154
@JavaCallback4JS
155-
public void test(@Param(value = "city",needConvert = true) IInvokeJS.City city1) {
155+
public void test(@Param(value = "city") IInvokeJS.City city1) {
156156
mResultView.setText("js返回信息: cityName="+city1.cityName+" cityProvince="+city1.cityProvince);
157157
}
158158

@@ -171,7 +171,7 @@ public void onClick(View v) {
171171
invokeJS.exam3(city,"中国", new IJavaCallback2JS() {
172172

173173
@JavaCallback4JS
174-
public void test(@Param(needConvert = true) IInvokeJS.City city1) {
174+
public void test(@Param IInvokeJS.City city1) {
175175
mResultView.setText("js返回信息: cityName="+city1.cityName+" cityProvince="+city1.cityProvince);
176176
}
177177

0 commit comments

Comments
 (0)