88import android .net .Uri ;
99import android .os .Bundle ;
1010import android .support .annotation .NonNull ;
11+ import android .support .annotation .Nullable ;
1112import android .text .TextUtils ;
1213import android .webkit .JavascriptInterface ;
1314
2627import cn .com .venvy .common .bean .PlatformUserInfo ;
2728import cn .com .venvy .common .bean .WidgetInfo ;
2829import 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 ;
2936import cn .com .venvy .common .interf .ICallJsFunction ;
3037import cn .com .venvy .common .interf .IMediaControlListener ;
3138import cn .com .venvy .common .interf .IPlatformLoginInterface ;
3845import cn .com .venvy .common .utils .VenvyDeviceUtil ;
3946import cn .com .venvy .common .utils .VenvyLog ;
4047import cn .com .venvy .common .utils .VenvyMD5Util ;
48+ import cn .com .venvy .common .utils .VenvyMapUtil ;
4149import cn .com .venvy .common .utils .VenvyPreferenceHelper ;
4250import 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