package com.haicaojie.android.ui.mine;
|
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import android.util.Log;
|
import android.view.View;
|
import android.webkit.WebChromeClient;
|
import android.webkit.WebResourceError;
|
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.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
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.trade.biz.AlibcConstants;
|
import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams;
|
import com.alibaba.baichuan.trade.biz.login.AlibcLogin;
|
import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback;
|
import com.haicaojie.android.ui.BrowserActivity;
|
import com.haicaojie.android.util.TaobaoLoginHintDialog;
|
import com.lcjian.library.RetainViewFragment;
|
import com.lcjian.library.content.ConnectivityChangeHelper;
|
import com.lcjian.library.util.NetUtils;
|
import com.lcjian.library.util.SingleToast;
|
import com.umeng.analytics.MobclickAgent;
|
import com.haicaojie.android.BasicTextHttpResponseHandler;
|
import com.haicaojie.android.BuXinConstant;
|
import com.haicaojie.android.R;
|
import com.haicaojie.android.ShoppingApi;
|
import com.haicaojie.android.callBack.MiDuoTradeCallback;
|
import com.haicaojie.android.ui.recommend.GoodsDetailBrowerActivity;
|
import com.haicaojie.android.util.InitAlibcSdk;
|
import com.haicaojie.android.util.LoginHintDialog2;
|
import com.haicaojie.android.util.RedpacketGainHintDialog;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import static android.content.Context.MODE_PRIVATE;
|
|
/**
|
* Created by weikou2015 on 2017/8/22.
|
*/
|
|
public class ShoppingTrolleyFragment extends RetainViewFragment implements View.OnClickListener {
|
private TextView tv_left;
|
private TextView tv_middle;
|
private TextView tv_login, tv_shopping_trolley, tv_hint, tv_close;
|
private AlibcShowParams alibcShowParams;//页面打开方式,默认,H5,Native
|
private Map<String, String> exParams;//yhhpass参数
|
private FrameLayout fl_webview;
|
private FrameLayout fl_shopping_trolley;
|
private LinearLayout ll_hint;
|
private WebView webview;
|
private ProgressBar progressBar;
|
AlibcTaokeParams alibcTaokeParams;
|
|
@Override
|
public int getContentResource() {
|
return R.layout.activity_shopping_trolley;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
|
alibcShowParams = new AlibcShowParams(OpenType.H5, false);
|
|
exParams = new HashMap<>();
|
exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
|
exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删
|
alibcTaokeParams = new AlibcTaokeParams();
|
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);
|
init(contentView);
|
}
|
|
private void init(View view) {
|
tv_left = (TextView) view.findViewById(R.id.tv_top_bar_left);
|
tv_middle = (TextView) view.findViewById(R.id.tv_top_bar_middle);
|
tv_login = (TextView) view.findViewById(R.id.tv_go_login);
|
tv_shopping_trolley = (TextView) view.findViewById(R.id.tv_shopping_trolley);
|
ll_hint = (LinearLayout) view.findViewById(R.id.ll_hint);
|
tv_hint = (TextView) view.findViewById(R.id.tv_hint);
|
tv_close = (TextView) view.findViewById(R.id.tv_close);
|
fl_webview = (FrameLayout) view.findViewById(R.id.fl_webview);
|
fl_shopping_trolley = (FrameLayout) view.findViewById(R.id.fl_shopping_trolley);
|
|
tv_middle.setText("购物车");
|
tv_left.setText("返回");
|
webview = new WebView(getContext());
|
WebSettings settings = webview.getSettings();
|
settings.setJavaScriptEnabled(true);
|
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
|
|
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_NO_CACHE);
|
webSettings.setDatabaseEnabled(true);
|
|
progressBar = (ProgressBar) view.findViewById(R.id.myProgressBar);
|
progressBar.setMax(100);
|
progressBar.setProgressDrawable(this.getResources()
|
.getDrawable(R.drawable.color_progressbar));
|
|
webview.setDrawingCacheEnabled(true);
|
webview.setWebViewClient(mWebviewClient);
|
tv_close.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
ll_hint.setVisibility(View.GONE);
|
SharedPreferences sp = getContext().getSharedPreferences("user", MODE_PRIVATE);
|
SharedPreferences.Editor editor = sp.edit();
|
editor.putBoolean("closeHint", true);
|
editor.commit();
|
}
|
});
|
tv_left.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
if (webview.canGoBack()) {
|
webview.goBack();
|
} else {
|
getActivity().finish();
|
}
|
|
}
|
});
|
|
}
|
|
|
WebViewClient mWebviewClient = new WebViewClient() {
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
// SingleToast.showToast(getContext(), "shouldOverrideUrlLoading");
|
Log.i("mResult", url);
|
if (url.startsWith("https://h5.m.taobao.com/awp/core/detail.htm?")) {
|
getTaoBaoLink(url);
|
} else if (url.contains("/tbopen/") || url.startsWith("tbopen://")) {
|
return true;
|
}
|
return super.shouldOverrideUrlLoading(view, url);
|
}
|
|
};
|
|
private void getTaoBaoLink(String url) {
|
ShoppingApi.getTaoBaoLink(getContext(), url, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
Log.i("mResult", jsonObject.toString());
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
Intent intent = new Intent(getContext(), GoodsDetailBrowerActivity.class);
|
// Intent intent = new Intent(getContext(), GoodsBrowserActivity.class);
|
intent.putExtra("id", jsonObject.optJSONObject("data").optString("id"));
|
intent.putExtra("isTrolley", true);
|
startActivity(intent);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
Log.i("mResult", responseString);
|
}
|
});
|
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
MobclickAgent.onPageStart("购物车");
|
final SharedPreferences sp = getActivity().getSharedPreferences("user", MODE_PRIVATE);
|
boolean isLogin = sp.getBoolean("isLogin", false);
|
boolean isTBBind = sp.getBoolean("isTBBind", false);
|
if (isLogin) {
|
if (isTBBind) {
|
if (sp.getBoolean("closeHint", false)) {
|
ll_hint.setVisibility(View.GONE);
|
} else {
|
tv_hint.setText("购物车操作提示:必须点击进入每个商品查看确保有奖金,再结算下单。");
|
ll_hint.setVisibility(View.VISIBLE);
|
}
|
|
if (AlibcLogin.getInstance().isLogin()) {
|
fl_webview.setVisibility(View.VISIBLE);
|
fl_shopping_trolley.setVisibility(View.GONE);
|
showCart();
|
} else {
|
fl_webview.setVisibility(View.GONE);
|
fl_shopping_trolley.setVisibility(View.VISIBLE);
|
tv_login.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
tbLogin();
|
}
|
});
|
tbLogin();
|
}
|
|
} else {
|
fl_webview.setVisibility(View.GONE);
|
fl_shopping_trolley.setVisibility(View.VISIBLE);
|
tv_login.setText("去绑定");
|
ll_hint.setVisibility(View.GONE);
|
tv_shopping_trolley.setText("查看你的淘宝购物车需先绑定你的淘宝账号。");
|
tv_login.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
tbLogin();
|
}
|
});
|
}
|
|
} else {
|
ll_hint.setVisibility(View.GONE);
|
fl_webview.setVisibility(View.GONE);
|
fl_shopping_trolley.setVisibility(View.VISIBLE);
|
tv_shopping_trolley.setText("您还没有登录,无法查看购物车");
|
tv_login.setText("去登录");
|
tv_login.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// loginHint();
|
startActivity(new Intent(getContext(), LoginSelectActivity.class));
|
}
|
});
|
}
|
}
|
|
private void tbLogin() {
|
final AlibcLogin alibcLogin = AlibcLogin.getInstance();
|
if (!alibcLogin.isLogin()) {
|
TaobaoLoginHintDialog.Builder builder = new TaobaoLoginHintDialog.Builder(getActivity());
|
builder.setMessage("购买商品、领取优惠券、查看订单和购物车等,需授权登录淘宝号。").setPositiveButtonColor(2).setNegativeButtonColor(2).setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialogInterface, int i) {
|
dialogInterface.dismiss();
|
}
|
}).setPositiveButton("确认", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialogInterface, int i) {
|
alibcLogin.showLogin(new AlibcLoginCallback() {
|
@Override
|
public void onSuccess(int i) {
|
// SharedPreferences sp = getContext().getSharedPreferences("user", MODE_PRIVATE);
|
// boolean isLogin = sp.getBoolean("isLogin", false);
|
// String uid = sp.getString("uid", "");
|
// if (isLogin) {
|
// bindInfo(AlibcLogin.getInstance().getSession().openId, AlibcLogin.getInstance().getSession().nick, AlibcLogin.getInstance().getSession().avatarUrl, uid);
|
// } else {
|
Toast.makeText(getContext(), "登录成功",
|
Toast.LENGTH_LONG).show();
|
// }
|
}
|
|
@Override
|
public void onFailure(int code, String msg) {
|
Toast.makeText(getContext(), "登录失败,请稍候再试",
|
Toast.LENGTH_LONG).show();
|
}
|
});
|
dialogInterface.dismiss();
|
}
|
}).create().show();
|
}
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("购物车");
|
}
|
|
|
/**
|
* 显示我的购物车
|
*/
|
private void showCart() {
|
AlibcBasePage alibcBasePage = new AlibcMyCartsPage();
|
// AlibcTrade.show(getActivity(), alibcBasePage, alibcShowParams, null, exParams, new MiDuoTradeCallback(""));
|
AlibcTrade.show(getActivity(), webview, mWebviewClient, new MyWebChromeClient(), alibcBasePage,
|
alibcShowParams, alibcTaokeParams, null, new MiDuoTradeCallback(""));
|
// AlibcTrade.show(this, webview, mWebviewClient, new OrderActivity.MyWebChromeClient(), alibcBasePage,
|
// alibcShowParams, alibcTaokeParams, null, tradeCallback);
|
}
|
|
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 onClick(View view) {
|
switch (view.getId()) {
|
case R.id.tv_top_bar_left:
|
getActivity().finish();
|
break;
|
}
|
}
|
|
}
|