为接入百川JSBridge引擎的用户提供通过js调用Native的能力,获取设备信息、判断是否安装手淘/天猫、发送mtop请求、跳转手淘/天猫的店铺、详情URL。目前最新版本号是0.3.5。
ios JSBridge注入:
//根据链接打开页面 //ALiTradeWebViewController是你承载你自己webview的vc.. ALiTradeWebViewController* myView = [[ALiTradeWebViewController alloc] init]; id<ALiTradePage> page = [ALiTradePageFactory page: @"http://h5.m.taobao.com/cm/snap/index.html?id=527140984722"]; [[ALiTradeSDK sharedInstance].tradeService show: myView webView: myView.webView page:page showParams:nil taoKeParams: nil trackParam: trackParam tradeProcessSuccessCallback:nil tradeProcessFailedCallback:nil];
Android JSBridge注入:
[注意]:当传入webviewClient,并重载shouldOverrideUrlLoading方法时,遇到淘系链接情况下(即访问淘宝、天猫、登录、购物车等页面时),该方法返回值要为false,否则可能会出现业务流程错误问题。
/** * 打开电商组件,支持使用外部webview * * @param activity 必填 * @param webView 外部 webView * @param webViewClient webview的webViewClient * @param webChromeClient webChromeClient客户端 * @param tradePage 页面类型,必填,不可为null,详情见下面tradePage类型介绍 * @param showParams show参数 * @param taokeParams 淘客参数 * @param trackParam yhhpass参数 * @param tradeProcessCallback 交易流程的回调,必填,不允许为null; * @return 0标识跳转到手淘打开了,1标识用h5打开,-1标识出错 */ AlibcTrade.show(activity, webView, webViewClient, webChromeClient, tradePage, showParams, taokeParams, trackParam, new AlibcTradeCallback() { @Override public void onTradeSuccess(TradeResult tradeResult) { //打开电商组件,用户操作中成功信息回调。tradeResult:成功信息(结果类型:加购,支付;支付结果) } @Override public void onFailure(int code, String msg) { //打开电商组件,用户操作中错误信息回调。code:错误码;msg:错误信息 } });
cdn路径格式 //g.alicdn.com/mtb/lib-BCJSBridge/{版本号}/bc-jsbridge.js
。
<script src="//g.alicdn.com/mtb/lib-BCJSBridge/0.3.5/bc-jsbridge.js"></script>
如果返回的code值严格等于 “=== 0” 则是与客户端通信成功,否则失败。
成功:例如:{“code”: 0, “message”:"“, ”data“: {…}}
失败: 例如:{”code“: 6, ”message“:”BC_FAILED"}
示例代码:
Baichuan.getDeviceInfo(functon(result){ if(result.code === 0){ /* 成功 */ }else{ /* 失败 */ } });
百川JSBridge提供的方法挂载到了window.Baichuan上,属性和方法通过该对象来调用。
目前提供了以下API:
1.Baichuan.getDeviceInfo(callback)
输入参数
无
回调参数( (result)=>{ /* 特指 result.data */ } ):
回调参数将会在回调方法中传递,如果成功获取设备信息,则可以从result.data中取到设备信息。
类型 | 名称 | 描述 |
---|---|---|
string | brand | 设备品牌,例如 “Apple” 或 “Google”。 |
string | model | 设备型号,例如 “iPhone” 或 “iPod touch” 或 “Nexus 5”。 |
示例代码:
Baichuan.getDeviceInfo(function(result){ /* 成功获得设备信息 */ if(result.code === 0){ console.log(result.data); } });
2.Baichuan.isTaobaoInstalled(callback)
输入参数
无
回调参数( (result)=>{ /* 特指 result.data */ } ):
true 或 false
示例代码:
Baichuan.isTaobaoInstalled(function(result){ if(result.code===0 && result.data){ //安装了手淘 }else{ //没安装手淘 } });
3.Baichuan.isTmallInstalled(callback)
输入参数
无
回调参数( (result)=>{ /* 特指 result.data */ } ):
true 或 false
示例代码:
Baichuan.isTmallInstalled(function(result){ if(result.code===0 && result.data){ //安装了天猫 }else{ //没安装天猫 } });
4.Baichuan.request(options, callback)
输入参数(options)
类型 | 名称 | 描述 |
---|---|---|
string | api | 请求的 API 名称。 |
string | version | API 版本号。 |
bool | needLogin | 是否需要登录, 默认false |
bool | needAuth | 是否需要授权, 默认false |
bool | needWua | 可选是否使用 WUA,(是否走黑匣子加签,是底层决定的),true 表示使用,false 表示不使用。默认为 false。 |
object | params | 可选请求的参数,JSON 对象。 |
回调参数( (result)=>{ /* 特指 result.data */ } ):
类型 | 名称 | 描述 |
---|---|---|
object | Mtop 返回的信息,具体 JSON 格式请参见 Mtop 文档。 |
5.Baichuan.jump(type, params, callback)
输入参数
类型 | 名称 | 描述 |
---|---|---|
string | type | 跳转的类型 shop、 detail、 url |
object | params | 跳转参数 shopId(shop类型必须)、itemId(detail类型必须)、url(url类型必须)。 |
params详细参数说明:
{ shopId: '', //店铺id,shop类型必填参数。 itemId: '',//商品id,detail类型必填。 url: '', //需要跳转的url,url类型必填。 linkKey: 'TB', // 优先拉起哪个,TB:淘宝,TM:天猫。默认淘宝。 ybhpss: {...} //ybhpss参数,透传 }
回调参数( (result)=>{ /* 特指 result.data */ } ):
示例代码:
Baichuan.jump("shop", {"shopId": "71326078", "linkKey": "TB"},function(result){ if(result.code===0 && result.data){ /* 成功唤起 */ } });