文档中心 > AppLink

AppLinkSDK接入指南(Android)

更新时间:2016/02/29 访问次数:17286

开发前准备

1.注册App

点我申请 成功后将获得appkey和appsecret

为了数据安全,建议将appkey和appsecret存在string.xml里使用

2.下载SDK:

  • Android AppLink SDK的最新版本为1.1.1

(1) jar包方式:点我下载直接下载applink的SDK,将jar包放到您项目的libs目录下即可。

dragframework

(2) Maven方式:使用 Maven 工程依赖的方式接入AppLinkSDK的包,将下面依赖的配置粘贴到项目下 pom.xml 文件中即可:

<dependency>
  <groupId>com.taobao.android</groupId>
  <artifactId>wopc_sdk_core</artifactId>
  <version>1.1.1</version>
  <type>aar</type>
</dependency>

(3) Gradle方式:使用 Gradle 工程依赖的方式接入AppLinkSDK的包,将下面依赖的配置粘贴到项目下 build.gradle 文件中即可:

compile(group: 'com.taobao.android', name: 'wopc_sdk_core', version:'1.1.1')

3.AndroidManifest.xml 设置

添加必要的权限支持:

<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"/>

4.App跳转设置

当从你的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等标签进行如下配置即可

dragframework

<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>

5、 混淆配置:

如果需要混淆代码,为了保证sdk的正常使用,需要在混淆规则上加上如下规则:

-keep class com.taobao.applink.param.** {
   *;
}

Demo

点我下载

开始开发

  • 开始开发时,请去应用市场下载最新版的手淘测试

1.初始化SDK

在调用applink的有关代码前,需要对applink进行初始操作。SDK初始化在调用其他函数前完成,只需要TBAppLinkSDK.getInstance().init(TBAppLinkParam),传入相应的参数即可。

  • appkey和appSecret等敏感信息,请不要直接硬编码写在代码里,建议写在string.xml里来引用

使用TBAppLinkParam如下的构造函数

public TBAppLinkParam(String appkey,String appSecret,String backUrl,String pid) {...}

TBAppLinkParam还提供set方式来传入参数

TBAppLinkParam param = new TBAppLinkParam("appkey","appSecret","backUrl","pid");
param.setSource("source").setTag("tag")......

传入的主要参数有appkey,appSecret,backUrl,pid

以上参数均可传空,但是同时也会失去对应的功能

参数名 作用
appkey 用于区分不同的应用提供者
appSecret 用于区分不同的应用提供者
backUrl 通过backurl,可以制定从手淘返回到三方app的activity,在具体跳转时,不设置以此为**默认**
pid 用于计算佣金

2.设置百川专享价

添加umpChannel和u_channel两个参数

TBDetailParam detailparam = new TBDetailParam("****itemId****");

HashMap<String, String>  map      = new HashMap<String, String>();//参数
map.put("umpChannel","......");
map.put("u_channel",".......");

detailparam.addExtraParams(map);

try {
     TBAppLinkSDK.getInstance().jumpDetail(context, param);
} catch (TBAppLinkException e) {
     e.printStackTrace();
}

3.设置appLink跳转失败模式(可选)

在Android客户端上,当用户未安装手淘或者是安装的手淘不支持applink时会出现跳转失败。

TBAppLinkSDK.getInstance().setJumpFailedMode(JumpFailedMode.OPEN_H5);

SDK提供了3种方式来处理跳转失败的情况:
1. DOWNLOAD_TAOBAO:提示用户下载并安装手淘,如果没有设置过,默认为该模式.
2. OPEN_H5:在浏览器中调到H5页面。
3. NONE:SDK不做任何处理。

SDK使用方在调用相关的jump函数后,可以根据方法的返回值判断调用是否成功,并进行相关的处理。

4.启用appLink JSBridge(可选)

本部分,只有在使用js调用时才需要进行相关的操作。调用时,传入WebView和对应的WebViewClient对象(WebViewClient对象可以为空)。

请确保,在本操作结束后,WebView的WebViewClient不再更改,也就是说一定不能在调用完 setupJsBridge 后去调用 setWebViewClient 方法。只有在本操作结束后方可load url。

