SDK的集成
2020-04-04 本文已影响0人
GitArtOS
- 导入
LoginSDK
并进行相关配置
导入SDK到我们的App工程后,我们要对其进行相应的配置。首先我们要对Framework Search Paths
进行配置,也就是说告诉编译器我们的第三方SDK所在的位置。
配置完路径后,接下来我们要在Other Linker Flags
添加上-Objc
和-all_load
选项; -
LoginSDK
的使用
配置完毕后,接下来就是在我们App中使用该LoginSDK
了。下方代码就是我们上述LoginSDK
的使用方式,首先获取单例,然后检查是否登录,登录成功后根据Block回调跳转到首页,如果未登录,就通过LoginAPI获取登录页面进行登录;
#import <LoginSDK//LoginAPI.h> //导入头文件
@interface LoginAPI : NSObject<LoginManagerProtocal>
@property (strong, nonatomic) NSString * token;
/**
* 获取账户管理的单例
*
* @return 返回账户管理的Manager
*/
+ (instancetype)shareManager;
/**
* 首次登录,获取登录页面
*
* @param loginBlock 登录成功后的Block
*
* @return 返回LoginViewController
*/
- (UIViewController *)getLoginViewController: (LoginBlock)loginBlock;
/**
* 检查是否有账号登录过
*
* @param loginSuccessBlock 登录成功回调
* @param noAccountBlock 无账号登录
*/
- (void)checkHaveLogin: (LoginBlock)loginSuccessBlock
noAccountBlock: (NoAccountLoginBlock) noAccountBlock;
/**
* 注销
*/
- (void)logout;
/**
* 判断是否已注销
*
* @return YES - 已注销, NO - 已登录
*/
- (Boolean)isLogout;
- 使用
Demo
- (void)viewDidLoad {
[super viewDidLoad];
_loginAPI = [LoginAPI shareManager]; //获取LoginAPI单例
}
- (IBAction)tapLogin: (id)sender {
[self checkHaveLogin:YES];
}
//检查是否已经登录
- (void)checkHaveLogin: (BOOL)isTapButton {
if (_loginAPI != nil) {
__weak typeof (self) weak_self = self;
[_loginAPI checkHaveLogin:^(NSString *token) {
[weak_self presentMainViewControllerWithText:token]; //二次登录,成功后直接进入首页
} noAccountBlock:^{
if (isTapButton) {
[weak_self presentLoginViewController]; //首次登录,获取登录页面,进行登录
}
}];
}
}
//通过loginAPI获取登录页面,并对登录成功后的事件进行处理
- (void)presentLoginViewController {
__weak typeof (self) weak_self = self;
UIViewController *vc = [_loginAPI getLoginViewController:^(NSString *token) {
[weak_self presentMainViewControllerWithText:token];
}];
vc.modalPresentationStyle=UIModalPresentationOverFullScreen;
[self presentViewController:vc animated:YES completion:^{}];
}
-(void)viewDidAppear:(BOOL)animated {
//[self checkHaveLogin:NO];
}
- (void)presentMainViewControllerWithText: (NSString *)text {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
MainViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"MainViewController"];
[vc setTipLableText:[NSString stringWithFormat:@"登录成功: %@", text]];
[self presentViewController:vc animated:NO completion:^{
}];
}