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 ;
@@ -125,6 +135,67 @@ public void commonData(String jsParams) {
125135 callJsFunction (obj .toString (), jsParams );
126136 }
127137
138+ /***
139+ * 网络请求
140+ * @param jsParams
141+ */
142+ @ JavascriptInterface
143+ public void network (final String jsParams ) {
144+ if (mPlatform == null ) {
145+ return ;
146+ }
147+ if (TextUtils .isEmpty (jsParams )) {
148+ return ;
149+ }
150+ try {
151+ JSONObject jsJsonObj = new JSONObject (jsParams );
152+ String url = jsJsonObj .optString ("url" );
153+ String method = jsJsonObj .optString ("method" );
154+ Map <String , String > param = VenvyMapUtil .jsonToMap (jsJsonObj .optString ("param" ));
155+ if (TextUtils .isEmpty (url )) {
156+ return ;
157+ }
158+ if (mBaseRequestConnect == null ) {
159+ mBaseRequestConnect = RequestFactory .initConnect (mPlatform );
160+ }
161+ Request request ;
162+ if (TextUtils .equals (method , "post" )) {
163+ request = HttpRequest .post (url , param );
164+ } else {
165+ request = HttpRequest .get (url , param );
166+ }
167+ mBaseRequestConnect .connect (request , new IRequestHandler () {
168+ @ Override
169+ public void requestFinish (Request request , IResponse response ) {
170+ if (response .isSuccess ()) {
171+ String result = response .getResult ();
172+ callJsFunction (result , jsParams );
173+ } else {
174+ requestError (request , new Exception ("http not successful" ));
175+ }
176+ }
177+
178+ @ Override
179+ public void requestError (Request request , @ Nullable Exception e ) {
180+ callJsFunction (e != null && e .getMessage () != null ? e .getMessage () : "unkown error" , jsParams );
181+ }
182+
183+ @ Override
184+ public void startRequest (Request request ) {
185+
186+ }
187+
188+ @ Override
189+ public void requestProgress (Request request , int progress ) {
190+
191+ }
192+ });
193+ } catch (Exception e ) {
194+ e .printStackTrace ();
195+ }
196+
197+ }
198+
128199 @ JavascriptInterface
129200 public void openUrl (String jsParams ) {
130201 try {
0 commit comments