| | |
| | | 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"); |
| | |
| | | } |
| | | }; |
| | | |
| | | 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 |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | interface AlibcTradeInitListener { |
| | | public void onSuccess(); |
| | | |
| | | public void onFailure(int code, String msg); |
| | | } |
| | | |
| | | |
| | | } |