在客户端集成百川SDK之前,需要完成以下准备工作:
1. 入驻百川,创建应用,点击这里入驻。
2. 下载客户端SDK,点击下载AppLink SDK。
下载完成后,将SDK包中的jar文件添加到你的工程依赖中。
<meta-data android:name="com.alibaba.app.appkey" android:value="xxxxx"/>
配置backUrl后,在跳转至淘宝App的详情页后会出现一个返回开发者App的按钮,提升App间跳转的体验。此处的backUrl为默认配置,开发者也可以在调用对应的跳转接口时通过参数配置。pid供淘宝客服务使用。
<meta-data android:name="com.alibaba.app.pid" android:value="xxxx"/> <meta-data android:name="com.alibaba.app.applink.backurl" android:value="xxxx"/>
如果应用先前未使用以下权限的话,请添加确保SDK能正常工作:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
当从你的App跳转到手淘,当手淘里的操作结束时,需要从手淘跳转到你的app时,请务必传入backurl的值;
Android原生支持使用url启动activity,手淘在通过url唤起相应的activity的时候会使用默认的action为android.intent.action.VIEW,category为android.intent.category.DEFAULT
例如:我们设MainActivity的url为tbopen://m.sdk.com
在AndroidManifest.xml中对应的activity节点下对action和data等标签进行如下配置即可
<activity android:name=".activity.MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:pathPrefix="/index.html" android:host="m.sdk.com" android:scheme="tbopen" /> </intent-filter> </activity>
调用入口类com.alibaba.sdk.android.BaseAlibabaSDK
的asyncInit
进行初始化。
java public class DemoApplication extends Application { public static final String TAG = "DemoApplication"; @Override public void onCreate() { super.onCreate(); BaseAlibabaSDK.asyncInit(this, new InitResultCallback() { @Override public void onSuccess() { Log.d(TAG,"BaseAlibabaSDK init successed"); } @Override public void onFailure(int code, String msg) { Log.e(TAG,"BaseAlibabaSDK init failed"); } }); } }
通过BaseAlibabaSDK获取ApplinkService调用相应的功能:
java findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppLinkService link = BaseAlibabaSDK.getService(AppLinkService.class); link.jumpDetail(MainActivity.this,"41576306115"); } });
方法 | 说明 |
jumpShop | 打开店铺 |
jumpDetail | 打开商品详情页 |
jumpTBURI | 打开淘宝链接 |
除了商品Id等参数以外,SDK还支持传递isv_code、淘客pid、backurl等用于数据分析的参数(可选,未配置时使用manifest中配置的默认值),通过构造一个Map
对象来设置,如下所示:
java findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppLinkService link = BaseAlibabaSDK.getService(AppLinkService.class); HashMap<String,String> params = new HashMap<String, String>(); params.put(AppLinkService.PARAM_KEY_ISV_CODE,"home"); params.put(AppLinkService.PARAM_KEY_PID,"xxxxx"); params.put(AppLinkService.PARAM_KEY_BACK_URL,"xxxxx"); link.jumpDetail(MainActivity.this,"xxxx",params); } });
可用的额外参数值为:
参数key | 说明 |
---|---|
AppLinkService#PARAM_KEY_ISV_CODE |
isv_code,自定义应用内标签 |
AppLinkService#PARAM_KEY_PID |
pid,阿里妈妈渠道号id |
AppLinkService#PARAM_KEY_BACK_URL |
回调url |
跳转至店铺
参数 | 说明 |
---|---|
context | 上下文对象 |
shopId | 店铺ID |
params | 可选,额外参数,见上节说明 |
findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppLinkService link = BaseAlibabaSDK.getService(AppLinkService.class); HashMap<String,String> params = new HashMap<String, String>(); params.put(AppLinkService.PARAM_KEY_ISV_CODE,"home"); params.put(AppLinkService.PARAM_KEY_PID,"xxxxx"); params.put(AppLinkService.PARAM_KEY_BACK_URL,"xxxxx"); link.jumpShop(MainActivity.this,"xxxx",params); } });
跳转至淘宝页面
参数 | 说明 |
---|---|
context | 上下文对象 |
url | 淘宝url地址,如详情页等 |
params | 可选,额外参数,见上节说明 |
findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppLinkService link = BaseAlibabaSDK.getService(AppLinkService.class); HashMap<String,String> params = new HashMap<String, String>(); params.put(AppLinkService.PARAM_KEY_ISV_CODE,"home"); params.put(AppLinkService.PARAM_KEY_PID,"xxxxx"); params.put(AppLinkService.PARAM_KEY_BACK_URL,"xxxxx"); link. jumpTBURI(MainActivity.this,"xxxx",params); } });
跳转至商品详情页
参数 | 说明 |
---|---|
context | 上下文对象 |
itemId | 商品ID |
params | 可选,额外参数,见上节说明 |
findViewById(R.id.btn1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppLinkService link = BaseAlibabaSDK.getService(AppLinkService.class); HashMap<String,String> params = new HashMap<String, String>(); params.put(AppLinkService.PARAM_KEY_ISV_CODE,"home"); params.put(AppLinkService.PARAM_KEY_PID,"xxxxx"); params.put(AppLinkService.PARAM_KEY_BACK_URL,"xxxxx"); link.jumpDetail(MainActivity.this,"xxxx",params); } });