回到顶部

调用说明

SDK从2.0.0版本以后,通过百川电商组件可以方便的打开,交易环节中的各个页面,统一使用TradeServiceshow方法来实现。
show方法的参数为:

参数名 说明
page 页面类型,必填,不可为null
taokeParams 淘客参数,如果不是淘客的商品,则该参数传null,传入pid即可
activity 必填 , UI上下文
tradeProcessCallback 交易流程的回调。必填,不允许为null;
uiSettings 预留界面扩展,可以为null

其中page参数用于指定需要打开的页面,可以使用的页面类型如下表:

类名 页面名称 调用参数
ItemDetailPage 商品详情页 ItemDetailPage itemDetailPage = new ItemDetailPage(itemId, exParams);
- itemId:
商品id,必填,不允许为null;支持标准的商品id,eg.37196464781;同时支持openItemId,eg.AAHd5d-HAAeGwJedwSnHktBI;
- exParams
特殊业务扩展字段;选填,允许为null;目前支持3个参数:
1、TradeConstants.ITEM_DETAIL_VIEW_TYPE:启动页面类型,分为TAOBAO_H5_VIEW(以淘宝H5方式打开详情页)、TAOBAO_NATIVE_VIEW(唤起手机淘宝客户端打开详情页)。
2、TradeConstants.ISV_CODE(ISV_CODE用法可参看:http://baichuan.taobao.com/doc2/detail.htm?spm=a3c0d.7629140.0.0.0AjjmE&treeId=129&articleId=104377&docType=1)
3、TradeConstants. TAOBAO_BACK_URL:设置启动手淘native页面后的返回页面
MyCartsPage 购物车 MyCartsPage myCartsPage = new MyCartsPage();
MyOrdersPage 我的订单页 MyOrdersPage myOrdersPage = new MyOrdersPage(status, allOrder);
- status
默认跳转页面;填写:0:全部;1:待付款;2:待发货;3:待收货;4:待评价。若传入的不是这几个数字,则跳转到“全部”页面且“allOrder”失效
- allOrder
true:显示全部订单。
MyCardCouponsPage 我的卡券包页 MyCardCouponsPage myCardCouponsPage = new MyCardCouponsPage();
PromotionsPage 优惠券页 PromotionsPage promotionsPage = new PromotionsPage(type, param);
- type
优惠券类型。值为“shop”和“auction”两种
- param
shop时,param传递为卖家nick type:auction时,param传递为商品的混淆id

打开商品详情

public void showItemDetailPage(View view){
    TradeService tradeService = AlibabaSDK.getService(TradeService.class);
    Map<String, String> exParams = new HashMap<String, String>();
     exParams.put(TradeConstants.ISV_CODE, isvCode);
    exParams.put(TradeConstants.ITEM_DETAIL_VIEW_TYPE,TradeConstants.TAOBAO_NATIVE_VIEW);
    ItemDetailPage itemDetailPage = new ItemDetailPage(itemId, exParams);
    TaokeParams taokeParams = new TaokeParams(); 
    taokeParams.pid = "xxx_xxxXXX";
    tradeService.show(itemDetailPage, taokeParams, MainActivity.this, null, new TradeProcessCallback(){
 @Override
            public void onFailure(int code, String msg) {
                Toast.makeText(MainActivity.this, "失败 "+code+msg,
                        Toast.LENGTH_SHORT).show();
                 
            }
 
            @Override
            public void onPaySuccess(TradeResult tradeResult) {
                Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT)
                        .show();
                 
            }});
}

打开购物车

public void showMyCartsPage(View view){
        TradeService tradeService = AlibabaSDK.getService(TradeService.class);
        MyCartsPage myCartsPage = new MyCartsPage();
                TradeConfigs.defaultISVCode = "kdkdkdkd" //传入isv_code
        tradeService.show(myCartsPage, null, MainActivity.this, null, new TradeProcessCallback(){
 
            @Override
            public void onFailure(int code, String msg) {
                Toast.makeText(MainActivity.this, "失败 "+code+msg,
                        Toast.LENGTH_SHORT).show();
                 
            }
 
            @Override
            public void onPaySuccess(TradeResult tradeResult) {
                Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT)
                        .show();
                 
            }});
    }

打开的购物车,我们提供两种购物车展现方式供开发者。
使用 [淘宝购物车] 购物车页面将与淘宝购物车完全互通。用户在您应用中加入购物车的商品将在淘宝的购物车中展示,同样的用户在淘宝中加入的商品也将在会您的应用中出现。
使用 [隔离购物车] 您将拥有自己独立的购物车页面。用户在您的应用中加入购物车的商品可以再淘宝中看到并下单,但在淘宝中加入的商品将在您的应用中不可见
可以百川控制台进行选择配置:

打开我的订单页

