感谢您的反馈!
新用户:
老用户:
注意需要仔细阅读下面工程配置,与原有配置有所区别的地方,环境检查可以先忽略yw_1222.jpg问题。
目前百川只支持直接添加framework的方式进行依赖集成
SDK下载地址:https://baichuan.taobao.com/docs/doc.htm?treeId=129&articleId=106383&docType=1
注:该版本需使用V6版本的安全图片,V6版本的安全图片可在《百川套件平台》 下载
如图,留意大小写
添加到工程中
添加plist 文件: mtopsdk_configuration.plist

内容如下:
**配置URL Types**
URL Scheme为tbopen{AppKey},如tbopen123456
是AppKey, 不是AppID哟!

**配置info.plist**


设定Bitcode
在Targets->Build Settings中设置Bitcode为No
在 AppDelegate 中初始化SDK,引入
#import <AlibcTradeSDK/AlibcTradeSDK.h>
// 百川平台基础SDK初始化,加载并初始化各个业务能力插件
[[AlibcTradeSDK sharedInstance] setDebugLogOpen:YES];//开发阶段打开日志开关,方便排查错误信息
[[AlibcTradeSDK sharedInstance] setIsvVersion:@"2.2.2"];
[[AlibcTradeSDK sharedInstance] setIsvAppName:@"baichuanDemo"];
[[AlibcTradeSDK sharedInstance] asyncInitWithSuccess:^{
TLOG_INFO(@"百川SDK初始化成功");
} failure:^(NSError *error) {
TLOG_INFO(@"百川SDK初始化失败");
}];
百川会初始化相关的依赖,不要自行初始化百川依赖的相关SDK.
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation{
// 如果百川处理过会返回YES
if (![[AlibcTradeSDK sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation]) {
// 处理其他app跳转到自己的app
}
return YES;
}
//IOS9.0 系统新的处理openURL 的API
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<NSString *,id> *)options {
if (@available(iOS 9.0, *)) {
__unused BOOL isHandledByALBBSDK=[[AlibcTradeSDK sharedInstance]
application:application
openURL:url
options:options];
} else {
// Fallback on earlier versions
}//处理其他app跳转到自己的app,如果百川处理过会返回YES
return YES;
}
XCode 11 ,iOS 13 适配
- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
[URLContexts enumerateObjectsUsingBlock:^(UIOpenURLContext * _Nonnull obj,
BOOL * _Nonnull stop) {
if([[AlibcTradeSDK sharedInstance] application:nil
openURL:obj.URL
options:nil]){
*stop = YES;
}
}];
}
为了正常使用百川内置的应用跳转处理,需要调用百川SDK的application:openURL:options:方法。建议优先调用百川处理,如果百川已处理,可以直接返回YES;当然,也可以继续处理,比如记录应用跳转来源日志等。
以上代码不实现,会导致通过手淘授权登陆, 依旧没有登录态等问题
if(![[ALBBCompatibleSession sharedInstance] isLogin]) {
[[ALBBSDK sharedInstance] setH5Only:NO];
[[ALBBSDK sharedInstance] auth:self successCallback:^{
NSString *tip = [NSString stringWithFormat:@"登录的用户信息:%@",[[ALBBCompatibleSession sharedInstance] getUser]];
NSLog(@"%@", tip);
} failureCallback:^(NSError *error) {
NSString *tip=[NSString stringWithFormat:@"登录失败:%@",@""];
NSLog(@"%@", tip);
}];
} else {
NSString *tip = [NSString stringWithFormat:@"登录的用户信息:%@",[[ALBBCompatibleSession sharedInstance] getUser]];
NSLog(@"%@", tip);
}
页面打开参数组装

淘客参数组装
(注:1、如果走adzoneId的方式分佣打点,需要在extraParams中显式传入taokeAppkey,否则打点失败;2、如果是打开店铺页面(shop),需要在extraParams中显式传入sellerId,否则同步打点转链失败3、如果adzoneId存在的话 pid参数会失效 4、关于直接打开s.click链接分佣说明
百川SDK不支持s.click(或uland)链接的二次转链逻辑,如果采用openByUrl方式打开该类链接,请勿传入pid等分佣参数;
若需要使用其他渠道获取的s.click链接进行分佣,可自行去淘客联盟后台生成自己的s.click链接或调用联盟服务接口生成。)
链路跟踪参数: trackParam
URL 方式调用电商API
绑定三方自己webview 的情况,需要媒体客户端在自己webview 创建初始化的时机开启WKURLProtocol,[WVURLProtocolService setSupportWKURLProtocol:YES]; 在webview 关闭的时候关闭这个WKURLProtocol, [WVURLProtocolService setSupportWKURLProtocol:NO];
//媒体可以传入自定义webview或者不传 百川SDK默认会创建webview
NSInteger res = [[AlibcTradeSDK sharedInstance].tradeService
openByUrl:url
identity:@"trade"//当前固定传入"trade" 后期会开放业务标识申请
webView:view.webView
parentController:view
showParams:showParam
taoKeParams:[self taokeParam]
trackParam:[self customParam]
tradeProcessSuccessCallback:self.onTradeSuccess
tradeProcessFailedCallback:self.onTradeFailure];
//页面最终以h5方式打开且showParam.isNeedPush = YES
//需要媒体自行处理。其余情况媒体不用关心
if (res == 1) {
[self.navigationController pushViewController:view animated:YES];
} code 方式调用API
//媒体可以传入自定义webview或者不传 百川SDK默认会创建webview
NSInteger res = [[AlibcTradeSDK sharedInstance].tradeService
openByBizCode:bizCode
page:page
webView:view.webView
parentController:view
showParams:showParam
taoKeParams:[self taokeParam]
trackParam:[self customParam]
tradeProcessSuccessCallback:self.onTradeSuccess
tradeProcessFailedCallback:self.onTradeFailure];
//页面最终以h5方式打开且showParam.isNeedPush = YES
//需要媒体自行处理。其余情况媒体不用关心
if (res == 1) {
[self.navigationController pushViewController:view animated:YES];
}