SDK的集成

2020-04-04  本文已影响0人  GitArtOS
  1. 导入LoginSDK并进行相关配置
    导入SDK到我们的App工程后,我们要对其进行相应的配置。首先我们要对Framework Search Paths进行配置,也就是说告诉编译器我们的第三方SDK所在的位置。
    配置完路径后,接下来我们要在Other Linker Flags添加上-Objc和-all_load选项;
  2. 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;


  1. 使用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:^{
        
    }];
}
上一篇下一篇

猜你喜欢

热点阅读