admin
2022-05-11 f19071bd5e0007fc823f99cdfa0196391827da1e
src/main/resources/code/android/library-ec/src/main/java/com/demo/library_ec/AlibcTradeUtil.java
@@ -1,90 +1,104 @@
package com.demo.library_ec;
import android.app.Activity;
import android.app.Application;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import com.alibaba.alibcprotocol.callback.AlibcTradeCallback;
import com.alibaba.alibcprotocol.param.AlibcShowParams;
import com.alibaba.alibcprotocol.param.AlibcTaokeParams;
import com.alibaba.alibcprotocol.param.OpenType;
import com.alibaba.baichuan.trade.common.utils.AlibcLogger;
import com.baichuan.nb_trade.AlibcTrade;
import com.baichuan.nb_trade.callback.AlibcTradeInitCallback;
import com.baichuan.nb_trade.core.AlibcTradeSDK;
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.trade.biz.AlibcTradeCallback;
import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType;
import com.alibaba.baichuan.trade.biz.context.AlibcTradeResult;
import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams;
import java.util.HashMap;
import java.util.Map;
public class AlibcTradeUtil {
    private final static String TAG = "AlibcTradeUtil";
    /**
     * 初始化
     *
     * @param application
     * @param alibcTradeInitListener
     */
    public static void init(Application application, AlibcTradeInitListener alibcTradeInitListener) {
        Map<String, Object> params = new HashMap<>();
        AlibcTradeSDK.asyncInit(application, params, new AlibcTradeInitCallback() {
            @Override
            public void onSuccess() {
                AlibcLogger.e(TAG, "SDK初始化成功");
                if (alibcTradeInitListener != null) {
                    alibcTradeInitListener.onSuccess();
                }
            }
            @Override
            public void onFailure(int code, String msg) {
                AlibcLogger.e(TAG, "SDK初始化失败: code = " + code + ", msg = " + msg);
                if (alibcTradeInitListener != null) {
                    alibcTradeInitListener.onFailure(code, msg);
                }
            }
        });
    }
    /**
     * 打开链接
     * 用阿里百川打开链接
     *
     * @param activity
     * @param url
     * @param webView
     * @param webViewClient
     * @param webChromeClient
     * @param showParams
     * @param taokeParams
     * @param trackParams
     * @param callback
     */
    public static void openUrl(Activity activity, final String url, AlibcShowParams showParams, AlibcTaokeParams taokeParams,
                               Map<String, String> trackParams, AlibcTradeCallback callback) {
    public static void openByUrl(Activity activity, String url, WebView webView, WebViewClient webViewClient, WebChromeClient webChromeClient, AlibcShowParams showParams, AlibcTaokeParams taokeParams, AlibcTradeCallback callback) {
        openByUrl2(activity, url, webView, webViewClient, webChromeClient, showParams, taokeParams, callback);
    }
        if (callback == null) {
            callback = new AlibcTradeCallback() {
                @Override
                public void onSuccess(int code) {
                    AlibcLogger.i(TAG, "open success: code = " + code);
                }
                @Override
                public void onFailure(int code, String msg) {
                    AlibcLogger.e(TAG, "open fail: code = " + code + ", msg = " + msg);
                }
            };
    private static void openByUrl2(Activity activity, String url, WebView webView, WebViewClient webViewClient, WebChromeClient webChromeClient, AlibcShowParams showParams, AlibcTaokeParams taokeParams, AlibcTradeCallback callback) {
        if (showParams == null) {
            showParams = new AlibcShowParams();
        }
        AlibcTrade.openByUrl(activity, url, showParams, taokeParams, trackParams, callback);
        showParams.setOpenType(OpenType.Native);
        showParams.setDegradeUrl("https://mos.m.taobao.com/activity_newer?from=pub&pid=mm_124933865_56750082_10647300249");
//        if (webView == null)
        showParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpDOWNLOAD);
        //设置返回小把手
        showParams.setBackUrl("alisdk://");
//        taokeParams = null;
        final Activity context = activity;
        try {
            if (callback != null)
                AlibcTrade.openByUrl(activity, "", url, webView,
                        webViewClient, webChromeClient, showParams,
                        taokeParams, null, callback);
            else
                AlibcTrade.openByUrl(activity, "", url, webView,
                        webViewClient, webChromeClient, showParams,
                        taokeParams, new HashMap<>(), new AlibcTradeCallback() {
                            @Override
                            public void onTradeSuccess(AlibcTradeResult alibcTradeResult) {
                                Log.i("AlibcTradeUtil", alibcTradeResult.toString());
                            }
                            @Override
                            public void onFailure(int i, String s) {
                                Log.i("AlibcTradeUtil", i + ":" + s);
                                if (i == -1) {
                                    Toast.makeText(context, s, Toast.LENGTH_LONG).show();
                                }
                            }
                        });
        } catch (Error e) {
            e.printStackTrace();
        }
        //如果未安装手机淘宝
//        if (!ApkUtil.checkAPP(context, "com.taobao.taobao")) {
//            Toast.makeText(context, "请安装手机淘宝", Toast.LENGTH_SHORT).show();
//        }
    }
    public static void openAuthLink(Activity activity, String authUrl) {
        if (activity != null) {
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    openAuthLink2(activity, authUrl);
                }
            });
        }
    }
    private static void openAuthLink2(Activity activity, String authUrl) {
        AlibcShowParams showParams = new AlibcShowParams();
        showParams.setOpenType(OpenType.Auto);
        showParams.setNewWindow(false);
        showParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpDOWNLOAD);
        //设置返回小把手
        showParams.setBackUrl("alisdk://");
        Log.i(TAG, "openAuthLink-start");
@@ -103,12 +117,13 @@
            }
        };
        AlibcTrade.openByUrl(activity, authUrl, showParams,
                null,
                null, new AlibcTradeCallback() {
                    @Override
                    public void onSuccess(int i) {
        AlibcTrade.openByUrl(activity, "", authUrl, null,
                client, null, showParams,
                null, null, new AlibcTradeCallback() {
                    @Override
                    public void onTradeSuccess(AlibcTradeResult alibcTradeResult) {
                        Log.i(TAG, alibcTradeResult.toString());
                    }
                    @Override
@@ -117,12 +132,5 @@
                    }
                });
    }
    interface AlibcTradeInitListener {
        public void onSuccess();
        public void onFailure(int code, String msg);
    }
}