阿里百川帮助文档略坑,总结了2.1版本集成步骤,GitHub有demo,求Star
GitHub:https://github.com/ccPineapple/ALBCDemo
1.进入阿里百川开放平台创建应用
2.选择刚刚创建的应用,点击做成API申请,申请初级电商能力
3.下载百川电商SDK
4. 先将demo中 ALiTradeSDKDemo-iOS /ALiTrade 文件夹下的安全图片 yw_1222.jpg 删除
5. 将ALiTradeSDKDemo-iOS /ALiTrade 文件夹拷贝入项目
6.进入阿里百川开放平台 并点击安全图片获取
7.填写项目BundleID并下载安全图片
8.将下载的安全图片拖入项目根目录中
9.导入NBResource.bundle,到Bundle Resources中, 在文件夹中找到NBSDK.framework之后,找到NBSDK.framework/Resources/NBResource.bundle 这个,然后导入
10. 依次添加系统库:
libz.tbd
libc++.tbd
Security.framework
CoreMotion.Framework
CFNetwork.framework
CoreTelephony.framework
SystemConfiguration.framework
11. 添加编译参数:
-lstdc++
-ObjC
12. 配置URL Types
13.在info.plist中,增加LSApplicationQueriesSchemes字段,并添加tbopen,tmall
14.初始化SDK
在 AppDelegate 中初始化SDK
#import <NBSDK/ALiTradeSDK.h>
- (BOOL)application:(UIApplication *)application {
// 外部使用只能用Release环境
[[ALiTradeSDK sharedInstance] setEnv:ALiEnvironmentRelease];
// 百川平台基础SDK初始化,加载并初始化各个业务能力插件
NSString *appKey = @"23082328";
[[ALiTradeSDK sharedInstance] asyncInit:appKey success:^{
} failure:^(NSError *error) {
NSLog(@"Init failed: %@", error.description);
}];
// 开发阶段打开日志开关,方便排查错误信息
[[ALiTradeSDK sharedInstance] setDebugLogOpen:YES];
// 配置全局的淘客参数
ALiTradeTaokeParams *taokeParams = [[ALiTradeTaokeParams alloc] init];
taokeParams.pid = @"mm_97100348_7476080_24834937";
taokeParams.unionId = nil;
taokeParams.subPid = nil;
[[ALiTradeSDK sharedInstance] setTaokeParams:taokeParams];
// 设置全局的app标识,在电商模块里等同于isv_code
[[ALiTradeSDK sharedInstance] setISVCode:@"your_isv_code"];
// 设置全局配置,是否强制使用h5
[[ALiTradeSDK sharedInstance] setIsForceH5:NO];
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
// 如果百川处理过会返回YES
if ([[ALiTradeSDK sharedInstance] handleOpenURL:url]) {
// 处理其他app跳转到自己的app
return YES;
}
return NO;
}
//IOS9.0 系统新的处理openURL 的API
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
//处理其他app跳转到自己的app,如果百川处理过会返回YES
if ([[ALiTradeSDK sharedInstance] handleOpenURL:url]) {
return YES;
}
return NO;
}
15.在需要购买的方法中引用 #import <NBSDK/ALiTradeSDK.h>
a.调商品详情
#import <NBSDK/ALiTradeSDK.h>
id<ALiTradePage> page = [ALiTradePageFactory itemDetailPage:@"41576306115"];
id<ALiTradeService> service = [ALiTradeSDK sharedInstance].tradeService;
ALiTradeShowParams *showParams = [[ALiTradeShowParams alloc] init];
showParams.openType = ALiOpenTypeAuto;
[service
show:showParams.isNeedPush ? self.navigationController : self
page:page
showParams:showParams
taoKeParams:nil
trackParam:[self trackParams]
tradeProcessSuccessCallback:^(ALiTradeResult * _Nullable result) {
} tradeProcessFailedCallback:^(NSError * _Nullable error) {
}];
- (NSDictionary *)trackParams {
return @{@"track_key": @"track_value"};
}
b.跳店铺首页
#import <NBSDK/ALiTradeSDK.h>
id<ALiTradePage> page = [ALiTradePageFactory shopPage:@"60552065"];
id<ALiTradeService> service = [ALiTradeSDK sharedInstance].tradeService;
ALiTradeShowParams *showParams = [[ALiTradeShowParams alloc] init];
showParams.openType = ALiOpenTypeAuto;
[service
show:showParams.isNeedPush ? self.navigationController : self
page:page
showParams:showParams
taoKeParams:nil
trackParam:[self trackParams]
tradeProcessSuccessCallback:^(ALiTradeResult * _Nullable result) {
} tradeProcessFailedCallback:^(NSError * _Nullable error) {
}];
- (NSDictionary *)trackParams {
return @{@"track_key": @"track_value"};
}