测试已测试 | ✓ |
Lang语言 | Obj-CObjective C |
许可证 | MIT许可证 |
发布上次发布 | 2017年1月 |
由 Ignacio Giagante 维护。
依赖 | |
AFNetworking | ~> 3.0 |
MBProgressHUD | ~> 1.0.0 |
这是 MercadoLibre 平台的官方 iOS SDK。
CocoaPods (iOS 8.0 或更高版本)
CocoaPods 管理的项目依赖项在名为 Podfile 的文件中指定。在您的 Xcode 项目 (.xcodeproj) 文件相同的目录中创建此文件
$ touch Podfile
$ open -a Xcode Podfile
您刚刚创建了 pod 文件,并使用 Xcode 打开了它!准备好向空的 pod 文件添加一些内容了吗?
将以下行复制并粘贴到 TextEdit 窗口中
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '8.0'
pod 'MeliDevSDK', '~> 0.1.4'
您不应该使用 TextEdit 编辑 pod 文件,因为 TextEdit 喜欢将标准引号替换为更图形化的引号。这可能会导致 CocoaPods 混淆并显示错误,因此最好仅使用 Xcode 或其他编程文本编辑器。
现在您可以安装项目中的依赖项了
$ pod install
从现在起,在构建项目时,务必要始终打开生成的 Xcode 工作空间 (.xcworkspace) 而不是项目文件
$ open .xcworkspace
为了开始使用 SDK,您需要使用以下静态方法初始化 SDK
[Meli startSDK: CLIENT_ID_VALUE withRedirectUrl: REDIRECT_URL_VALUE error:&error];
其中
SDK 提供了授权用户使用 MercadoLibre 凭据使用您应用程序的功能。为了做到这一点,您需要遵循以下步骤
1 - 请求身份标识。如果已存在,则表示您已获得使用需要授权的MercadoLibre API的权限。
2 - 如果您没有身份标识,您应该使用以下静态方法初始化sdk并开始登录过程。
(void) startSDK: (NSString *) clientId withRedirectUrl:(NSString *) redirectUrl error:(NSError **) error;
(void) startLogin: (UIViewController *) clientViewController withSuccesBlock: (void (^)()) successBlock withErrorBlock: (void (^)(NSString *)) errorBlock;
此最后一种方法将检查是否已初始化sdk。如果没有,将会记录一条消息,提示您进行初始化。
如果在尝试获取访问令牌时没有出现错误,导航控制器将控制权交给客户端视图控制器。
NSString * result = [Meli get:path error:&error];
或
SuccessBlock successBlock = ^(NSURLSessionTask *task, id responseObject) {
[self parseData:responseObject];
};
FailureBlock failureBlock = ^(NSURLSessionTask *operation, NSError *error) {
if(error) {
[self processError:operation error:error];
}
};
[Meli get:path successBlock:successBlock failureBlock:failureBlock];
NSString * result = [Meli getAuth:path withIdentity: [Meli getIdentity] error: &error];
或
SuccessBlock successBlock = ^(NSURLSessionTask *task, id responseObject) {
[self parseData:responseObject];
};
FailureBlock failureBlock = ^(NSURLSessionTask *operation, NSError *error) {
if(error) {
[self processError:operation error:error];
}
};
[Meli asyncGetAuth:path withIdentity: identity successBlock:successBlock failureBlock:failureBlock];
NSString * result = [Meli post:path withBody:[self createJsonDataForPost] withIdentity: [Meli getIdentity] error:&error];
or
AsyncHttpOperationBlock operationBlock = ^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
NSLog(@"Response: %@", responseObject);
} else {
NSLog(@"Error: %@, %@, %@", error, response, responseObject);
}
};
[Meli asyncPost:path withBody:body withIdentity: [Meli getIdentity] operationBlock:operationBlock];
NSString * result = [Meli put:path withBody:jsonData error:&error];
or
AsyncHttpOperationBlock operationBlock = ^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (!error) {
NSLog(@"Response: %@", responseObject);
} else {
NSLog(@"Error: %@, %@, %@", error, response, responseObject);
}
};
[Meli put:path withBody:[self createJsonDataForPut] withIdentity: [Meli getIdentity] error:&error];
NSString * result = [Meli delete:path withIdentity: [Meli getIdentity] error:&error];
or
SuccessBlock successBlock = ^(NSURLSessionTask *task, id responseObject) {
[self parseData:responseObject];
};
FailureBlock failureBlock = ^(NSURLSessionTask *operation, NSError *error) {
if(error) {
[self processError:operation error:error];
}
};
[Meli asyncDelete:path withIdentity: [Meli getIdentity] successBlock:successBlock failureBlock:failureBlock];
在GitHub存储库中的代码中,有一个示例项目,包含如何使用SDK的示例。