package com.demo.library_ec; import android.app.Activity; import android.app.Application; import android.util.Log; import android.webkit.WebResourceRequest; import android.webkit.WebView; import android.webkit.WebViewClient; import com.alibaba.baichuan.android.trade.AlibcTrade; import com.alibaba.baichuan.android.trade.AlibcTradeSDK; import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback; 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.context.AlibcTradeResult; import com.alibaba.baichuan.trade.biz.core.taoke.AlibcTaokeParams; import com.alibaba.baichuan.trade.common.utils.AlibcLogger; 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 params = new HashMap<>(); AlibcTradeSDK.asyncInit(application, 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 showParams * @param taokeParams * @param trackParams * @param callback */ public static void openUrl(Activity activity, final String url, AlibcShowParams showParams, AlibcTaokeParams taokeParams, Map trackParams, AlibcTradeCallback callback) { if (callback == null) { callback = new AlibcTradeCallback() { @Override public void onTradeSuccess(AlibcTradeResult alibcTradeResult) { AlibcLogger.i(TAG, "open success: alibcTradeResult = " + alibcTradeResult); } @Override public void onFailure(int code, String msg) { AlibcLogger.e(TAG, "open fail: code = " + code + ", msg = " + msg); } }; } AlibcTrade.openByUrl(activity, "", url, null, null, null, showParams, taokeParams, trackParams, callback); } public static void openAuthLink(Activity activity, String authUrl) { AlibcShowParams showParams = new AlibcShowParams(); showParams.setOpenType(OpenType.Auto); //设置返回小把手 showParams.setBackUrl("alisdk://"); Log.i(TAG, "openAuthLink-start"); WebViewClient client = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { Log.i(TAG, "shouldOverrideUrlLoading"); return super.shouldOverrideUrlLoading(view, request); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.i(TAG, url); return super.shouldOverrideUrlLoading(view, url); } }; AlibcTrade.openByUrl(activity, "", authUrl, null, null, null, showParams, null, null, new AlibcTradeCallback() { @Override public void onTradeSuccess(AlibcTradeResult alibcTradeResult) { } @Override public void onFailure(int i, final String s) { Log.i(TAG, "失败回调:" + s); } }); } interface AlibcTradeInitListener { public void onSuccess(); public void onFailure(int code, String msg); } }