package com.tejia.lijin.app.util.web; import android.app.Activity; import android.content.Intent; import android.webkit.JavascriptInterface; import android.widget.Toast; import com.alibaba.baichuan.android.trade.model.AlibcShowParams; import com.alibaba.baichuan.android.trade.model.OpenType; import com.alibaba.fastjson.JSON; import com.google.gson.Gson; import com.tejia.lijin.app.BuXinConstant; import com.tejia.lijin.app.R; import com.tejia.lijin.app.ui.recommend.GoodsDetailActivity; import com.tejia.lijin.app.ui.recommend.SearchActivity; import com.tejia.lijin.app.util.JumpActivityUtil; import com.tejia.lijin.app.util.SystemParamsUtil; import com.tejia.lijin.app.util.WXUtil; import com.tejia.lijin.app.util.clipboard.ClipboardUtil; import com.tejia.lijin.app.util.user.UserUtil; import com.umeng.analytics.MobclickAgent; import com.wpc.library.DeviceUuidFactory; import com.wpc.library.util.GetManifestDataUtil; import com.wpc.library.util.MobileUtil; import com.wpc.library.util.NetUtils; import com.wpc.library.util.common.PackageUtils2; import com.wpc.library.util.common.StringUtils; import com.wpc.library.util.security.MD5Utils; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import static android.content.Context.MODE_PRIVATE; public class BaseRebateJavaInterfaceBS { Activity mContext; public BaseRebateJavaInterfaceBS(Activity activity) { mContext = activity; } @JavascriptInterface public String getUid(Object obj) { return mContext.getSharedPreferences("user", MODE_PRIVATE).getString("uid", ""); } @JavascriptInterface public Object getVersion(Object obj) { return PackageUtils2.getVersionCode(mContext) + ""; } @JavascriptInterface public Object getVersionName(Object obj) { return PackageUtils2.getVersionName(mContext) + ""; } @JavascriptInterface public Object getAppName(Object obj) { return mContext.getResources().getString(R.string.app_name); } @JavascriptInterface public void toast(Object str) { Toast.makeText(mContext, str.toString(), Toast.LENGTH_LONG).show(); } @JavascriptInterface public String getSign(Object str) { return MD5Utils.getMD532(str + "@?,223Hbb88lll"); } @JavascriptInterface public void jumpBaiChuan(Object args) throws JSONException { JSONObject json = new JSONObject(args.toString()); final String tbClientInfo = json.optString("tbClientInfo"); final String url = json.optString("url"); final String auctionId = json.optString("auctionId"); AlibcShowParams alibcShowParams = new AlibcShowParams(); alibcShowParams.setOpenType(OpenType.Auto); JumpActivityUtil.jumpBaiChuan(mContext, tbClientInfo, url, auctionId, alibcShowParams); } @JavascriptInterface public void jumpSearch(Object key) { Intent intent = new Intent(mContext, SearchActivity.class); intent.putExtra("key", key.toString()); mContext.startActivity(intent); } @JavascriptInterface public void copyText(Object atr) { ClipboardUtil.copy(mContext, atr.toString()); } @JavascriptInterface public void jumpPage(Object args) throws JSONException { JSONObject json = new JSONObject(args.toString()); String pageClassName = json.optString("pageClassName"); String paramJson = json.optString("paramJson"); Intent intent = null; JSONObject param = null; try { if (StringUtils.isEmpty(paramJson)) { param = null; } else { param = new JSONObject(paramJson); } if (StringUtils.isEmpty(pageClassName)) { return; } else { if (pageClassName.equals("com.tejia.lijin.app.ui.recommend.GoodsBrowserActivity")) { pageClassName = GoodsDetailActivity.class.getName(); } intent = new Intent(mContext, Class.forName(JumpActivityUtil.filterActivityName(pageClassName))); } } catch (JSONException e) { param = null; e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } if (null != param) { @SuppressWarnings("unchecked") Iterator its = param.keys(); while (its.hasNext()) { String key = its.next(); String value = param.optString(key); intent.putExtra(key, value); // Log.e("mResult", "key--" + key); // Log.e("mResult", "value--" + value); } } mContext.startActivity(intent); } @JavascriptInterface public void login(Object obj) { UserUtil.jumpLogin(mContext); } @JavascriptInterface public String getRequestBaseParams(Object json) { LinkedHashMap params = new LinkedHashMap<>(); int version = PackageUtils2.getVersionCode(mContext); long time = System.currentTimeMillis(); String deviceType = MobileUtil.getSystemModel(); if (!StringUtils.isEmpty(json.toString())) { JSONObject jsonObject = null; try { jsonObject = new JSONObject(json.toString()); Iterator iterator = jsonObject.keys(); while (iterator.hasNext()) { String key = iterator.next(); params.put(key, jsonObject.optString(key)); } } catch (JSONException e) { } } params.put("packages", mContext.getPackageName()); params.put("Version", version + ""); params.put("appkey", BuXinConstant.TAO_BAO_KE_KEY); params.put("platform", "android"); params.put("uid", mContext.getSharedPreferences("user", MODE_PRIVATE).getString("uid", "")); params.put("apiversion", "1"); params.put("channel", GetManifestDataUtil.getAppMetaData(mContext, "UMENG_CHANNEL")); String imei = MobileUtil.getIMEI(mContext); if (!StringUtils.isEmpty(imei)) params.put("imei", imei); params.put("osVersion", MobileUtil.getSystemVersion()); params.put("network", NetUtils.getNetworkState(mContext)); params.put("deviceType", StringUtils.isEmpty(deviceType) ? "" : deviceType); params.put("time", time + ""); params.put("Device", new DeviceUuidFactory(mContext).getDeviceUuid() + ""); Iterator its = params.keySet().iterator(); List list = new ArrayList<>(); while (its.hasNext()) { String key = its.next(); Object value = params.get(key); list.add(key + "=" + value); } Collections.sort(list); String sign = ""; for (String str : list) { sign += str + "&"; } params.put("sign", MD5Utils.getMD532(sign + "buXiNjie2017!")); Gson gson = new Gson(); String str = gson.toJson(params); // Log.e("mResult", str); return str; } @JavascriptInterface public void umEventCount(Object args) throws JSONException { JSONObject json = new JSONObject(args.toString()); String eventId = json.optString("eventId"); String paramsJSON = json.optString("paramsJSON"); Map map = JSON.parseObject(paramsJSON); MobclickAgent.onEventObject(mContext, eventId, map); } @JavascriptInterface public void umEventCompute(Object args) throws JSONException { JSONObject json = new JSONObject(args.toString()); String eventId = json.optString("eventId"); String paramsJSON = json.optString("paramsJSON"); int du = json.optInt("du"); Map map = JSON.parseObject(paramsJSON); MobclickAgent.onEventValue(mContext, eventId, map, du); } @JavascriptInterface public void jumpGoodsDetail(Object args) throws JSONException { JSONObject json = new JSONObject(args.toString()); String id = json.optString("id"); String goodsType = json.optString("goodsType"); String from = json.optString("from"); Intent intent = new Intent(mContext, GoodsDetailActivity.class); intent.putExtra("goodsId", id); intent.putExtra("goodsType", goodsType); if (!StringUtils.isNullOrEmpty(from)) intent.putExtra("from", from); mContext.startActivity(intent); } @JavascriptInterface public void jumpWXXCX(Object args) throws JSONException { JSONObject json = new JSONObject(args.toString()); String userName = json.optString("userName"); String path = json.optString("path"); WXUtil.jumpWXXCX(mContext, userName, path); } /** * 清空粘贴板 */ @JavascriptInterface public void clearClipboard(Object obj) { ClipboardUtil.emptyClipboard(mContext); } /** * 获取客户端参数 * * @param key * @return */ @JavascriptInterface public String getClientParams(String key) { return SystemParamsUtil.getParam(mContext, key); } }