注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,那么这次升级的业务一直无法使用 AlibcTradeSDK.init(Application.this, params, new AlibcTradeInitCallback() { @Override public void onSuccess() { AlibcLogger.e(TAG, "SDK初始化成功"); } @Override public void onFailure(int code, String msg) { AlibcLogger.e(TAG, "SDK初始化失败: code = " + code + ", msg = " + msg); } });
// 异步执行环境设置,接入方可自行选择合适时机执行,执行完成后方可调用百川电商相关能力 AlibcTradeSDK.asyncExecuteSetup();
//开发阶段打开日志开关,方便排查错误信息 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初始化。且确保已获得网络权限。