Appearance
iOS---登录
概述
借助宝船SDK平台接入各个平台的登录,你可以在你的应用中快速轻松地实现登录功能。
SDK平台配置和依赖导入
应用接入
1.在AppDelegate类中初始化SDK。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[BrickManager initBrickWith:@"cdshf8dfbshdf8sdfc" appSecret:@"sdjncvs889347r983274cvhsd" bindId:@"com.xxx.name"];//宝船出海SDK应用创建后,平台生成的key
//宝船出海SDK应用创建后,平台生成的秘钥
[BrickManager wechatRegisterAppWith:@"wxd326eceb36c332323" universalLink:@"https://weixin.com/"];
//微信开发者ID
//微信开发者Universal Link
return YES;
}
2.配置添加CoreTelephony.framework,libc++.tbd,libsqlite3.0.tbd,libz.tbd,SystemConfiguration.framework,WebKit.framework。

另外如果需要Facebook登录需要配置Accelerate.framework,SwiftUI.framework。

3.配置URL Type。

4.配置Other Linker Flags。

用户登录相关方法和说明
用户登录
1.您可以在未登录的情况下进行登录,目前支持微信、QQ、苹果登录、游客登录、Facebook登录。以微信登录为例:
- (IBAction)wechatLoginBtnClick:(UIButton *)sender {
[BrickManager wechatLoginSuccess:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSDictionary *data = result.data;
NSString *message = result.message;
NSDictionary *respone = data[@"data"];
NSString *userId = respone[@"user_id"];
NSLog(@"wechatLoginSuccess:%@-----%@",data,message);
} failure:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSInteger code = result.code;
NSString *message = result.message;
NSLog(@"wechatLoginFailure:%ld-----%@",(long)code,message);
}];
}
2.QQ登录示例:
- (IBAction)qqLoginBtnClick:(UIButton *)sender {
[BrickManager qqLoginWithAppId:QQAppID andUniversalLink:QQUniversalLink success:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSDictionary *data = result.data;
NSString *message = result.message;
NSDictionary *respone = data[@"data"];
NSString *userId = respone[@"user_id"];
NSLog(@"qqLoginSuccess:%@-----%@",data,message);
} failure:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSInteger code = result.code;
NSString *message = result.message;
NSLog(@"qqLoginFailure:%ld-----%@",(long)code,message);
}];
}
3.苹果登录示例:
- (IBAction)appleLoginBtnClick:(UIButton *)sender {
[BrickManager appleLoginFrom:self success:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSDictionary *data = result.data;
NSDictionary *respone = data[@"data"];
NSString *userId = respone[@"user_id"];
NSString *message = result.message;
NSLog(@"appleLoginSuccess:%@-----%@",data,message);
} failure:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSInteger code = result.code;
NSString *message = result.message;
NSLog(@"appleLoginFailure:%ld-----%@",(long)code,message);
}];
}
4.游客登录示例:
[BrickManager visitorLoginSuccess:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSDictionary *data = result.data;
NSString *message = result.message;
NSLog(@"visitorLoginSuccess:%@-----%@",data,message);
} failure:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSInteger code = result.code;
NSString *message = result.message;
NSLog(@"visitorLoginFailure:%ld-----%@",(long)code,message);
}];5.Facebook登录示例:
- (IBAction)facebokLoginBtnClick:(UIButton *)sender {
[BrickManager facebookLoginWithCurrentViewController:self success:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSDictionary *data = result.data;
NSString *message = result.message;
NSLog(@"facebookLoginSuccess:%@-----%@",data,message);
} failure:^(BrickCompleteResult * _Nonnull completeResult) {
BrickCompleteResult *result = completeResult;
NSInteger code = result.code;
NSString *message = result.message;
NSLog(@"facebookLoginFailure:%ld-----%@",(long)code,message);
}];
}6.重写AppDelegate或SceneDelegate的continueUserActivity方法: 注意:适配了SceneDelegate的App,系统将会回调SceneDelegate的continueUserActivity方法,所以需要重写SceneDelegate的该方法。
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [BrickManager brickLoginHandleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [BrickManager brickLoginHandleOpenURL:url];
}
- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
NSArray *contextArray = [URLContexts allObjects];
UIOpenURLContext *urlContent = [contextArray firstObject];
[BrickManager brickLoginHandleOpenURL:urlContent.URL];
}
- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {
[BrickManager brickLoginHandleOpenUniversalLink:userActivity];
}