public void showMyOrdersPage(View view){
        TradeService tradeService = AlibabaSDK.getService(TradeService.class);
        MyOrdersPage myOrdersPage = new MyOrdersPage(0, false);
        tradeService.show(myOrdersPage, null, MainActivity.this, null, new TradeProcessCallback(){
 
            @Override
            public void onFailure(int code, String msg) {
                Toast.makeText(MainActivity.this, "失败 "+code+msg,
                        Toast.LENGTH_SHORT).show();
                 
            }
 
            @Override
            public void onPaySuccess(TradeResult tradeResult) {
                Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT)
                        .show();
                 
            }});
    }

打开我的卡券包页

public void showMyCardCouponsPage(View view){
        TradeService tradeService = AlibabaSDK.getService(TradeService.class);
        MyCardCouponsPage myCardCouponsPage = new MyCardCouponsPage();
        tradeService.show(myCardCouponsPage, null, MainActivity.this, null, new TradeProcessCallback(){
 
            @Override
            public void onFailure(int code, String msg) {
                Toast.makeText(MainActivity.this, "失败 "+code+msg,
                        Toast.LENGTH_SHORT).show();
                 
            }
 
            @Override
            public void onPaySuccess(TradeResult tradeResult) {
                Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT)
                        .show();
                 
            }});
    }

打开优惠券页

public void showPromotionsPage(View view){
        TradeService tradeService = AlibabaSDK.getService(TradeService.class);
        PromotionsPage promotionsPage = new PromotionsPage("shop", "商家测试帐号17");
        tradeService.show(promotionsPage, null, MainActivity.this, null, new TradeProcessCallback(){
 
            @Override
            public void onFailure(int code, String msg) {
                Toast.makeText(MainActivity.this, "失败 "+code+msg,
                        Toast.LENGTH_SHORT).show();
                 
            }
 
            @Override
            public void onPaySuccess(TradeResult tradeResult) {
                Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT)
                        .show();
                 
            }});
    }

根据商品链接打开商品页面

public void showPage(View view) {
     Map<String, String> exParams = new HashMap<String, String>();
         exParams.put(TradeConstants.ISV_CODE, isvCode);
        Page page = new Page(url, exParams);
        AlibabaSDK.getService(TradeService.class).show(page, null, this, null, new TradeProcessCallback(){
            @Override
            public void onPaySuccess(TradeResult tradeResult) {                     
                                 }                    
           @Override
           public void onFailure(int code, String msg) {
              
           }                    
       });        
    }

注意:目前根据商品链接打开页面不支持传入参数taokeParams来实现淘客分佣,只支持传入s.click链接的方式来实现淘客分佣。

WebViewService接口说明

从2.0.0开始,淘宝授权SDK支持在开发者的WebView里进行淘宝免登。
WebViewService支持的是系统WebView。
WebViewService获取方式:WebViewService webViewService = AlibabaSDK.getService(WebViewService.class);
提供以下接口:

  • bindWebView(WebView webView,WebViewClient webViewClient)

    WebViewService webViewService = AlibabaSDK.getService(WebViewService.class);
    webViewService.bindWebView(webView,webViewClient);
  • releaseWebView(WebView webView)

    webViewService.releaseWebView(webView);

    还需要在开发者代码里的 Activity 重写方法,代码如下:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    CallbackContext.onActivityResult(requestCode, resultCode, data,webView);
    }

    WebViewProxyService接口说明

    WebViewProxyService接口支持非系统的自有WebView。
    该方案需要用户的自有WebView实现WebViewProxy接口。
class CustomWebView  implements WebViewProxy{
        public CustomWebView(Context context) {
            super(context);
        }

	//加载URL
        @Override
        public void loadUrl(String url) {
        }

	//重新加载上次请求
        @Override
        public void reload() {
        }

	//执行JS方法,返回执行结果,没有结果返回null
        @Override
        public String execJS(String jsStr) {
        }

	//执行JS方法,返回执行结果,没有结果返回null
        @Override
        public void setCookie(String key,String value) {
        }

        @Override
        public void getCookie(String key) {
        }

        @Override
        public void setUserAgent(String ua) {
        }

        @Override
        public String getUserAgent() {
        }

        @Override
        public String getUrl() {
        }
    }

WebViewProxyService获取方式:WebViewProxyService webViewProxyService = AlibabaSDK.getService(WebViewProxyService.class);

注意:
用户必须在页面加载前调用WebViewProxyService提供的shouldOverrideUrlLoading(WebViewProxy customWebView, String url)方法。类似于WebViewClient里的shouldOverrideUrlLoading方法。

还需要在开发者代码里的 Activity 重写方法,代码如下:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	//百川RequestCode为为59995和59996,可以在com.alibaba.sdk.android.system.RequestCode中获取(OPEN_TAOBAO、OPEN_H5_LOGIN)
     CallbackContext.onActivityResult(this,requestCode, resultCode, data, customWebView);
}

FAQ

AlibcTaokeParams 设置无效

返回
顶部

百川微信公众号

百川微博公众号