TBAppLinkBridgeSDK.getInstance().setupJsBridge(WebView webView,WebViewClient client);

注:

1、由于使用url跳转activity是隐式启动,所以建议应用中配置url的activity和url是一一对应的关系

2、关于data标签的具体配置细节,请参考Android官方开发网站[data章节

接口说明

各接口手淘版本支持情况

接口名称 手淘版本支持情况
跳转到详情 5.4.0及以上
跳转到店铺 5.4.0及以上
跳转到指定URI 5.4.0及以上
授权 5.4.0及以上

跳转到详情

跳转时必须设置itemId.

e,type,backurl等参数非必需,不传则默认为SDK初始化时的参数.

Android:

TBDetailParam param = new TBDetailParam("itemid");
param.setBackUrl("...").setE("...");
HashMap<String,String> map = new HashMap<String,String>();
map.put("your_data_key","your_data");
map.put("...","...");
param.addExtraParams(map);
try {
     TBAppLinkSDK.getInstance().jumpDetail(context, param);
} catch (TBAppLinkException e) {
     e.printStackTrace();
}

跳转到店铺

跳转时必须设置shopId.

e,type,backurl等参数非必需,不传则默认为SDK初始化时的参数.

Android:

TBShopParam param = new TBShopParam("shopid");
param.setBackUrl("...").setE("...");
HashMap<String,String> map = new HashMap<String,String>();
map.put("your_data_key","your_data");
map.put("...","...");
param.addExtraParams(map);
try {
     TBAppLinkSDK.getInstance().jumpShop(context, param);
} catch (TBAppLinkException e) {
     e.printStackTrace();
}

跳转到指定URI

效果等同于在手机淘宝中用扫一扫进入.可以进入详情,店铺,会场等.

跳转时必须设置url.

e,type,backurl等参数非必需,不传则默认为SDK初始化时的参数.

Android:

TBURIParam param = new TBURIParam("http://m.taobao.com");
param.setBackUrl("...").setE("...");
HashMap<String,String> map = new HashMap<String,String>();
map.put("your_data_key","your_data");
map.put("...","...");
param.addExtraParams(map);
try {
     TBAppLinkSDK.getInstance().jumpURI(context, param);
} catch (TBAppLinkException e) {
     e.printStackTrace();
}

授权

授权采用OAuth2.0协议;

跳到手机淘宝进行授权,成功后返回authcode;

授权返回的结果是通过onActivityResult返回的;

Android:

//requestCode用于区分结果的来源
TBAuthParm authParam = new TBAuthParam(requestCode);
//redirectUri是当手淘没安装走h5时需要的参数
authParam.setRedirectUri("http://tmshow.play.jaeapp.com");
try {
     TBOpenSDK.getInstance().doAuth(activity,authParam});
} catch (TBAppLinkException e) {
     e.printStackTrace();
}

redirectUri 的参数是当手淘没有安装,走h5页面的授权方式时需要的参数,在h5页面上授权成功后会回调redirectUri,把authcode的值带过去,开发者可以在处理完authcode之后,在浏览器里打开自己的app(此流程需要开发者自己实现)

在onActivityResult里取authcode的值(这部分逻辑请开发者自行控制)

resultCode的值及含义

resultCode值 含义
-2 错误
-1 成功
0 取消
if(requestCode == 100001){
            if(null != data && resultCode == -1 ){
                data.getStringExtra("result");
            }
}

拿到authcode去换取token等值的请参考://open.alitrip.com/docs/doc.htm.htm?spm=0.0.0.0.LF3ZsH&treeId=1&articleId=102635&docType=1

AppLink SDK 版本升级摘要

  • 1.0.0 第一个版本发布,包括跳转店铺、详情、h5页面的功能,并提供渠道优惠、淘客的结算

  • 1.0.1 bug fix:传进来的context为Application的情形

  • 1.1.0 开授权的接口,采用OAuth2.0协议获取authcode

  • 1.1.1 bug fix:降级方案的完善

FAQ

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