外部webview方式打开电商组件 相关接口:
工具类接口
aliBC插件 封装了阿里百川电商sdk,能够使你的app快速集成淘宝的电商功能,包括授权登录,查看商品详情,查看店铺,查看我的订单,查看购物车和商品支付等整个交易闭环,同时支持外部webview的方式打开url,使用本插件需要遵从阿里百川的申请流程,需要登录阿里百川,进入控制台,创建应用并获取sdk的安全图片,此外该插件需要和 xxxkey(该插件为自定义插件,封装安全图片用,插件名称可以自己定义)插件绑定使用。
注意事项:
使用该插件的 优点:
1.首先加入百川http://baichuan.taobao.com/,在阿里百川控制台创建应用获取appkey
2.在阿里百川控制台“API申请”中申请相应的API权限
3.在阿里百川控制台"我的产品后台"中查看并”开通百川电商sdk“
4.生成安全图片: 百川套件平台 -> SDK管理 -> 获取安全图片(使用V6版安全图片,android 需要上传apk,iOS只需要填写 bundleId:可在apicloud控制台概览里查看)
5.套件申请(通过url打开淘系页面时,可以透传登录状态):百川套件平台 -> 套件申请
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.使用此插件之前需先配置 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>
初始化SDK(调用优先级最高,只需要调用一次)
asyncInit({param},callback(ret,err))
addLoginState:
类型:布尔类型
默认值:true
描述:(可选项)是否对淘宝授权登录事件进行监听,设置监听后登录淘宝会触发一个名为“TBLoginEvent”的广播事件,可通过api.addEventListener对该事件进行监听。
示例:
设置监听后可以添加api事件监听来获取相关信息:
api.addEventListener({name: 'TBLoginEvent'}, function(ret, err) {
console.log(ret.openSid+','+ret.openId+','+ret.nick+','+ret.avatarUrl);
});
ret:
{
status: true //布尔型,初始化成功
code:0 //数字型
message:'淘宝初始化成功' //字符串,提示信息
}
err:
{
code:-1 //数字型,错误提示码
message:'' //字符串,提示信息
}
var aliBC = api.require('aliBC');
aliBC.asyncInit({
// addLoginState:false
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置SDK 淘客打点策略(sdk默认采用淘客同步打点)
setSyncForTaoke({params}, callback(ret))
注意:初始化完成后调用才能生效
isSyncForTaoke:
ret:
{
status: true|false //布尔型,返回同步淘客打点策略是否设置成功
}
var aliBC = api.require('aliBC');
aliBC.setSyncForTaoke({isSyncForTaoke:false},function(ret,err){
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开启接口免授权模式
注意:请不要随便设置,没有在后台申请相关的权限的,开启后会导致网络请求失败
setIsAuthVip()
var aliBC = api.require('aliBC');
aliBC.setIsAuthVip();
iOS系统,Android系统
可提供的2.0.2及更高版本
设置App标识字段,可用于区分使用本SDK的具体三方App
setIsvCode({params})
code:
ret:
{
status: true|false //布尔型,返回淘客参数是否设置成功
}
var aliBC = api.require('aliBC');
aliBC.setIsvCode({code:'xxxx'},function(ret,err){
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置三方App版本,可用于标识App版本
setIsvVersion({params})
version:
var aliBC = api.require('aliBC');
aliBC.setIsvVersion({version:'1.0.0'});
iOS系统,Android系统
可提供的2.0.2及更高版本
设置三方App名字,可用于标识App名字(仅iOS有效)
setIsvAppName({params})
name:
var aliBC = api.require('aliBC');
aliBC.setIsvAppName({name:'appname'});
iOS系统
可提供的2.0.2及更高版本
设置淘客全局参数
setTaokeParams({params}, callback(ret))
注意:初始化完成后调用才能生效
pid:
adzoneId:
extraParams:
{
taokeAppkey: "", //淘宝联盟后台的APPKEY字段
... // 后续百川有新参数可以直接在这里扩展
}
ret:
{
status: true|false //布尔型,返回淘客参数是否设置成功
}
var aliBC = api.require('aliBC');
aliBC.setTaokeParams({pid:'mm_xxxx_xxxx_xxxx'},function(ret,err){
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置渠道信息(如果有渠道专享价,需要设置)
setChannel({params})
注意:初始化完成后调用才能生效
typeName:
channelName:
var aliBC = api.require('aliBC');
aliBC.setChannel({
typeName:'0',
channelName:'developer'
},function(ret,err){});
iOS系统,Android系统
可提供的1.0.0及更高版本
授权登录
showLogin(callback(ret,err))
ret:
{
status: true, //是否授权登录成功
isLogin : true, //是否授权登录成功
nick : '', //昵称
avatarUrl : '', //头像地址
openId : '', //用户标识
openSid : '', //用户标识
userid : '', //仅android有此返回值
topAccessToken:'' //仅iOS有此返回值
topAuthCode : '' //仅iOS有此返回值
}
err:
{
code : 1, //数字类型;错误码
message : '', //字符串;错误提示信息
}
var aliBC = api.require('aliBC');
aliBC.showLogin(function(ret,err){
if(ret.status){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
注销
logout(callback(ret,err))
ret:
{
status: true, //布尔值,操作成功
}
err:
{
code : 1, //数字类型;错误码
message : '', //字符串;错误提示信息
}
var aliBC = api.require('aliBC');
aliBC.logout(function(ret,err){
if(ret.status){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
获取用户信息
getUserInfo(callback(ret,err))
ret:
{
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){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(ret)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
打开淘宝商品详情页(注意:现在百川强制跳转手淘,如果没跳手淘而是打开的H5页面 则不能成功购买和加入购物车)
showDetailPage({params},callback(ret,err))
itemId:
openType:
linkKey:
pid:
adzoneId:
extraParams:
{
taokeAppkey: "", //淘宝联盟后台的APPKEY字段
... // 后续百川有新参数可以直接在这里扩展
}
backUrl:
degradeUrl:
failModeType:
pageClose:
trackParams:
ret:
{
status: true, //布尔值,购买操作成功
ordersId : [], //字符串数组,购买成功后返回的订单号
}
err:
{
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){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
打开淘宝加入购物车页面(该接口暂未开放)
showAddCartPage({params},callback(ret,err))
code:
其余参数和showDetailPage接口一致
ret:
{
status: true, //布尔值,操作状态
message : '加购成功', //字符串,仅在加购成功后返回的提示信息
ordersId : [], //字符串数组,仅在购买成功后返回的订单号
}
err:
{
code: -1, //数值类型,code
message : '', //字符串,提示信息
}
var aliBC = api.require('aliBC');
aliBC.showAddCartPage(
{
itemId:'37196464781L',
openType:'h5',
pid:''
},function(ret,err){
if(ret){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
打开我的订单页面(该接口暂未开放)
showMyOrders({params},callback(ret,err))
code:
orderStatus:
allOrder:
其余参数(除没有itemId外)和showDetailPage接口一致
ret:
{
status: true, //布尔值,操作状态
ordersId : [], //字符串数组,订单号数组
}
err:
{
code: -1, //数值类型,code
message : '', //字符串,提示信息
}
var aliBC = api.require('aliBC');
aliBC.showMyOrders(
{
orderStatus:0,
allOrder:false
pid:''
},function(ret,err){
if(ret){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
打开我的购物车(该接口暂不稳定,请注意测试;如不能打开可以使用showPageByUrl 传url为https://market.m.taobao.com/app/dinamic/h5-tb-cart-old/index.html实现)
showMyCarts({params},callback(ret,err))
openType:
linkKey:
pid:
adzoneId:
extraParams:
{
taokeAppkey: "", //淘宝联盟后台的APPKEY字段
... // 后续百川有新参数可以直接在这里扩展
}
backUrl:
degradeUrl:
failModeType:
pageClose:
trackParams:
ret:
{
status: true, //布尔值,操作状态
ordersId : [], //字符串数组,订单号数组
}
err:
{
code: -1, //数值类型,code
message : '', //字符串,提示信息
}
var aliBC = api.require('aliBC');
aliBC.showMyCarts(
{
pid:''
},function(ret,err){
if(ret){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
打开淘宝店铺页面
showShopPage({params},callback(ret,err))
shopId:
openType:
linkKey:
pid:
adzoneId:
extraParams:
{
taokeAppkey: "", //淘宝联盟后台的APPKEY字段
sellerId //(**必传**)
... // 后续百川有新参数可以直接在这里扩展
}
backUrl:
degradeUrl:
failModeType:
pageClose:
trackParams:
ret:
{
status: true, //布尔值,操作状态
ordersId : [], //字符串数组,订单号数组
}
err:
{
code: -1, //数值类型,code
message : '', //字符串,提示信息
}
var aliBC = api.require('aliBC');
aliBC.showShopPagge(
{
shopId:'60552065',
openType:'h5',
pid:''
},function(ret,err){
if(ret){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
打开url展示页面。(注意 打开淘系地址会跳转手淘,具体页面打开逻辑需要自己多测试!!!)
showPageByUrl({params},callback(ret,err))
url:
openType:
linkKey:
pid:
adzoneId:
extraParams:
{
taokeAppkey: "", //淘宝联盟后台的APPKEY字段
... // 后续百川有新参数可以直接在这里扩展
}
backUrl:
degradeUrl:
failModeType:
pageClose:
trackParams:
ret:
{
status: true, //布尔值,操作状态
ordersId : [], //字符串数组,订单号数组
}
err:
{
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){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
#外部webview方式打开电商组件 相关接口:
使用外部webview方式,打开url展示页面。(注意 打开淘系地址会跳转手淘,具体页面打开逻辑需要自己多测试!!!)
showPageByUrlWeb({params},callback(ret,err))
url:
hookUrl:
rect:
{
x:0, //左上角x坐标
y:0, //左上角y坐标
w:320, //宽度,若传'auto',页面从x位置开始自动充满父页面宽度
h:480 //高度,若传'auto',页面从y位置开始自动充满父页面高度
}
fixedOn:
fixed:
jsObjectName:
openType:
linkKey:
pid:
adzoneId:
extraParams:
{
taokeAppkey: "", //淘宝联盟后台的APPKEY字段
... // 后续百川有新参数可以直接在这里扩展
}
backUrl:
degradeUrl:
failModeType:
ret:
{
status: true, //布尔值,操作状态
ordersId : [], //字符串数组,订单号数组
}
err:
{
code: -1, //数值类型,code
message : '', //字符串,提示信息
}
var aliBC = api.require('aliBC');
aliBC.showPageByUrlWeb(
{
url:'https://developer.yonyou.com/docs/Client-API/Open-SDK/aliBC',
pid:'',
rect:{
x:0,
y:0,
w:'auto',
h:480
},
jsObjectName:'aliBC'
},function(ret,err){
if(ret){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
监听页面加载完成后返回页面的title和url。
注意:当采用外部传入webview方式打开电商组件时(本插件中调用showXxxWeb系列接口打开淘宝页面时)有效。
addPageFinListener(callback(ret,err))
ret:
{
added:true //布尔值,标识已经添加监听
status: true, //布尔值,成功获取到title 和 url
title : '', //页面的标题
url : '', //页面的url
}
var aliBC = api.require('aliBC');
aliBC.addPageFinListener(function(ret,err){
if(ret.status){
api.alert({msg: JSON.stringify(ret)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
对页面shouldStartLoadWithRequest时进行监听,返回页面的title和跳转的url。
注意:当采用外部传入webview方式打开电商组件时(本插件中调用showXxxWeb系列接口打开淘宝页面时)有效。
addLoadingListener(callback(ret,err))
ret:
{
added:true //布尔值,标识已经添加监听
status: true, //布尔值,成功获取到title 和 url
title : '', //页面的标题
url : '', //页面的url
}
var aliBC = api.require('aliBC');
aliBC.addLoadingListener(function(ret,err){
if(ret.status){
api.alert({msg: JSON.stringify(ret)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
在当前打开的淘宝页面加载完成后注入一段js脚本到H5页面。
注意:此接口在采用外部传入webview方式打开电商组件时(本插件中调用showXxxWeb系列接口打开淘宝页面时,可配合传参 jsObjectName 一起使用)有效。
addJsToPage({params}, callback(ret))
javaScript:
appointUrl:
delay:
once:
ret:
{
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){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
}
);
ios系统,Android系统
可提供的1.0.0及更高版本
移除页面加载完成的监听和js脚本
removeJsListener({params})
name:
var aliBC = api.require('aliBC');
aliBC.removeJsListener();//同时移除javaScript脚本和PageFinListener
ios系统,Android系统
可提供的1.0.0及更高版本
控制当前外部的webview回退
webGoBack(callback(ret))
ret:
{
status: true, //布尔值,操作成功
message : '最后一个页面了', //字符串,提示信息
}
var aliBC = api.require('aliBC');
aliBC.webGoBack(function(ret,err){
api.alert({msg: JSON.stringify(ret)});
});
ios系统,Android系统
可提供的1.0.0及更高版本
从视图中移除当前通过showxxxWeb打开的百川页面。
removeWeb()
var aliBC = api.require('aliBC');
aliBC.removeWeb();
iOS系统,Android系统
可提供的1.0.0及更高版本
设置要拦截的url。(当使用外部webview方式打开百川页面时 有效)
setHookUrl({params},callback(ret,err))
hookUrl:
ret:
{
set: true, //布尔值,操作状态
}
var aliBC = api.require('aliBC');
aliBC.hookUrl(
{
hookUrl:'tbopen://',
},function(ret,err){
if(ret){
api.alert({msg: JSON.stringify(ret)});
}else{
api.alert({msg: JSON.stringify(err)});
}
});
ios系统,Android系统
可提供的1.0.0及更高版本
获取配置文件config.xml中的feature配置参数(同步返回)
getFeature({params})
featureName:
paramName:
var aliBC = api.require('aliBC');
var value = aliBC.getFeature(
{
featureName:'aliBC',
paramName: 'urlScheme'
});
ios系统,Android系统
可提供的2.0.0及更高版本