aliBCzb

论坛示例

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

概述

aliBCzb模块 封装了阿里百川旗舰版最新sdk(包含直播间、新套件等功能), 能够使你的app快速集成淘宝的电商功能。

注意事项:

  • 当前对应百川SDK版本为Android-5.0.0.15 ios-5.0.0.4
  • 请对照百川相应的文档接入

准备事项

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

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

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

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

5.套件申请和配置(申请地址) 申请:

配置:

分别配置购物车和商品详情套件:

配置底部分享按钮,如果要实现分享功能,底部-分享icon跳转url这一项一定要配置为你registerNavigateUrl接口中传入的hookPrefix字段,方便后面拦截分享功能:

发布套件,在app开发过程中可以选择白名单进行快速调试。套件的所有改动都需要发布方可生效!

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

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

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

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

8.配置百川SDK自定义模块:(由于sdk较大/和其他模块有冲突,所以单独把百川的sdk提出来使用)

下载安卓 aliBCVipSdk模块, 下载ios aliBCVipSdk模块, 上传到APIcloud后台作为自定义模块添加到相应的App中。(请查看论坛示例)

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

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

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

    • 配置示例:

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

asyncInit

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

asyncInit(callback(ret,err))

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.asyncInit(function(ret,err){});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

registerNavigateUrl

