package android.source.tuangou.framework.web.bridges; import android.os.Handler; import android.os.Message; import android.source.tuangou.framework.ServiceManager; import android.source.tuangou.framework.net.NetworkService; import android.source.tuangou.framework.util.StringUtil; import android.source.tuangou.framework.web.ScriptBridge; import android.source.tuangou.framework.web.WebActivity; public class NetBridge extends ScriptBridge { String err404; String err500; private NetworkService net; public NetBridge(){ err500 = "'服务器发生错误!'"; err404 = "'没有找到页面。。。'"; NetworkService networkservice = ServiceManager.getNetworkService(); net = networkservice; } //获取网络数据 public void get(final String id, String url, final String dataType){ System.out.println("javascript call java: NetBridge get url = "+url+" id = "+id+" dataType = "+dataType); final WebActivity ctx = getContext(); HandlerGet mHandlerGet = new HandlerGet(dataType,id,ctx); //获取网络数据 net.get(url, mHandlerGet); } public String getSync(String s) { return net.getSync(s); } public void post(final String id, String s, String s1, final String dataType) { final WebActivity ctx = getContext(); Handler2 mHandler2 = new Handler2(dataType,id,ctx); java.util.Map map = StringUtil.parseHttpParamsToHash(s1); NetworkService.sharedInstance().post(s, map, mHandler2); } public String postSync(String s, String s1) { java.util.Map map = StringUtil.parseHttpParamsToHash(s1); return net.postSync(s, map); } /* * http通信get请求的handler消息处理 * */ private class HandlerGet extends Handler{ final NetBridge this$0; final WebActivity ctx; final String dataType; final String id; public void handleMessage(Message message){ String s1; int i; String s2; WebActivity webactivity; String as[]; StringBuilder stringbuilder1; String s3; String s4; String s5; //根据消息来判断是否获取数据成功 if (message.getData().containsKey("error")){//获取数据错误 StringBuilder stringbuilder = (new StringBuilder()).append("'"); String s = message.getData().getString("error"); s1 = stringbuilder.append(s).append("'").toString(); } else//获取数据成功 { s1 = message.getData().getString("responseText").replaceAll("\n", "").replaceAll("'", "\\'"); System.out.println("HandlerGet responseText = "+s1); } i = message.getData().getInt("status"); s2 = dataType; if (!"json".equalsIgnoreCase(s2)){ s1 = (new StringBuilder()).append("'").append(s1).append("'").toString(); } if (i >= 500 && i < 600){ s1 = err500; } if (i >= 400 && i < 500){ s1 = err404; } as = new String[3]; stringbuilder1 = (new StringBuilder()).append("'"); s3 = id; s4 = stringbuilder1.append(s3).append("'").toString(); as[0] = s4; s5 = (new StringBuilder()).append("").append(i).toString(); as[1] = s5; as[2] = s1; //调用javasscrpit中ajax_finish ctx.callJSFunc("_on_ajax_finished", as); } HandlerGet(String dataType,String id,WebActivity webActivity){ super(); this$0 = NetBridge.this; this.dataType = dataType; ctx = webActivity; this.id = id; } } private class Handler2 extends Handler { final NetBridge this$0; final WebActivity ctx; final String dataType; final String id; public void handleMessage(Message message){ String s1; int i; String s2; WebActivity webactivity; String as[]; StringBuilder stringbuilder1; String s3; String s4; String s5; if (message.getData().containsKey("error")) { StringBuilder stringbuilder = (new StringBuilder()).append("'"); String s = message.getData().getString("error"); s1 = stringbuilder.append(s).append("'").toString(); } else { s1 = message.getData().getString("responseText").replaceAll("\n", "").replaceAll("'", "\\'"); } i = message.getData().getInt("status"); s2 = dataType; if (!"json".equalsIgnoreCase(s2)) s1 = (new StringBuilder()).append("'").append(s1).append("'").toString(); if (i >= 500 && i < 600) s1 = err500; if (i >= 400 && i < 500) s1 = err404; webactivity = ctx; as = new String[3]; stringbuilder1 = (new StringBuilder()).append("'"); s3 = id; s4 = stringbuilder1.append(s3).append("'").toString(); as[0] = s4; s5 = (new StringBuilder()).append("").append(i).toString(); as[1] = s5; as[2] = s1; webactivity.callJSFunc("_on_ajax_finished", as); } Handler2(String dataType,String id,WebActivity webActivity){ super(); this$0 = NetBridge.this; this.dataType = dataType; ctx = webActivity; this.id = id; } } }