百川JSBridge接入文档

更新时间:2016/11/01 访问次数:28670

1 JSBridge简介

为接入百川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:错误信息
    	}
	});

2 在页面引入百川JSBridge

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>

3 回调格式

如果返回的code值严格等于 “=== 0” 则是与客户端通信成功,否则失败。

成功:例如:{“code”: 0, “message”:"“, ”data“: {…}}
失败: 例如:{”code“: 6, ”message“:”BC_FAILED"}

示例代码:

Baichuan.getDeviceInfo(functon(result){
	if(result.code === 0){
		/* 成功 */
	}else{
		/* 失败 */
	}
});

4 API说明

百川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){
            /* 成功唤起 */
        }
});

FAQ

关于此文档暂时还没有FAQ
返回
顶部