感谢您的反馈!
注1: 该版本sdk的安全图片采用yw_1222_baichuan的名称,即yw_1222_baichuan.jpg
注2:5.x版本请务必更新到5.0.0.7及以上版本
百川sdk不再对外提供线上仓库依赖,提供本地包下载地址,由接入侧采用本地依赖或者自有仓库的方式进行sdk依赖,本地依赖方式保持不变,可参见下文相关内容;
5.0.0.32版本的下载链接参见(可手动复制链接下载):
https://baichuan.taobao.com/docs/doc.htm?treeId=129&articleId=106383&docType=1
注:该版本需使用V6版本的安全图片,V6版本的安全图片可在《百川套件平台》 下载
allprojects {
repositories {
jcenter()
maven {
url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
}
}
}
线上依赖(5.0.0.7及以前)
dependencies {
.....
// 登陆
implementation 'com.alibaba.baichuan.sdk:alibclogin:5.0.0.7'
// applink
implementation 'com.alibaba.baichuan.sdk:alibcapplink:5.0.0.7'
// 广告SDK
implementation 'com.alibaba.baichuan.sdk:alibcad:5.0.0.7'
// 小程序
implementation 'com.alibaba.baichuan.sdk:alibctriver:5.0.0.7'
// c++基础库(如果工程中没有接入该so包:libc++_shared.so,需要接入该sdk)
implementation "llvm.stl:cpp_shared:0.0.3@aar"
// 直播
implementation 'com.alibaba.baichuan.sdk:alibctriver_live:5.0.0.7'
// webview容器
implementation 'com.alibaba.baichuan.sdk:alibcwebview:5.0.0.7'
// 电商基础组件
implementation 'com.alibaba.baichuan.sdk:alibctradecommon:5.0.0.7'
implementation 'com.alibaba.baichuan.sdk:alibcnbtrade:5.0.0.7'
implementation 'com.alibaba.baichuan.sdk:alibcprotocol:5.0.0.7'
implementation 'com.alibaba:fastjson:1.1.71.android'
.....
}
5.0.0.13及以后
dependencies {
.....
// 登陆
implementation 'com.alibaba.baichuan.sdk:alibclogin:5.0.0.13'
// applink
implementation 'com.alibaba.baichuan.sdk:alibcapplink:5.0.0.13'
// 广告SDK
implementation 'com.alibaba.baichuan.sdk:alibcad:5.0.0.13'
// 小程序
implementation 'com.alibaba.baichuan.sdk:alibctriver:5.0.0.13'
// c++基础库(如果工程中没有接入该so包:libc++_shared.so,需要接入该sdk)
implementation "llvm.stl:cpp_shared:0.0.3@aar"
// 直播
implementation 'com.alibaba.baichuan.sdk:alibctriver_live:5.0.0.13'
// webview容器
implementation 'com.alibaba.baichuan.sdk:alibcwebview:5.0.0.13'
// 电商基础组件
implementation 'com.alibaba.baichuan.sdk:alibctradecommon:5.0.0.13'
implementation 'com.alibaba.baichuan.sdk:alibcnbtrade:5.0.0.13'
implementation 'com.alibaba.baichuan.sdk:alibcprotocol:5.0.0.13'
// 辅助排查工具(可选)
implementation "com.alibaba.baichuan.sdk:alibctools:5.0.0.13"
// 安全保镖v5版本(根据实际情况,v5和v6版本选择其一)
implementation 'com.taobao.android:securityguardaar3:5.0.0.9-v5@aar'
implementation 'com.taobao.android:securitybodyaar3:5.0.0.9-v5@aar'
implementation 'com.taobao.android:avmpaar3:5.0.0.9-v5@aar'
implementation 'com.taobao.android:sgmiddletieraar3:5.0.0.9-v5@aar'
// 安全保镖v6版本
implementation 'com.taobao.android:securityguardaar3:5.0.0.9-v6@aar'
implementation 'com.taobao.android:securitybodyaar3:5.0.0.9-v6@aar'
implementation 'com.taobao.android:sgmiddletieraar3:5.0.0.9-v6@aar'
implementation 'com.alibaba:fastjson:1.1.71.android'
.....
}
更新说明:目前基础安全组件提供新的优化版本(v6),如果需要可自行从该地址下载本地包(包含5个aar包),通过本地依赖的方式替换(v6版本安全保镖需要对应获取v6的安全图片,安全图片获取参见上文)
附:新的优化安全组件版本下载地址(https://baichuan.taobao.com/docs/doc.htm?treeId=129&articleId=106383&docType=1)
新版本依赖方式(name自行命名):
implementation(name:'securityguardaar3', ext:'aar') implementation(name:'securitybodyaar3', ext:'aar') implementation(name:'noCaptch', ext:'aar') implementation(name:'misc', ext:'aar') implementation(name:'sgmiddletier', ext:'aar')
UC内置版本
dependencies {
.....
// 登陆
implementation 'com.alibaba.baichuan.sdk:alibclogin:5.0.0.15'
// applink
implementation 'com.alibaba.baichuan.sdk:alibcapplink:5.0.0.15'
// 广告SDK
implementation 'com.alibaba.baichuan.sdk:alibcad:5.0.0.15'
// 小程序
implementation 'com.alibaba.baichuan.sdk:alibctriver:5.0.0.15'
// c++基础库(如果工程中没有接入该so包:libc++_shared.so,需要接入该sdk)
implementation "llvm.stl:cpp_shared:0.0.3@aar"
// 直播
implementation 'com.alibaba.baichuan.sdk:alibctriver_live:5.0.0.15'
// webview容器
implementation 'com.alibaba.baichuan.sdk:alibcwebview:5.0.0.15'
// 电商基础组件
implementation 'com.alibaba.baichuan.sdk:alibctradecommon:5.0.0.15'
implementation 'com.alibaba.baichuan.sdk:alibcnbtrade:5.0.0.15'
implementation 'com.alibaba.baichuan.sdk:alibcprotocol:5.0.0.15'
// 辅助排查工具(可选)
implementation "com.alibaba.baichuan.sdk:alibctools:5.0.0.15"
// 安全保镖v5版本(根据实际情况,v5和v6版本选择其一)
implementation 'com.taobao.android:securityguardaar3:5.0.0.9-v5@aar'
implementation 'com.taobao.android:securitybodyaar3:5.0.0.9-v5@aar'
implementation 'com.taobao.android:avmpaar3:5.0.0.9-v5@aar'
implementation 'com.taobao.android:sgmiddletieraar3:5.0.0.9-v5@aar'
// 安全保镖v6版本
implementation 'com.taobao.android:securityguardaar3:5.0.0.9-v6@aar'
implementation 'com.taobao.android:securitybodyaar3:5.0.0.9-v6@aar'
implementation 'com.taobao.android:sgmiddletieraar3:5.0.0.9-v6@aar'
implementation 'com.alibaba:fastjson:1.1.71.android'
.....
}
本地依赖
将各个sdk的aar文件下载放到本地工程的libs目录下,按照如下方式接入:(name以实际的本地aar或jar包的名字为准)
dependencies {
.....
implementation(name: 'alibcad-5.0.0.7', ext: 'aar')
implementation(name: 'alibcapplink-5.0.0.7', ext: 'aar')
implementation(name: 'alibclogin-5.0.0.7', ext: 'aar')
implementation(name: 'alibcnbtrade-5.0.0.7', ext: 'aar')
implementation(name: 'alibcprotocol-5.0.0.7', ext: 'aar')
implementation(name: 'alibctradecommon-5.0.0.7', ext: 'aar')
implementation(name: 'alibctriver-5.0.0.7', ext: 'aar')
implementation(name: 'alibctriver_live-5.0.0.7', ext: 'aar')
implementation(name: 'alibcwebview-5.0.0.7', ext: 'aar')
implementation 'com.alibaba:fastjson:1.1.71.android'
.....
}
1.2.1 基础组件(必选)
implementation 'com.alibaba.baichuan.sdk:alibctradecommon:5.0.0.x'
1.2.2 登录(必选)
外部三方登录
implementation 'com.alibaba.baichuan.sdk:alibclogin:5.0.0.x'
1.2.3 appLink(必选)
打通“手机淘宝”与三方app的桥梁,实现手机淘宝与三方app之间的往返跳转,包括登陆时跳手淘授权,用手淘打开商品页,店铺等
implementation 'com.alibaba.baichuan.sdk:alibcapplink:5.0.0.x'
1.2.4 广告SDK(必选)
淘客分佣转链
implementation 'com.alibaba.baichuan.sdk:alibcad:5.0.0.x'
1.2.5 小程序SDK(必选)
支持小程序页面在应用内加载
implementation 'com.alibaba.baichuan.sdk:alibctriver:5.0.0.x' // c++基础库(如果工程中没有接入该so包:libc++_shared.so,需要接入该sdk) implementation "llvm.stl:cpp_shared:0.0.3@aar"
1.2.6 直播SDK
支持直播间播放
implementation 'com.alibaba.baichuan.sdk:alibctriver_live:5.0.0.x'
1.2.7 webview容器(必选)
支持h5页面加载
implementation 'com.alibaba.baichuan.sdk:alibcwebview:5.0.0.x'
1.2.8 百川SDK(必选)
基础套件页面加载
implementation 'com.alibaba.baichuan.sdk:alibcnbtrade:5.0.0.x' implementation 'com.alibaba.baichuan.sdk:alibcprotocol:5.0.0.x'
1.2.9 安全保镖(必选)(百川sdk5.0.0.13及之后版本才需要依赖)
安全保镖sdk单独剥离出来以及提供两个版本的背景:
考虑到跟其他二方对外提供的安全保镖版本的冲突问题,不再将安全保镖集成到百川sdk内部,采用编译期依赖的方式,媒体可根据自己
应用依赖sdk的实际情况来选择使用v5或v6版本,其中一个场景就是跟实人认证提供的安全保镖版本冲突的情况。
该安全保镖版本需要跟安全图片版本一致,即v5版本的安全保镖需要使用v5版本的安全图片,v6版本的安全保镖需要使用v6版本的安全图片,具体安全图片请登录套件后台生成,地址参见:https://suite.baichuan.taobao.com/suite2.htm#/index
v5版本
implementation 'com.taobao.android:securityguardaar3:5.0.0.9-v5@aar' implementation 'com.taobao.android:securitybodyaar3:5.0.0.9-v5@aar' implementation 'com.taobao.android:avmpaar3:5.0.0.9-v5@aar' implementation 'com.taobao.android:sgmiddletieraar3:5.0.0.9-v5@aar'
v6版本
implementation 'com.taobao.android:securityguardaar3:5.0.0.9-v6@aar' implementation 'com.taobao.android:securitybodyaar3:5.0.0.9-v6@aar' implementation 'com.taobao.android:sgmiddletieraar3:5.0.0.9-v6@aar'
1.2.10 辅助排查工具(可选)(5.0.0.13及之后版本才需要依赖)
辅助接入排查一些基础问题,具体使用参见下文
implementation "com.alibaba.baichuan.sdk:alibctools:5.0.0.x"
1.2.10 业务扩展模块(可选)(5.0.0.20及以上版本才需要依赖)
该模块主要包括任务激励、TOP授权逻辑,媒体侧可根据自己业务上是否接入来决定是否需要引入该模块,具体使用参见下文
implementation "com.alibaba.baichuan.sdk:alibcextend:5.0.0.x"
1、基础必选SDK 2、具备电商套件能力SDK
-keepattributes Signature
-ignorewarnings
-keep class javax.ws.rs.** { *; }
-keep class com.alibaba.fastjson.** { *; }
-dontwarn com.alibaba.fastjson.**
-keep class sun.misc.Unsafe { *; }
-dontwarn sun.misc.**
-keep class com.taobao.** {*;}
-keep class com.alibaba.** {*;}
-dontwarn com.taobao.**
-dontwarn com.alibaba.**
-keep class com.ta.** {*;}
-dontwarn com.ta.**
-keep class org.json.** {*;}
-keep class tv.danmaku.ijk.media.player.TaobaoMediaPlayer{*;}
-keep class tv.danmaku.ijk.media.player.TaobaoMediaPlayer$*{*;}
// 注册三方扩展实现(使用可参见官方DEMO)
private void registerThirdInstance() {
// 注册分享实现(具体实现说明见下文)
ShareImpl share = new ShareImpl();
AlibcNavigateCenter.registerNavigateUrl(share);
// 注册图片库实现
ImageImpl image = new ImageImpl();
AlibcImageCenter.registerImage(image);
}
// 初始化扩展map(默认可传入空)
Map<String, Object> params = new HashMap<>();
params.put("open4GDownload", true);
注:该参数(open4GDownload)在5.x版本以下生效;5.x版本以上已废弃(5.x版本请务必升级到5.0.0.7及以上版本)
参数说明:open4GDownload
是否开启首次4g环境下载动态组件(该组件大小12M左右)。若开启,当联盟业务依赖的百川动态组件未就绪时,将直接下载(true-开启 false-关闭,默认缺省关闭)
若不开启,如果用户一直不进wifi,那么这次升级的业务一直无法使用
Map<String, Object> extParams = new HashMap<>(16);
extParams.put("timeout", 5000);
AlibcTradeSDK.init(this, extParams, new AlibcTradeInitCallback() {
@Override
public void onSuccess() {
AlibcLogger.i(TAG, "init sdk success");
}
@Override
public void onFailure(int code, String msg) {
AlibcLogger.e(TAG, "init sdk fail: code = " + code + ", msg = " + msg);
}
}, AlibcTradeSDK.InitStrategy.BEFORE_CALL_API);
//开发阶段打开日志开关,方便排查错误信息 AlibcTradeCommon.turnOnDebug(); AlibcTradeCommon.openErrorLog(); AlibcTradeBiz.turnOnDebug(); // 默认是关闭的(也支持手动关闭) AlibcTradeCommon.turnOffDebug(); AlibcTradeCommon.closeErrorLog(); AlibcTradeBiz.turnOffDebug();
/** * 设置三方媒体应用版本号 * / AlibcTradeCommon.setIsvVersion(String isvVersion);
为保障正常电商页面的加载,请在需要主动登录场景下,务必使用百川sdk提供的登录api。
/**
* 登录
*/
AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() {
@Override
public void onSuccess(String userId) {
Toast.makeText(MainActivity.this, "login success" + " - "
+ userId + " - " , Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int code, String msg) {
Toast.makeText(MainActivity.this, "login fail: code = " + code + ", msg = " + msg, Toast.LENGTH_SHORT).show();
}
});
/**
* 登出
*/
AlibcLogin.getInstance().logout(new AlibcLoginCallback() {
@Override
public void onSuccess(String userId) {
Toast.makeText(MainActivity.this, "logout success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int code, String msg) {
Toast.makeText(MainActivity.this, "logout fail: code = " + code + ", msg = " + msg, Toast.LENGTH_SHORT).show();
}
});
API说明
/**
@param activity 当前Activity实例
@param suiteCode 套件code
@param bizParams 业务参数
@param showParams 页面打开方式自定义参数
@param taokeParams 淘客参数
@param trackParams 链路跟踪参数(自定义)
@param callback 打开页面事件回调
*/
void openByCode(final Activity activity, final String suiteCode, AlibcBizParams bizParams, AlibcShowParams showParams,AlibcTaokeParams taokeParams, Map<String, String> trackParams, AlibcTradeCallback callback){...}
使用示例
AlibcTrade.openByCode(MainActivity.this, code, bizParams, showParams,
taokeParams, trackParams, new AlibcTradeCallback() {
@Override
public void onSuccess(int code) {
AlibcLogger.i(TAG, "open success: code = " + code);
}
@Override
public void onFailure(int code, String msg) {
AlibcLogger.e(TAG, "open fail: code = " + code + ", msg = " + msg);
}
});
API定义
/**
@param activity 当前Activity实例
@param url 目标打开的url
@param showParams 页面打开方式自定义参数
@param taokeParams 淘客参数
@param trackParams 链路跟踪参数(自定义)
@param callback 打开页面事件回调
*/
void openByUrl(final Activity activity, final String url, AlibcShowParams showParams, AlibcTaokeParams taokeParams,
Map<String, String> trackParams, AlibcTradeCallback callback){...}
使用示例
AlibcTrade.openByUrl(MainActivity.this, detailUrl, showParams, taokeParams, trackParams, new AlibcTradeCallback() {
@Override
public void onSuccess(int code) {
AlibcLogger.i(TAG, "open success: code = " + code);
}
@Override
public void onFailure(int code, String msg) {
AlibcLogger.e(TAG, "open fail: code = " + code + ", msg = " + msg);
}
});
a、AlibcBizParams :媒体使用电商套件code方式打开页面时必传(页面渲染必须)。具体内部参数说明如下:
/** * 商品id(详情页面必传) */ private String id; /** * 店铺id(店铺页面必传) */ private String shopId; /** * 卖家id(店铺页面必传) */ private String sellerId; /** * 扩展业务参数(涉及到联盟侧诸如返佣比例等参数,具体含义及获取会在分佣相关部分说明) */ private Map<String, String> extParams;
上述扩展业务参数extParams可传入如下参数,可根据自己业务需要进行设置(具体可咨询联盟相关同学)
couponActivityId: 明文券id (非必填)vegasCode: 加密淘礼金id(淘礼金创建API(tbk_dg_vegas_tlj_create)生成的返回字段中的vegas_code值),注意生成的淘礼金pid和打开详情页的pid需要保持一致,不然会导致淘礼金领取失败:(非必填)
pageType: 媒体设置的当前页面类型:导购版本为guide、渠道管理版本为agent、返利版本为rebate (必填)
flRate: 当前用户返利比例,乘以10000后小数点可保留6位,例如:33.33333333%可以传入3333.333333
dlRate: 当前用户渠道比例,乘以10000后小数点可保留6位,例如:33.33333333%可以传入3333.333333
maxDlRate: 当前用户最高渠道比例,乘以10000后小数点可保留6为,例如:33.33333333%可以传入3333.333333
isvUserId: 媒体上下文用户参数(便于媒体决策版本和入参),用于奇门服务端交互 (非必填)
注:直播间id传入extParams中
// 其他业务参数
HashMap<String, String> extMap = new HashMap<>();
// 设置直播间id(此时不要设置商品id)
extMap.put(“id”, “258239373803”);
bizParams.setExtParams(extMap);
b、AlibcShowParams:媒体使用电商套件code方式或打开普通页面方式时必传。
/** * 小把手 */ private String backUrl; /** * 支持唯一自定义的降级url */ private String degradeUrl; /** * 降级类型 */ private AlibcDegradeType degradeType; /** * 打开类型 */ private OpenType openType; /** * 标题 */ private String title; /** * 唤端类型:手淘:taobao,天猫:tmall */ private String clientType;
参数具体说明:
1、小把手:唤端返回的scheme,默认情况下如果不设置将不显示,如果需要展示,可自行传入自定义的scheme,或者传入百川sdk默认的scheme("alisdk://")
2、降级类型和降级url:这两个参数可配合使用。降级类型AlibcDegradeType为枚举类,为唤端失败降级的类型,包括三类:
NONE: 不做任何处理
H5:降级为h5
Download:降级为引导下载页
注意:以上设置非决定性降级策略,在特殊场景下会受配置管控。
如果设置降级类型设置为H5,需自行指定降级url,即degradeUrl。
3、openType:打开类型。包含Auto和Native两种类型,如果需要指定url加载要唤起淘宝或天猫客户端,可设置此参数值为Native,否则可缺省。
4、clientType:端类型,包括淘宝(taobao)和天猫(tmall)。如果上述openType指定为Native(唤端),则可以自行指定是唤起淘宝还是天猫客户端,默认缺省是唤起淘宝客户端。
5、title:webview页面的标题(默认可不用设置)
c、AlibcTaokeParams:媒体需要淘客分佣时相关入参
联盟淘客分佣变更说明(参见以下参数说明)
/**
* 1、淘客广告位
* 2、取消了原来adzoneId + appkey的方式
* 3、分佣必传,如果不传,将不会进行转链,采用原始链接加载页面
*/
public String pid;
/**
* 三方的淘客广告位(可选参数)
*/
public String subPid;
/**
* 淘客unionId
*/
public String unionId;
/**
* 渠道id(非必填项)
*/
public String relationId;
/**
* 媒体物料来源url(非必填项):数据链路的回溯支持
*/
public String materialSourceUrl;
/**
* 扩展参数(分佣相关的)
*/
public Map<String, String> extParams;
电商套件-商品详情页面内部有外跳到媒体首页功能。如果申请了商品详情电商套件,则需要媒体实现外跳媒体页面功能。SDK会将套件内部外跳媒体地址的URL通过协议透传给实现协议接口。建议参考Demo实现
媒体外跳页面路由协议
com.baichuan.alibctradebiz.miniapp.AlibcNavigateCenter.IUrlNavigate
public interface IUrlNavigate {
boolean openUrl(Context var1, String var2);
}
// 这里以分享实现为例说明
public class ShareImpl implements AlibcNavigateCenter.IUrlNavigate {
// true - 媒体处理 false - 媒体不处理
@Override
public boolean openUrl(Context context, String url) {
// TODO 具体的分享实现
Toast.makeText(context, "分享链接: " + url, Toast.LENGTH_LONG).show();
return true;
}
}
注册协议实现
ShareImpl share = new ShareImpl(); AlibcNavigateCenter.registerNavigateUrl(share);
电商套件内部图片加载需要外部注入相关图片加载实现。相关申请了电商套件的媒体需要实现注入。建议参考Demo实现
图片库协议
public interface IImageProxy extends Proxiable {
void setImageUrl(ImageView var1, String var2, IImageProxy.ImageStrategy var3);
void loadImage(String var1, IImageProxy.ImageStrategy var2, IImageProxy.ImageListener var3);
public static class ImageStrategy {
public int blurRadius;
public String sizeLimitType;
public boolean isSharpen;
public int roundCornerRadius;
public ImageStrategy() {
}
}
public interface ImageListener {
void onImageFinish(Drawable var1);
}
}
<!--具体实现,详细参见demo-->
public class ImageImpl implements IImageProxy {
@Override
public void setImageUrl(final ImageView view, String url, ImageStrategy imageStrategy) {
...
}
@Override
public void loadImage(String url, ImageStrategy imageStrategy, final ImageListener imageListener) {
...
}
}
注册相关图片库协议
ImageImpl image = new ImageImpl(); AlibcImageCenter.registerImage(image);
日志排查
百川电商SDK在运行时,会将运行日志直接落盘到/sdcard/android/data/$packagename/files/baichuan/ 目录下。
开发阶段如果碰到电商套件打开问题无法自行定位,可通过adb pull /sdcard/android/data/$packagename/files/baichuan/ 获取日志文件,联系百川同学协查。
其中packagename为媒体app的包名
上线运行时,如果为用户提供了舆情反馈问题,如涉及百川电商相关的问题,建议媒体将百川电商日志一并上传到服务端。在无法自行定位时,可将日志问题提交给百川同学协查。
File[] files = new File(AlibcTradeCommon.getLogFilePath()).listFiles();
for (File file : files) {
uploadFile(file);
}
自检工具
从4.9.2.6(含)之后的版本增加自检工具能力,5.0.0.13及以后的版本需要参照前文显式依赖才可用,具体接入方式如下:
打开日志分析工具
AlibcCommonUtils.setOpenAnalysisTool(true);
方式1:直接打开自检工具主界面(入参1为当前的上下文,一般为当前的Activity实例;入参2为固定的字符串baichuan)
AnalyzerTools.openAnalyzerActivity(MainActivity.this, "baichuan");
方式2:悬浮窗的形式打开(该方式需要申请悬浮窗权限)
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
调用方式
AnalyzerTools.showFloatWindow(MainActivity.this, "baichuan");
TOP Native授权:
注:在5.0.0.13及之后版本,需要全量回归验证之前通过oauth链接进行授权的方式,保证完整迁移,不影响原有业务。
参数说明:
参数1:上下文,一般为Activity实例
参数2:授权弹窗的icon,支持url和本地资源图片
参数3:授权应用名称
参数4:授权回调接口
String appkey = "媒体自主传入appkey";
TopAuth.showAuthDialog(MainActivity.this, R.mipmap.ic_launcher_round, "百川测试Demo", appkey, new AuthCallback() {
@Override
public void onSuccess(String accessToken, String expireTime) {
Toast.makeText(MainActivity.this, "accessToken=" + accessToken
+ ", expireTime=" + expireTime, Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String msg) {
Toast.makeText(MainActivity.this, "code=" + code + ", msg=" + msg, Toast.LENGTH_SHORT).show();
}
});
或者
TopAuth.showAuthDialog(MainActivity.this, "http://xxx", "百川测试Demo", appkey, new AuthCallback() {
@Override
public void onSuccess(String accessToken, String expireTime) {
Toast.makeText(MainActivity.this, "accessToken=" + accessToken
+ ", expireTime=" + expireTime, Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String msg) {
Toast.makeText(MainActivity.this, "code=" + code + ", msg=" + msg, Toast.LENGTH_SHORT).show();
}
});
5.x版本新增能力:通用事件通知
描述:套件相关事件会通过回调方式返回,包括通用事件名称和事件内容。其中事件名称类型为String,事件内容为json对象,具体内容根据业务对接进行解析
具体使用方式:
接口:com.alibaba.alibctriver.extensions.EventCenter.NotifyListener#onNotify
自行实现该接口
EventCenter.registerEventListener(new EventCenter.NotifyListener() {
@Override
public void onNotify(String name, Object content) {
// TODO 实现该接口
Toast.makeText(MainActivity.this, "内容复制到剪切板", Toast.LENGTH_SHORT).show();
}
});
注意事项:
1、由于Android P限制Http明文请求,强制让应用走https。需要在应用配置文件AndroidManifest文件的application标签中添加如下:
android:networkSecurityConfig="@xml/network_security_config"
同时在res下创建一个xml的目录,新建一个文件network_security_config.xml。文件内添加如下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
2、部分敏感权限问题说明
考虑到以下权限的敏感性,sdk将相关权限移除,交由接入方自行在主包清单文件中进行添加
删除的权限声明如下:
android.permission.READ_PHONE_STATE android.permission.WRITE_SETTINGS android.permission.BLUETOOTH android.permission.READ_SETTINGS android.permission.GET_TASKS
具体可采用如下方式添加这些权限:
可以通过merge或replace的方式进行清单权限合并处理
<uses-permission android:name="android.permission.READ_PHONE_STATE"
tools:node="merge"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:node="merge"/>
<uses-permission android:name="android.permission.BLUETOOTH"
tools:node="merge"/>
<uses-permission android:name="android.permission.READ_SETTINGS"
tools:node="merge"/>
<uses-permission android:name="android.permission.GET_TASKS"
tools:node="merge"/>
3、关于直接打开s.click链接分佣说明
百川SDK不支持s.click(或uland)链接的二次转链逻辑,如果采用openByUrl方式打开该类链接,请勿传入pid等分佣参数;
若需要使用其他渠道获取的s.click链接进行分佣,可自行去淘客联盟后台生成自己的s.click链接或调用联盟服务接口生成。
不再接收外部传入webView, H5的页面将采用内置的百川自定义WebView实例加载
原有淘宝授权页拦截授权码功能,需要在授权回跳H5页面上进行处理上报给媒体服务端,处理完成后同时可以调用百川JSBridge关闭当前webView。
建议淘宝授权流程:
1、使用百川API(openByUrl)打开授权页面。(注 授权页的回调页是媒体自行设置的,后续获取授权code需要回调H5页面设置)
2 、H5页面引入百川 js bridge 脚本:https://g.alicdn.com/mtb/lib_BC/0.1.0/p/index/index.js
3、媒体回调页H5获得授权code后, 调用百川JS API Baichuan.closeWebView(commonCallback); 关闭当前webview
加入了电商套件的百川SDK为了提升用户体验,强烈建议媒体在Application中进行百川SDK初始化。且确保已获得网络权限。