Skip to content

Commit 4749016

Browse files
author
lucas
committed
Merge branch 'dev_2.9.0' into dev_lucas
2 parents c8e536a + f5f732f commit 4749016

File tree

2 files changed

+97
-0
lines changed

2 files changed

+97
-0
lines changed

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/utils/VenvyMapUtil.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import org.json.JSONObject;
44

5+
import java.util.HashMap;
6+
import java.util.Iterator;
57
import java.util.Map;
68

79
/**
@@ -22,4 +24,19 @@ public static <T> String mapToJson(Map<String, T> map) {
2224
return jsonObject.toString();
2325
}
2426

27+
public static Map<String, String> jsonToMap(String json) {
28+
HashMap<String, String> data = new HashMap<>();
29+
try {
30+
JSONObject jsonObject = new JSONObject(json);
31+
Iterator it = jsonObject.keys();
32+
while (it.hasNext()) {
33+
String key = String.valueOf(it.next());
34+
String value = jsonObject.optString(key);
35+
data.put(key, value);
36+
}
37+
} catch (Exception e) {
38+
e.printStackTrace();
39+
}
40+
return data;
41+
}
2542
}

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/webview/JsBridge.java

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import android.net.Uri;
99
import android.os.Bundle;
1010
import android.support.annotation.NonNull;
11+
import android.support.annotation.Nullable;
1112
import android.text.TextUtils;
1213
import android.webkit.JavascriptInterface;
1314

@@ -26,6 +27,12 @@
2627
import cn.com.venvy.common.bean.PlatformUserInfo;
2728
import cn.com.venvy.common.bean.WidgetInfo;
2829
import cn.com.venvy.common.exception.LoginException;
30+
import cn.com.venvy.common.http.HttpRequest;
31+
import cn.com.venvy.common.http.RequestFactory;
32+
import cn.com.venvy.common.http.base.BaseRequestConnect;
33+
import cn.com.venvy.common.http.base.IRequestHandler;
34+
import cn.com.venvy.common.http.base.IResponse;
35+
import cn.com.venvy.common.http.base.Request;
2936
import cn.com.venvy.common.interf.ICallJsFunction;
3037
import cn.com.venvy.common.interf.IMediaControlListener;
3138
import cn.com.venvy.common.interf.IPlatformLoginInterface;
@@ -38,6 +45,7 @@
3845
import cn.com.venvy.common.utils.VenvyDeviceUtil;
3946
import cn.com.venvy.common.utils.VenvyLog;
4047
import cn.com.venvy.common.utils.VenvyMD5Util;
48+
import cn.com.venvy.common.utils.VenvyMapUtil;
4149
import cn.com.venvy.common.utils.VenvyPreferenceHelper;
4250
import cn.com.venvy.common.utils.VenvyUIUtil;
4351

@@ -51,6 +59,8 @@ public class JsBridge implements VenvyObserver {
5159
protected IPlatformLoginInterface mPlatformLoginInterface;
5260
private Map<String, List<String>> jsMap = new HashMap<>();
5361
private ICallJsFunction mCallJsFunction;
62+
//网络请求类
63+
private BaseRequestConnect mBaseRequestConnect;
5464
protected Context mContext;
5565
protected String ssid = System.currentTimeMillis() + "";
5666
private WebViewCloseListener mWebViewCloseListener;
@@ -98,6 +108,15 @@ public void setPlatformLoginInterface(IPlatformLoginInterface platformLoginInter
98108
mPlatformLoginInterface = platformLoginInterface;
99109
}
100110

111+
/***
112+
* 获取网络RequestConnect
113+
* @return
114+
*/
115+
@NonNull
116+
public BaseRequestConnect getRequestConnect() {
117+
return mBaseRequestConnect;
118+
}
119+
101120
@JavascriptInterface
102121
public void commonData(String jsParams) {
103122
int screenHeight = VenvyUIUtil.getScreenHeight(mContext);
@@ -125,6 +144,67 @@ public void commonData(String jsParams) {
125144
callJsFunction(obj.toString(), jsParams);
126145
}
127146

147+
/***
148+
* 网络请求
149+
* @param jsParams
150+
*/
151+
@JavascriptInterface
152+
public void network(final String jsParams) {
153+
if (mPlatform == null) {
154+
return;
155+
}
156+
if (TextUtils.isEmpty(jsParams)) {
157+
return;
158+
}
159+
try {
160+
JSONObject jsJsonObj = new JSONObject(jsParams);
161+
String url = jsJsonObj.optString("url");
162+
String method = jsJsonObj.optString("method");
163+
Map<String, String> param = VenvyMapUtil.jsonToMap(jsJsonObj.optString("param"));
164+
if (TextUtils.isEmpty(url)) {
165+
return;
166+
}
167+
if (mBaseRequestConnect == null) {
168+
mBaseRequestConnect = RequestFactory.initConnect(mPlatform);
169+
}
170+
Request request;
171+
if (TextUtils.equals(method, "post")) {
172+
request = HttpRequest.post(url, param);
173+
} else {
174+
request = HttpRequest.get(url, param);
175+
}
176+
mBaseRequestConnect.connect(request, new IRequestHandler() {
177+
@Override
178+
public void requestFinish(Request request, IResponse response) {
179+
if (response.isSuccess()) {
180+
String result = response.getResult();
181+
callJsFunction(result, jsParams);
182+
} else {
183+
requestError(request, new Exception("http not successful"));
184+
}
185+
}
186+
187+
@Override
188+
public void requestError(Request request, @Nullable Exception e) {
189+
callJsFunction(e != null && e.getMessage() != null ? e.getMessage() : "unkown error", jsParams);
190+
}
191+
192+
@Override
193+
public void startRequest(Request request) {
194+
195+
}
196+
197+
@Override
198+
public void requestProgress(Request request, int progress) {
199+
200+
}
201+
});
202+
} catch (Exception e) {
203+
e.printStackTrace();
204+
}
205+
206+
}
207+
128208
@JavascriptInterface
129209
public void openUrl(String jsParams) {
130210
try {

0 commit comments

Comments
 (0)