注册分享实现(注意:该接口只能调用一次,建议放在index里面调用

registerNavigateUrl({params},callback(ret))

params

hookPrefix:

  • 类型:字符串
  • 默认:空
  • 描述: 如百川页面事件返回的URL前缀和所传hookPrefix匹配,则进行拦截(由你自行处理逻辑,不走百川默认打开wap页面)

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:返回值
  • 内部字段:
{
    url: '',  //openUrl
    param: {} // 仅ios
}

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.registerNavigateUrl({
    hookPrefix: 'hook://'
}function(ret,err){
    alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

registerImage

注册图片库实现

registerImage()

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.registerImage();

可用性

iOS系统,Android系统

可提供的2.0.2及更高版本

sdkVersion

同步返回sdk版本

sdkVersion()

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.sdkVersion();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setIsvVersion

设置三方媒体应用版本号

setIsvVersion({params})

params

version:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的2.0.2及更高版本

setDebug

打开|关闭调试

setDebug({params})

params

on:

  • 类型:布尔值
  • 默认:true

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.setDebug({on:false});

可用性

iOS系统

可提供的2.0.2及更高版本

isDebug

同步返回 是否debug

isDebug()

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.isDebug();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setChannel

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

setChannel({params})

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

params

typeName:

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

channelName:

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

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.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 aliBCzb = api.require('aliBCzb');
aliBCzb.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 aliBCzb = api.require('aliBCzb');
aliBCzb.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 aliBCzb = api.require('aliBCzb');
aliBCzb.getUserInfo(function(ret,err){
    if(ret.status){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(ret));
    }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

openByCode

打开电商套件页面

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

params

code:

  • 类型:字符串
  • 描述:套件code
  • 默认:'detail'

id:

  • 类型:字符串
  • 描述:商品id(详情页面必传)

shopId:

  • 类型:字符串
  • 描述:店铺id(店铺页面必传)

sellerId:

  • 类型:字符串
  • 描述:卖家id(店铺页面必传)

biz_extParams:

  • 类型:字符串
  • 描述:扩展业务参数(涉及到联盟侧诸如返佣比例等参数,具体含义及获取会在分佣相关部分说明)
  • 内部字段: 请参考百川文档AlibcBizParams参数的extParams字段

openType:

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

linkKey:

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

pid:

relationId:

  • 类型:字符串
  • 描述:渠道id(非必填项)

materialSourceUrl:

  • 类型:字符串
  • 描述:媒体物料来源url(非必填项):数据链路的回溯支持

tk_extParams:

  • 类型:JSON对象
  • 描述:(可选项)扩展参数(分佣相关的),TaokeParams参数中的extParams字段
  • 内部字段: 请参考百川文档TaokeParams参数中的extParams字段

backUrl:

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

degradeUrl:

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

failModeType:

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

trackParams:

  • 类型:JSON对象
  • 默认:null
  • 描述:(可选项)链路跟踪参数(自定义)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //页面打开成功
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: 0,                          //页面打开失败
    message : '',                    //字符串,错误信息
}

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.openByCode(
    {
        code: 'detail',
        id:'37196464781L',
        openType:'native',
        backUrl: api.systemType == 'ios' ? '' : 'tbopenXXXX',
        pid:'mm_xxxxxx_xxxxxx'
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

openByUrl

通过url打开电商页面

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

params

url:

  • 类型:字符串
  • 描述:目标打开的url

openType:

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

linkKey:

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

relationId:

  • 类型:字符串
  • 描述:渠道id(非必填项)

materialSourceUrl:

  • 类型:字符串
  • 描述:媒体物料来源url(非必填项):数据链路的回溯支持

tk_extParams:

  • 类型:JSON对象
  • 描述:(可选项)扩展参数(分佣相关的),TaokeParams参数中的extParams字段
  • 内部字段: 请参考百川文档TaokeParams参数中的extParams字段

backUrl:

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

degradeUrl:

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

failModeType:

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

trackParams:

  • 类型:JSON对象
  • 默认:null
  • 描述:(可选项)链路跟踪参数(自定义)

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:购买成功后返回
  • 内部字段:
{
    status: true,                      //页面打开成功
}

err:

  • 类型:JSON对象
  • 描述:错误时返回
  • 内部字段:
{
    code: 0,                          //页面打开失败
    message : '',                    //字符串,错误信息
}

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.openByUrl(
    {
        url: '....',
        openType:'native',
        backUrl: api.systemType == 'ios' ? '' : 'tbopenXXXX',
        pid:'mm_xxxxxx_xxxxxx'
    },function(ret,err){
        if(ret){
            alert(JSON.stringify(ret));
        }else{
            alert(JSON.stringify(err));
        }
});

可用性

ios系统,Android系统

可提供的1.0.0及更高版本

setOpenAnalysisTool

打开日志分析工具 仅android

setOpenAnalysisTool({params})

params

isOn:

  • 类型:boolean
  • 默认值: true
  • 描述:是否打开

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.setOpenAnalysisTool();

可用性

Android系统

可提供的1.1.0及更高版本

openAnalyzerActivity

直接打开自检工具主界面 (注意:需要开启debug模式!)

openAnalyzerActivity()

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.openAnalyzerActivity();

可用性

ios,Android系统

可提供的1.1.0及更高版本

showFloatWindow

悬浮窗的形式打开自检工具(该方式需要申请悬浮窗权限) (注意:需要开启debug模式!)

showFloatWindow()

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.showFloatWindow();

可用性

ios,Android系统

可提供的1.1.0及更高版本

showAuthDialog

TOP Native授权

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

params

iconUrl:

  • 类型:字符串
  • 默认:应用logo图标
  • 描述:授权弹窗的icon,支持url

name:

  • 类型:字符串
  • 默认:''
  • 描述:授权应用名称

appKey:

  • 类型:字符串
  • 默认:''
  • 描述:授权应用的百川appKey

callback(ret,err)

ret:

  • 类型:JSON对象
  • 描述:成功后返回
  • 内部字段:
{
    status: true,                      //授权成功
    accessToken: '',
    expireTime: ''
}

err:

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

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.showAuthDialog({
    name: 'appName',
    appKey:'22511213',
    iconUrl: ''
},function(ret, err){
    //TODO: ...
});

可用性

ios,Android系统

可提供的1.1.0及更高版本

registerEventListener

套件相关事件会通过回调方式返回,包括通用事件名称和事件内容。 仅android

registerEventListener(callback(ret, err))

callback(ret,err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    name: '',                      //事件名称
    content: ''                    //事件内容,一般为json字符串
}

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.registerEventListener(function(ret){
    alert(JSON.stringify(ret))
});

可用性

Android系统

可提供的1.1.0及更高版本

closePage

关闭百川code页面

closePage({params})

params

animated:

  • 类型:布尔值
  • 默认:true
  • 描述:是否需要过渡动画 仅ios

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.closePage();

可用性

Android系统

可提供的1.2.0及更高版本

getUtdid

获取utdid

getUtdid(callback(ret, err))

callback(ret,err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    utdid: ''
}

示例代码

var aliBCzb = api.require('aliBCzb');
aliBCzb.getUtdid(function(ret){
    alert(JSON.stringify(ret))
});

可用性

Android系统

可提供的1.1.0及更高版本