aliBC

来自于:开发者立即使用

外部webview方式打开电商组件 相关接口:

工具类接口

getFeature

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

aliBC模块 封装了阿里百川电商sdk,能够使你的app快速集成淘宝的电商功能,包括授权登录,查看商品详情,查看店铺,查看我的订单,查看购物车和商品支付等整个交易闭环,同时支持外部webview的方式打开url,使用本模块需要遵从阿里百川的申请流程,需要登录阿里百川,进入控制台,创建应用并获取sdk的安全图片,此外该模块需要和 xxxkey(该模块为自定义模块,封装安全图片用,模块名称可以自己定义)模块绑定使用。

注意事项:

  • 该版本对应百川SDK版本为4.0.0.2
  • 从2.0.0版本开始本模块只支持使用升级环境编译(android端)!
  • 从2.0.0版本开始 百川安全图片采用V5模式
  • 本模块中不再包含支付宝SDK,如需支付宝模块可以选择aliPayTradePlus

使用该模块的 优点:

  • 除了支持使用 手淘/天猫 和 百川默认的H5 等基本功能和页面外,本模块还支持用户 自定义页面(通过Url打开)位置、大小 以及淘宝页面和本地页面的js交互
  • 支持 唤醒手淘/高佣转链/跨店结算功能,详情请查看淘宝公告

准备事项

1.首先加入百川http://baichuan.taobao.com/,在阿里百川控制台创建应用获取appkey:

2.在阿里百川控制台“API申请”中申请相应的API权限:

3.在阿里百川控制台"我的产品后台"中查看是否开通百川电商sdk:

4.生成安全图片:(使用V5版安全图片,android 需要上传apk,iOS只需要填写 bundleId:可在apicloud控制台概览里查看)

5.套件申请(通过url打开淘系页面时,可以透传登录状态)

6.配置 Android 自定义模块:(如 aliBCKey)

首先下载aliBCKey模块,将其解压并将Android的安全图片 yw_1222.jpg 放到文件夹 aliBCKey\res_aliBCKey\res\drawable 目录下替换原有图片,重新打包成zip,即可作为自定义模块使用。(自定义模块名称可以更改为你想要的,如目录结构 xxx\res_xxx\res\drawable)

7.配置 ios 自定义模块:(如 aliBCKey)

首先下载aliBCKey模块,将其解压并将ios的安全图片 yw_1222.jpg 放到文件夹 aliBCKey\target目录下替换原有图片,重新打包成zip,即可作为自定义模块使用。(自定义模块名称可以更改为你想要的,如目录结构 xxx\target)

8.使用此模块之前需先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 模块名称:aliBC
  • 参数:urlScheme, querySchemes
  • 参数说明:

    • urlScheme参数用于处理应用间的跳转,值为tbopen+appkey, appkey是在阿里百川上申请的appkey.
    • querySchemes参数用于配置可被检测的URL Scheme,多个参数用逗号隔开,本模块需添加tbopen,tmall两个参数.

    • 配置示例:

    <preference name="querySchemes" value="tbopen,tmall"/>
      <feature name="aliBC">
        <param name="urlScheme" value="tbopen23417814"/>
      </feature>

asyncInit

初始化SDK(调用优先级最高,只需要调用一次)

asyncInit({param},callback(ret,err))

params

addLoginState:

  • 类型:布尔类型
  • 默认值:true
  • 描述:(可选项)是否对淘宝授权登录事件进行监听,设置监听后登录淘宝会触发一个名为“TBLoginEvent”的广播事件,可通过api.addEventListener对该事件进行监听。
  • 示例:

    设置监听后可以添加api事件监听来获取相关信息:

    api.addEventListener({name: 'TBLoginEvent'}, function(ret, err) {
      console.log(ret.openSid+','+ret.openId+','+ret.nick+','+ret.avatarUrl);
    });
    

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    status: true  //布尔型,初始化成功
    code:0        //数字型
    message:'淘宝初始化成功'    //字符串,提示信息
}

err:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    code:-1        //数字型,错误提示码
    message:''    //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.asyncInit({
    //    addLoginState:false
    },function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setSyncForTaoke

设置SDK 淘客打点策略(sdk默认采用淘客同步打点)

setSyncForTaoke({params}, callback(ret))

注意:初始化完成后调用才能生效

params

isSyncForTaoke:

  • 类型:布尔类型
  • 默认值:true
  • 描述:(可选项)设置是否使用同步淘客打点。true:使用淘客同步打点;false:关闭同步打点,使用异步打点。
  • 注意:在加购场景下,只有异步淘客打点

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值 仅Android有返回
  • 内部字段:
{
    status: true|false  //布尔型,返回同步淘客打点策略是否设置成功
}

示例代码

var aliBC = api.require('aliBC');
aliBC.setSyncForTaoke({isSyncForTaoke:false},function(ret,err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setIsAuthVip

开启接口免授权模式

注意:请不要随便设置,没有在后台申请相关的权限的,开启后会导致网络请求失败

setIsAuthVip()

示例代码

var aliBC = api.require('aliBC');
aliBC.setIsAuthVip();

可用性

iOS系统,Android系统

可提供的2.0.2及更高版本

setIsvCode

设置App标识字段,可用于区分使用本SDK的具体三方App

setIsvCode({params})

params

code:

  • 类型:字符串
  • 默认:无

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值 仅Android有返回
  • 内部字段:
{
    status: true|false  //布尔型,返回淘客参数是否设置成功
}

示例代码

var aliBC = api.require('aliBC');
aliBC.setIsvCode({code:'xxxx'},function(ret,err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setIsvVersion

设置三方App版本,可用于标识App版本

setIsvVersion({params})

params

version:

  • 类型:字符串
  • 默认:无

示例代码

var aliBC = api.require('aliBC');
aliBC.setIsvVersion({version:'1.0.0'});

可用性

iOS系统,Android系统

可提供的2.0.2及更高版本

setIsvAppName

设置三方App名字,可用于标识App名字(仅iOS有效

setIsvAppName({params})

params

name:

  • 类型:字符串
  • 默认:无

示例代码

var aliBC = api.require('aliBC');
aliBC.setIsvAppName({name:'appname'});

可用性

iOS系统

可提供的2.0.2及更高版本

setTaokeParams

设置淘客全局参数

setTaokeParams({params}, callback(ret))

注意:初始化完成后调用才能生效

params

pid:

adzoneId:

  • 类型:字符串
  • 描述:(可选项)淘宝联盟adzoneId。高佣转链/跨店结算 功能所需, 如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败。功能介绍

extraParams:

  • 类型:JSON对象
  • 描述:(可选项)adzoneId参数不为空时需要此参数,
  • 内部字段:
{
    taokeAppkey: "",              //淘宝联盟后台的APPKEY字段
    ...                        // 后续百川有新参数可以直接在这里扩展
}

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值 仅Android有返回
  • 内部字段:
{
    status: true|false  //布尔型,返回淘客参数是否设置成功
}

示例代码

var aliBC = api.require('aliBC');
aliBC.setTaokeParams({pid:'mm_xxxx_xxxx_xxxx'},function(ret,err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setChannel

设置渠道信息(如果有渠道专享价,需要设置)

setChannel({params})

注意:初始化完成后调用才能生效

params

typeName:

  • 类型:字符串
  • 默认值:“0”
  • 描述:(可选项)设置渠道类型

channelName:

  • 类型:字符串
  • 默认值:null
  • 描述:(可选项)设置渠道名称

示例代码

var aliBC = api.require('aliBC');
aliBC.setChannel({
    typeName:'0',
    channelName:'developer'
},function(ret,err){});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

showLogin

授权登录

showLogin(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    status: true,              //是否授权登录成功
    isLogin : true,            //是否授权登录成功
    nick : '',              //昵称
    avatarUrl : '',         //头像地址
    openId : '',            //用户标识
    openSid : '',            //用户标识
    userid : '',            //仅android有此返回值
    topAccessToken:''        //仅iOS有此返回值
    topAuthCode : ''        //仅iOS有此返回值
}

err:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    code : 1,                //数字类型;错误码
    message : '',           //字符串;错误提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showLogin(function(ret,err){
    if(ret.status){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

logout

注销

logout(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    status: true,              //布尔值,操作成功
}

err:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    code : 1,                //数字类型;错误码
    message : '',           //字符串;错误提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.logout(function(ret,err){
    if(ret.status){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

getUserInfo

获取用户信息

getUserInfo(callback(ret,err))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    status: true|false,      //布尔值,操作是否成功
    isLogin : true,            //是否授权登录了淘宝
    nick : '',              //昵称
    avatarUrl : '',         //头像地址
    openId : '',            //用户标识
    openSid : '',            //用户标识
    userid : '',            //仅android有此返回值
    topAccessToken:''        //仅iOS有此返回值
    topAuthCode : ''        //仅iOS有此返回值
}

示例代码

var aliBC = api.require('aliBC');
aliBC.getUserInfo(function(ret,err){
    if(ret.status){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(ret));
    }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

showDetailPage

打开淘宝商品详情页(注意:现在百川强制跳转手淘,如果没跳手淘而是打开的H5页面 则不能成功购买和加入购物车

showDetailPage({params},callback(ret,err))

params

itemId:

  • 类型:字符串
  • 描述:商品id。支持itemId和openItemId的商品(如:37196464781L,AAHd5d-HAAeGwJedwSnHktBI),必填,不允许为null
  • 注意:客户端openItemId(或者openId)即将下线,请注意使用。

openType:

  • 类型:字符串
  • 默认:'auto'
  • 描述:(可选项)打开页面的方式
  • 取值范围:
    • 'auto' //智能判断(安装了手淘/天猫时打开手淘/天猫,否则走failModeType模式打开)
    • 'native' //手机淘宝/天猫

linkKey:

  • 类型:字符串
  • 默认:无
  • 描述:(可选项)当打开页面的方式(openType)为native时,设置拉起手淘or天猫。(不传则走百川默认设置,建议传值)
  • 取值范围:
    • 'tmall' //拉起天猫
    • 'taobao' //拉起手淘

pid:

adzoneId:

  • 类型:字符串
  • 描述:(可选项)淘宝联盟adzoneId。高佣转链/跨店结算 功能所需, 如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败。功能介绍

extraParams:

  • 类型:JSON对象
  • 描述:(可选项)adzoneId参数不为空时需要此参数,
  • 内部字段:
{
    taokeAppkey: "",              //淘宝联盟后台的APPKEY字段
    ...                        // 后续百川有新参数可以直接在这里扩展
}

backUrl:

  • 类型:字符串
  • 默认:无
  • 描述:用于打开手淘时的 “返回(小把手)” 的点击返回,目前ios传空字符串,android传config.xml文件中配置的urlScheme(即tbopen+appkey)

degradeUrl:

  • 类型:字符串
  • 默认:(可选项)无
  • 描述:降级url,如果唤端失败且设置了降级url,则加载该url

failModeType:

  • 类型:字符串
  • 默认:无 (没安装手淘的时候会打开手淘的下载页面--SDK默认逻辑)
  • 描述:用于控制没安装手淘或者没检测到手淘的时候的打开页面逻辑
  • 取值范围:
    • 'jumpH5' //打开H5页面
    • 'none' //不做处理

pageClose:

  • 类型:布尔型
  • 默认:true
  • 描述:(可选项) 购买商品支付成功后是否关闭淘宝页面。true:关闭,false:不关闭。仅在Android H5页面生效

trackParams:

  • 类型:JSON对象
  • 默认:null
  • 描述:(可选项)自定义参数(暂时没发现啥用,但百川有就保留了)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //布尔值,购买操作成功
    ordersId : [],                    //字符串数组,购买成功后返回的订单号
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: 0,                          //数值类型,淘宝返回的错误code
    message : '',                    //字符串,错误信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showDetailPage(
    {
        itemId:'37196464781L',
        openType:'native',
        backUrl: api.systemType == 'ios' ? '' : 'tbopenXXXX',
        adzoneId:'',
        extraParams:{
              taokeAppkey:''
        },
        pid:'mm_xxxxxx_xxxxxx'
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

showAddCartPage

打开淘宝加入购物车页面(该接口暂未开放)

showAddCartPage({params},callback(ret,err))

params

code:

  • 类型:字符串
  • 描述:打开页面的控制参数
  • 取值:如果后面淘宝开放了该接口,会在论坛示例里面说明

其余参数和showDetailPage接口一致

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:加购/购买成功后返回
  • 内部字段:
{
    status: true,                      //布尔值,操作状态
    message : '加购成功',            //字符串,仅在加购成功后返回的提示信息
    ordersId : [],                    //字符串数组,仅在购买成功后返回的订单号
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: -1,                          //数值类型,code
    message : '',                    //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showAddCartPage(
    {
        itemId:'37196464781L',
        openType:'h5',
        pid:''
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

showMyOrders

打开我的订单页面(该接口暂未开放)

showMyOrders({params},callback(ret,err))

params

code:

  • 类型:字符串
  • 描述:打开页面的控制参数
  • 取值:如果后面淘宝开放了该接口,会在论坛示例里面说明

orderStatus:

  • 类型:int
  • 默认:0
  • 描述:默认跳转页面。0:全部;1:待付款;2:待发货;3:待收货;4:待评价

allOrder:

  • 类型:布尔型
  • 默认:false
  • 描述:false 进行订单分域(只展示通过当前app下单的订单),true 显示所有订单

其余参数(除没有itemId外)和showDetailPage接口一致

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //布尔值,操作状态
    ordersId : [],                    //字符串数组,订单号数组
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: -1,                          //数值类型,code
    message : '',                    //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showMyOrders(
    {
        orderStatus:0,
        allOrder:false
        pid:''
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

showMyCarts

打开我的购物车(该接口暂不稳定,请注意测试;如不能打开可以使用showPageByUrl 传url为https://market.m.taobao.com/app/dinamic/h5-tb-cart-old/index.html实现

showMyCarts({params},callback(ret,err))

params

openType:

  • 类型:字符串
  • 默认:'auto'
  • 描述:(可选项)打开页面的方式:拉起手淘/天猫 和 h5打开页面,默认值:h5
  • 取值范围:
    • 'auto' //智能判断
    • 'native' //手机淘宝/天猫

linkKey:

  • 类型:字符串
  • 默认:无
  • 描述:(可选项)当打开页面的方式(openType)为native时,设置拉起手淘or天猫。(不传则走百川默认设置,建议传值)
  • 取值范围:
    • 'tmall' //拉起天猫
    • 'taobao' //拉起手淘

pid:

adzoneId:

  • 类型:字符串
  • 描述:(可选项)淘宝联盟adzoneId。高佣转链/跨店结算 功能所需, 如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败。功能介绍

extraParams:

  • 类型:JSON对象
  • 描述:(可选项)adzoneId参数不为空时需要此参数,
  • 内部字段:
{
    taokeAppkey: "",              //淘宝联盟后台的APPKEY字段
    ...                        // 后续百川有新参数可以直接在这里扩展
}

backUrl:

  • 类型:字符串
  • 默认:无
  • 描述:用于打开手淘时的 “返回(小把手)” 的点击返回,目前ios传空字符串,android传config.xml文件中配置的urlScheme(即tbopen+appkey)

degradeUrl:

  • 类型:字符串
  • 默认:(可选项)无
  • 描述:降级url,如果唤端失败且设置了降级url,则加载该url

failModeType:

  • 类型:字符串
  • 默认:无 (没安装手淘的时候会打开手淘的下载页面--SDK默认逻辑)
  • 描述:用于控制没安装手淘或者没检测到手淘的时候的打开页面逻辑
  • 取值范围:
    • 'jumpH5' //打开H5页面
    • 'none' //不做处理

pageClose:

  • 类型:布尔型
  • 默认:true
  • 描述:(可选项) 购买商品支付成功后是否关闭淘宝页面。true:关闭,false:不关闭。仅在Android H5页面生效

trackParams:

  • 类型:JSON对象
  • 默认:null
  • 描述:(可选项)自定义参数(暂时没发现啥用,但百川有就保留了)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //布尔值,操作状态
    ordersId : [],                    //字符串数组,订单号数组
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: -1,                          //数值类型,code
    message : '',                    //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showMyCarts(
    {
        pid:''
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

showShopPage

打开淘宝店铺页面

showShopPage({params},callback(ret,err))

params

shopId:

  • 类型:字符串
  • 描述:店铺id,支持明文id

openType:

  • 类型:字符串
  • 默认:'auto'
  • 描述:(可选项)打开页面的方式:拉起手淘/天猫 和 h5打开页面,默认值:h5
  • 取值范围:
    • 'auto' //智能判断
    • 'native' //手机淘宝/天猫

linkKey:

  • 类型:字符串
  • 默认:无
  • 描述:(可选项)当打开页面的方式(openType)为native时,设置拉起手淘or天猫。(不传则走百川默认设置,建议传值)
  • 取值范围:
    • 'tmall' //拉起天猫
    • 'taobao' //拉起手淘

pid:

adzoneId:

  • 类型:字符串
  • 描述:(可选项)淘宝联盟adzoneId。高佣转链/跨店结算 功能所需, 如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败。功能介绍

extraParams:

  • 类型:JSON对象
  • 描述:需要在extraParams中显式传入sellerId,否则同步打点转链失败,
  • 内部字段:
{
    taokeAppkey: "",              //淘宝联盟后台的APPKEY字段
    sellerId                   //(**必传**)
    ...                        // 后续百川有新参数可以直接在这里扩展
}

backUrl:

  • 类型:字符串
  • 默认:无
  • 描述:用于打开手淘时的 “返回(小把手)” 的点击返回,目前ios传空字符串,android传config.xml文件中配置的urlScheme(即tbopen+appkey)

degradeUrl:

  • 类型:字符串
  • 默认:(可选项)无
  • 描述:降级url,如果唤端失败且设置了降级url,则加载该url

failModeType:

  • 类型:字符串
  • 默认:无 (没安装手淘的时候会打开手淘的下载页面--SDK默认逻辑)
  • 描述:用于控制没安装手淘或者没检测到手淘的时候的打开页面逻辑
  • 取值范围:
    • 'jumpH5' //打开H5页面
    • 'none' //不做处理

pageClose:

  • 类型:布尔型
  • 默认:true
  • 描述:(可选项) 购买商品支付成功后是否关闭淘宝页面。true:关闭,false:不关闭。仅在Android H5页面生效

trackParams:

  • 类型:JSON对象
  • 默认:null
  • 描述:(可选项)自定义参数(暂时没发现啥用,但百川有就保留了)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //布尔值,操作状态
    ordersId : [],                    //字符串数组,订单号数组
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: -1,                          //数值类型,code
    message : '',                    //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showShopPagge(
    {
        shopId:'60552065',
        openType:'h5',
        pid:''
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

showPageByUrl

打开url展示页面。(注意 打开淘系地址会跳转手淘,具体页面打开逻辑需要自己多测试!!!)

showPageByUrl({params},callback(ret,err))

params

url:

  • 类型:字符串
  • 描述:url

openType:

  • 类型:字符串
  • 默认:'auto'
  • 描述:(可选项)打开页面的方式:拉起手淘/天猫 和 h5打开页面,默认值:h5
  • 取值范围:
    • 'auto' //智能判断
    • 'native' //手机淘宝/天猫

linkKey:

  • 类型:字符串
  • 默认:无
  • 描述:(可选项)当打开页面的方式(openType)为native时,设置拉起手淘or天猫。(不传则走百川默认设置,建议传值)
  • 取值范围:
    • 'tmall' //拉起天猫
    • 'taobao' //拉起手淘

pid:

adzoneId:

  • 类型:字符串
  • 描述:(可选项)淘宝联盟adzoneId。高佣转链/跨店结算 功能所需, 如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败。功能介绍

extraParams:

  • 类型:JSON对象
  • 描述:(可选项)adzoneId参数不为空时需要此参数,
  • 内部字段:
{
    taokeAppkey: "",              //淘宝联盟后台的APPKEY字段
    ...                        // 后续百川有新参数可以直接在这里扩展
}

backUrl:

  • 类型:字符串
  • 默认:无
  • 描述:用于打开手淘时的 “返回(小把手)” 的点击返回,目前ios传空字符串,android传config.xml文件中配置的urlScheme(即tbopen+appkey)

degradeUrl:

  • 类型:字符串
  • 默认:(可选项)无
  • 描述:降级url,如果唤端失败且设置了降级url,则加载该url

failModeType:

  • 类型:字符串
  • 默认:无 (没安装手淘的时候会打开手淘的下载页面--SDK默认逻辑)
  • 描述:用于控制没安装手淘或者没检测到手淘的时候的打开页面逻辑
  • 取值范围:
    • 'jumpH5' //打开H5页面
    • 'none' //不做处理

pageClose:

  • 类型:布尔型
  • 默认:true
  • 描述:(可选项) 购买商品支付成功后是否关闭淘宝页面。true:关闭,false:不关闭。仅在Android H5页面生效

trackParams:

  • 类型:JSON对象
  • 默认:null
  • 描述:(可选项)自定义参数(暂时没发现啥用,但百川有就保留了)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //布尔值,操作状态
    ordersId : [],                    //字符串数组,订单号数组
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: -1,                          //数值类型,code
    message : '',                    //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showPageByUrl(
    {
        url:'https://market.m.taobao.com/app/dinamic/h5-tb-cart-old/index.html',
        pid:'',
        pageClose:false
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

外部webview方式打开电商组件 相关接口:

showPageByUrlWeb

使用外部webview方式,打开url展示页面。(注意 打开淘系地址会跳转手淘,具体页面打开逻辑需要自己多测试!!!)

showPageByUrlWeb({params},callback(ret,err))

params

url:

  • 类型:字符串
  • 描述:url

hookUrl:

  • 类型:字符串
  • 默认:无
  • 描述:要拦截的url (当页面中跳转的链接包含hookUrl字段时 进行拦截,如:ios下传"tbopen://"可以阻止目前的二合一页面跳转手淘)

rect:

  • 类型:JSON 对象
  • 默认值:充满整个父页面
  • 描述:(可选项)frame 的位置和大小。
  • 内部字段:
{
    x:0,             //左上角x坐标
    y:0,             //左上角y坐标
    w:320,           //宽度,若传'auto',页面从x位置开始自动充满父页面宽度
    h:480            //高度,若传'auto',页面从y位置开始自动充满父页面高度
}

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

fixed:

  • 类型:布尔
  • 默认值:true
  • 描述:是否将模块视图固定到窗口上,不跟随窗口上下滚动,可为空

jsObjectName:

  • 类型:字符串
  • 描述:(可选项) 注入到h5页面的全局window属性对象名称,可与addJsToPage配合使用。

openType:

  • 类型:字符串
  • 默认:'auto'
  • 描述:(可选项)打开页面的方式:拉起手淘/天猫 和 h5打开页面,默认值:h5
  • 取值范围:
    • 'auto' //智能判断
    • 'native' //手机淘宝/天猫

linkKey:

  • 类型:字符串
  • 默认:无
  • 描述:(可选项)当打开页面的方式(openType)为native时,设置拉起手淘or天猫。(不传则走百川默认设置,建议传值)
  • 取值范围:
    • 'tmall' //拉起天猫
    • 'taobao' //拉起手淘

pid:

adzoneId:

  • 类型:字符串
  • 描述:(可选项)淘宝联盟adzoneId。高佣转链/跨店结算 功能所需, 如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败。功能介绍

extraParams:

  • 类型:JSON对象
  • 描述:(可选项)adzoneId参数不为空时需要此参数,
  • 内部字段:
{
    taokeAppkey: "",              //淘宝联盟后台的APPKEY字段
    ...                        // 后续百川有新参数可以直接在这里扩展
}

backUrl:

  • 类型:字符串
  • 默认:无
  • 描述:用于打开手淘时的 “返回(小把手)” 的点击返回,目前ios传空字符串,android传config.xml文件中配置的urlScheme(即tbopen+appkey)

degradeUrl:

  • 类型:字符串
  • 默认:(可选项)无
  • 描述:降级url,如果唤端失败且设置了降级url,则加载该url

failModeType:

  • 类型:字符串
  • 默认:无 (没安装手淘的时候会打开手淘的下载页面--SDK默认逻辑)
  • 描述:用于控制没安装手淘或者没检测到手淘的时候的打开页面逻辑
  • 取值范围:
    • 'jumpH5' //打开H5页面
    • 'none' //不做处理

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //布尔值,操作状态
    ordersId : [],                    //字符串数组,订单号数组
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: -1,                          //数值类型,code
    message : '',                    //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.showPageByUrlWeb(
    {
        url:'https://docs.apicloud.com/Client-API/Open-SDK/aliBC',
        pid:'',
        rect:{
            x:0,
            y:0,
            w:'auto',
            h:480
        },
        jsObjectName:'aliBC'
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

addPageFinListener

监听页面加载完成后返回页面的title和url。

注意:当采用外部传入webview方式打开电商组件时(本模块中调用showXxxWeb系列接口打开淘宝页面时)有效。

addPageFinListener(callback(ret,err))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    added:true                //布尔值,标识已经添加监听
    status: true,              //布尔值,成功获取到title 和 url
    title : '',                //页面的标题
    url : '',               //页面的url
}

示例代码

var aliBC = api.require('aliBC');
aliBC.addPageFinListener(function(ret,err){
    if(ret.status){
        alert(JSON.stringify(ret));
    }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

addLoadingListener

对页面shouldStartLoadWithRequest时进行监听,返回页面的title和跳转的url。

注意:当采用外部传入webview方式打开电商组件时(本模块中调用showXxxWeb系列接口打开淘宝页面时)有效。

addLoadingListener(callback(ret,err))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    added:true                //布尔值,标识已经添加监听
    status: true,              //布尔值,成功获取到title 和 url
    title : '',                //页面的标题
    url : '',               //页面的url
}

示例代码

var aliBC = api.require('aliBC');
aliBC.addLoadingListener(function(ret,err){
    if(ret.status){
        alert(JSON.stringify(ret));
    }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

addJsToPage

在当前打开的淘宝页面加载完成后注入一段js脚本到H5页面。

注意:此接口在采用外部传入webview方式打开电商组件时(本模块中调用showXxxWeb系列接口打开淘宝页面时,可配合传参 jsObjectName 一起使用)有效。

addJsToPage({params}, callback(ret))

params

javaScript:

  • 类型:字符串
  • 描述:javaScript脚本
  • 注意:必须以"javascript:{js具体内容}"的格式组织

appointUrl:

  • 类型:字符串
  • 默认值:"all"
  • 描述:(可选项)指定Js脚本注入到的页面
  • 取值范围:
    • all //所有H5页面
    • justHome //仅首页
    • 以http开头的url字符串 //仅该指定的url页面
    • (非以上三种情况) //除去首页的其他所有页面

delay:

  • 类型:Double
  • 默认值:0
  • 描述:(可选项)延时执行js脚本的时间,单位为 s(秒)

once:

  • 类型:布尔型
  • 默认值:false
  • 描述:(可选项)回调成功一次后是否清除对Javascript函数的引用,便于内存回收。通常为false。

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值。
  • 注意:除 added外,其他返回字段仅当javaScript脚本中有执行“jsObjectName.jsCallBack(string,string[],string[])” 时才有
  • 内部字段:
{
    added:true                //布尔值,标识已经添加监听
    status: true              //布尔值,h5操作成功
    string: ''                //字符串
    array0: []                 //数组(Android中只支持字符串数组)
    array1: []                 //数组(Android中只支持字符串数组)
}

示例代码

var aliBC = api.require('aliBC');
aliBC.addJsToPage(
    {
        javaScript:'javascript:{window.jsObjectName.jsCallBack("addJsToPage测试",null,null)}'//jsObjectName替换为打开淘宝页面时传的 jsObjectName 参数。
    },function(ret,err){
        if(ret.added){
            //调用aliBC.showXXXWeb 打开淘宝页面
        }else if(ret.status){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
    }
);

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

removeJsListener

移除页面加载完成的监听和js脚本

removeJsListener({params})

params

name:

  • 类型:字符串
  • 默认:'' (默认为 同时移除javaScript脚本、PageFinListener和loadingListener)
  • 描述:(可选项) 移除的类型,javaScript脚本/PageFinListener/loadingListener。
  • 取值范围:
    • 'pageFinishedListener' //移除PageFinListener
    • 'loadingListener' //移除loadingListener
    • 'javaScript' //移除javaScript脚本

示例代码

var aliBC = api.require('aliBC');
aliBC.removeJsListener();//同时移除javaScript脚本和PageFinListener

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

webGoBack

控制当前外部的webview回退

webGoBack(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:当webview不能回退时返回
  • 内部字段:
{
    status: true,                      //布尔值,操作成功
    message : '最后一个页面了',        //字符串,提示信息
}

示例代码

var aliBC = api.require('aliBC');
aliBC.webGoBack(function(ret,err){
    alert(JSON.stringify(ret));
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

removeWeb

从视图中移除当前通过showxxxWeb打开的百川页面。

removeWeb()

示例代码

var aliBC = api.require('aliBC');
aliBC.removeWeb();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setHookUrl

设置要拦截的url。(当使用外部webview方式打开百川页面时 有效)

setHookUrl({params},callback(ret,err))

params

hookUrl:

  • 类型:字符串
  • 默认:无
  • 描述:要拦截的url (当页面跳转的链接包含hookUrl字段时 进行拦截,若 不传/为空 则清除已有拦截

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    set: true,                      //布尔值,操作状态
}

示例代码

var aliBC = api.require('aliBC');
aliBC.hookUrl(
    {
        hookUrl:'tbopen://',
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

getFeature

获取配置文件config.xml中的feature配置参数(同步返回

getFeature({params})

params

featureName:

  • 类型:字符串
  • 默认:无
  • 描述:feature的name字段

paramName:

  • 类型:字符串
  • 默认:无
  • 描述:对应param的name字段

示例代码

var aliBC = api.require('aliBC');
var value = aliBC.getFeature(
    {
        featureName:'aliBC',
        paramName: 'urlScheme'
    });

可用性

ios系统,Android系统

可提供的2.0.0及更高版本