package com.tejia.lijin.app.ui.mine;
|
|
import android.annotation.SuppressLint;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.PixelFormat;
|
import android.os.Bundle;
|
import android.util.Log;
|
import android.view.KeyEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.webkit.WebChromeClient;
|
import android.webkit.WebResourceRequest;
|
import android.webkit.WebResourceResponse;
|
import android.webkit.WebSettings;
|
import android.webkit.WebView;
|
import android.webkit.WebViewClient;
|
import android.widget.FrameLayout;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
import com.ali.auth.third.ui.context.CallbackContext;
|
import com.alibaba.baichuan.android.trade.AlibcTrade;
|
import com.alibaba.baichuan.android.trade.model.AlibcShowParams;
|
import com.alibaba.baichuan.android.trade.model.OpenType;
|
import com.alibaba.baichuan.android.trade.page.AlibcBasePage;
|
import com.alibaba.baichuan.android.trade.page.AlibcMyCartsPage;
|
import com.alibaba.baichuan.android.trade.page.AlibcMyOrdersPage;
|
import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams;
|
import com.tejia.lijin.app.util.JumpActivityUtil;
|
import com.umeng.analytics.MobclickAgent;
|
import com.tejia.lijin.app.BuXinConstant;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.callBack.MiDuoTradeCallback;
|
import com.tejia.lijin.app.ui.BaseActivity;
|
import com.tejia.lijin.app.util.TopStatusSettings;
|
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
import java.util.HashMap;
|
import java.util.Iterator;
|
|
public class CollectionBrowserActivity extends BaseActivity implements OnClickListener {
|
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_left2;
|
private TextView tv_top_bar_middle, tv_close, tv_login;
|
private WebView webview;
|
private FrameLayout fl_webview;
|
private ProgressBar progressBar;
|
private MWebviewClient mWebviewClient;
|
private MiDuoTradeCallback tradeCallback;
|
// private LinearLayout ll_hint;
|
AlibcBasePage alibcBasePage = null;
|
AlibcShowParams alibcShowParams = new AlibcShowParams();
|
AlibcTaokeParams alibcTaokeParams = new AlibcTaokeParams("","","");
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.browser_activity);
|
TopStatusSettings.setStatusViewAndDeepColor(this);
|
getWindow().setFormat(PixelFormat.TRANSLUCENT);
|
tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_left2 = findViewById(R.id.tv_top_bar_left2);
|
tv_top_bar_left2.setVisibility(View.VISIBLE);
|
tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle);
|
tv_login = findViewById(R.id.tv_login);
|
fl_webview = findViewById(R.id.fl_webview);
|
// ll_hint = findViewById(R.id.ll_hint);
|
// tv_hint = findViewById(R.id.tv_hint);
|
tv_close = findViewById(R.id.tv_close);
|
// tv_top_bar_left2.setText("关闭");
|
tv_top_bar_left.setOnClickListener(this);
|
tv_top_bar_left2.setOnClickListener(this);
|
|
webview = new WebView(CollectionBrowserActivity.this);
|
mWebviewClient = new MWebviewClient();
|
fl_webview.addView(webview, new FrameLayout.LayoutParams(
|
FrameLayout.LayoutParams.MATCH_PARENT,
|
FrameLayout.LayoutParams.MATCH_PARENT));
|
WebSettings webSettings = webview.getSettings();
|
webSettings.setJavaScriptEnabled(true);
|
webSettings.setDomStorageEnabled(true);
|
webSettings.setAppCacheEnabled(true);
|
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
|
webSettings.setDatabaseEnabled(true);
|
webSettings.setTextZoom(100);
|
|
webview.setDrawingCacheEnabled(true);
|
webview.setWebViewClient(mWebviewClient);
|
progressBar = findViewById(R.id.myProgressBar);
|
progressBar.setMax(100);
|
progressBar.setProgressDrawable(this.getResources()
|
.getDrawable(R.drawable.color_progressbar));
|
|
alibcTaokeParams.setPid(BuXinConstant.BAICHUAN_PID);
|
alibcTaokeParams.setAdzoneid(BuXinConstant.BAICHUAN_ADZONE_ID);
|
alibcTaokeParams.pid = BuXinConstant.BAICHUAN_PID;
|
alibcTaokeParams.adzoneid = BuXinConstant.BAICHUAN_ADZONE_ID;
|
alibcTaokeParams.extraParams = new HashMap<>();
|
alibcTaokeParams.extraParams.put("taokeAppkey", BuXinConstant.TAO_BAO_KE_KEY);
|
|
if (getIntent().getStringExtra("type").equalsIgnoreCase("showCart")) {
|
alibcBasePage = new AlibcMyCartsPage();
|
tv_top_bar_middle.setText("购物车");
|
} else {
|
alibcBasePage = new AlibcMyOrdersPage(0, true);
|
tv_top_bar_middle.setText("我的订单");
|
tv_close.setOnClickListener(new OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
// ll_hint.setVisibility(View.GONE);
|
SharedPreferences sp = getSharedPreferences("user", MODE_PRIVATE);
|
SharedPreferences.Editor editor = sp.edit();
|
editor.putBoolean("closeHint", false);
|
editor.commit();
|
}
|
});
|
}
|
tradeCallback = new MiDuoTradeCallback("");
|
alibcShowParams.setOpenType(OpenType.Auto);
|
// AlibcTrade.show(this, webview, mWebviewClient, new MyWebChromeClient(), alibcBasePage,
|
// alibcShowParams, alibcTaokeParams, null, tradeCallback);
|
AlibcTrade.openByBizCode(this, alibcBasePage, webview,
|
mWebviewClient, new WebChromeClient(), "nativeDetail", alibcShowParams,
|
alibcTaokeParams, null, new MiDuoTradeCallback(""));
|
}
|
|
|
class MWebviewClient extends WebViewClient {
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
if (url.startsWith("http:") || url.startsWith("https:")) {
|
view.loadUrl(url);
|
return false;
|
} else if (url != null && url.startsWith("yestv://")) {
|
String murl = url.split("yestv://")[1];
|
String[] params = murl.split("#");
|
if (params[0].equalsIgnoreCase("getgoodsdetail")) {
|
|
} else if (params[0].equalsIgnoreCase("share")) {
|
} else if (params[0].equalsIgnoreCase("jumppage")) {
|
Intent intent = null;
|
try {
|
Class<String> forName = (Class<String>) Class.forName(JumpActivityUtil.filterActivityName(params[1]));
|
intent = new Intent(CollectionBrowserActivity.this, forName);
|
} catch (ClassNotFoundException e) {
|
e.printStackTrace();
|
}
|
if (params.length > 2) {
|
String str = params[2];
|
JSONObject obj = null;
|
try {
|
obj = new JSONObject(str);
|
} catch (JSONException e) {
|
}
|
Iterator<String> its = obj.keys();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = obj.optString(key);
|
intent.putExtra(key, value);
|
}
|
}
|
startActivity(intent);
|
} else {
|
return super.shouldOverrideUrlLoading(view, url);
|
}
|
}
|
return super.shouldOverrideUrlLoading(view, url);
|
}
|
|
@SuppressLint("NewApi")
|
@Override
|
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
|
String url = request.getUrl().toString();
|
WebResourceResponse response = super.shouldInterceptRequest(view, url);
|
if (url.startsWith("https://h5acs.m.taobao.com/h5/mtop.trade.createorder.h5") || url.startsWith("https://h5acs.m.tmall.com/h5/mtop.trade.createorder.h5"))//订单提交
|
{
|
Log.i("WebViewActivity", "OLD:" + url);
|
final WebView fwebView = view;
|
webview.post(new Runnable() {
|
@Override
|
public void run() {
|
fwebView.loadUrl("javascript:var ss = document.getElementsByClassName('order-service');var yunfeiXian = 0;for(var i = 0; i < ss.length; i++) {if(ss[i].getElementsByClassName('title')[0].innerHTML == '运费险') {var yunfeiStr = ss[i].getElementsByClassName('option')[0].innerHTML;if(yunfeiStr != undefined && yunfeiStr.indexOf('元') > -1 && yunfeiStr.indexOf('赔付') > -1) {if(yunfeiStr.split(' ').length > 1) {yunfeiXian = yunfeiStr.split(' ')[1].replace('元', '');}}break;}}; var ss = document.getElementsByClassName('order-order')[0].getElementsByClassName('select-face');var kuaidiMoney=0;for(var i = 0; i < ss.length; i++) {if(ss[i].innerHTML.indexOf(('快递¥'))>-1||ss[i].innerHTML.indexOf(('EMS¥'))>-1) {kuaidiMoney=ss[i].innerHTML.replace('快递¥').replace('EMS¥');break;}} window.local_obj.getOrderPrice(kuaidiMoney,yunfeiXian,document.getElementsByClassName('order-orderPay')[0].getElementsByClassName('price')[0].innerHTML)");
|
}
|
});
|
}
|
return response;
|
}
|
|
|
@Override
|
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
|
WebResourceResponse response = super.shouldInterceptRequest(view, url);
|
if (url.startsWith("https://h5acs.m.taobao.com/h5/mtop.trade.createorder.h5") || url.startsWith("https://h5acs.m.tmall.com/h5/mtop.trade.createorder.h5"))//订单提交
|
{
|
Log.i("WebViewActivity", "OLD:" + url);
|
final WebView fwebView = view;
|
webview.post(new Runnable() {
|
@Override
|
public void run() {
|
fwebView.loadUrl("javascript:var ss = document.getElementsByClassName('order-service');var yunfeiXian = 0;for(var i = 0; i < ss.length; i++) {if(ss[i].getElementsByClassName('title')[0].innerHTML == '运费险') {var yunfeiStr = ss[i].getElementsByClassName('option')[0].innerHTML;if(yunfeiStr != undefined && yunfeiStr.indexOf('元') > -1 && yunfeiStr.indexOf('赔付') > -1) {if(yunfeiStr.split(' ').length > 1) {yunfeiXian = yunfeiStr.split(' ')[1].replace('元', '');}}break;}}; var ss = document.getElementsByClassName('order-order')[0].getElementsByClassName('select-face');var kuaidiMoney=0;for(var i = 0; i < ss.length; i++) {if(ss[i].innerHTML.indexOf(('快递¥'))>-1||ss[i].innerHTML.indexOf(('EMS¥'))>-1) {kuaidiMoney=ss[i].innerHTML.replace('快递¥').replace('EMS¥');break;}} window.local_obj.getOrderPrice(kuaidiMoney,yunfeiXian,document.getElementsByClassName('order-orderPay')[0].getElementsByClassName('price')[0].innerHTML)");
|
}
|
});
|
}
|
return response;
|
}
|
|
}
|
|
|
class MyWebChromeClient extends WebChromeClient {
|
@Override
|
public void onReceivedTitle(WebView view, String title) {
|
// tv_top_bar_middle.setText(title);
|
}
|
|
@Override
|
public void onProgressChanged(WebView webView, int i) {
|
if (i == 100) {
|
progressBar.setVisibility(View.GONE);
|
} else {
|
if (View.INVISIBLE == progressBar.getVisibility()) {
|
progressBar.setVisibility(View.VISIBLE);
|
}
|
progressBar.setProgress(i);
|
}
|
super.onProgressChanged(webView, i);
|
}
|
}
|
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
MobclickAgent.onPageStart("网页");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("网页");
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
|
}
|
|
|
@Override
|
protected void onStop() {
|
super.onStop();
|
}
|
|
@Override
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
CallbackContext.onActivityResult(requestCode, resultCode, data);
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
if (!webview.canGoBack())
|
finish();
|
else {
|
webview.goBack();
|
}
|
}
|
break;
|
case R.id.tv_top_bar_left2: {
|
finish();
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
@Override
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
if ((keyCode == KeyEvent.KEYCODE_BACK) ) {
|
if (webview.canGoBack()){
|
webview.goBack(); // goBack()表示返回WebView的上一页面
|
return true;
|
}else{
|
finish();
|
}
|
}
|
return super.onKeyDown(keyCode, event);
|
}
|
|
}
|