234 lines
9.2 KiB
Objective-C
234 lines
9.2 KiB
Objective-C
//
|
||
// IfishUserDataUnity.m
|
||
// Ifish
|
||
//
|
||
// Created by imac on 17/4/7.
|
||
// Copyright © 2017年 lianlian. All rights reserved.
|
||
//
|
||
|
||
#import "IfishUserDataUnity.h"
|
||
#import "NTESLoginManager.h"
|
||
#import "SVProgressHUD.h"
|
||
#import "NTESService.h"
|
||
#import "IfishMianTabViewController.h"
|
||
#import "IfishUserDefaultHelper.h"
|
||
#import "NSObject+LBLaunchImage.h"
|
||
#import "IfishLoadingWebViewController.h"
|
||
#import "IfishADTimerViewController.h"
|
||
@implementation IfishUserDataUnity
|
||
|
||
+(IfishUserDataUnity*)shareDataInstance
|
||
{
|
||
static IfishUserDataUnity*instance=nil;
|
||
static dispatch_once_t predicate;
|
||
dispatch_once(&predicate, ^{
|
||
instance=[[[self class]alloc]init];
|
||
|
||
});
|
||
return instance;
|
||
}
|
||
-(void)userloginValidationSuccsess:(NSDictionary *)dataDic phoneNumber:(NSString *)phoneNumber passward:(NSString *)password
|
||
|
||
{
|
||
|
||
NSDictionary *userDic=dataDic[@"userInfo"];
|
||
UserModel *model=[[UserModel alloc] initWithDict:userDic];
|
||
[[DataCenter defaultDtacenter]setValue:model forKey:@"UserLogIn"];
|
||
|
||
//金币任务等级
|
||
NSDictionary *userAssetDic=dataDic[@"userAsset"];
|
||
IfishUserAsset *userAsset =[[IfishUserAsset alloc] initWithDict:userAssetDic];
|
||
[[DataCenter defaultDtacenter]setValue:userAsset forKey:@"IfishUserAsset"];
|
||
|
||
NSUserDefaults*userdefult=[NSUserDefaults standardUserDefaults];
|
||
|
||
[userdefult setObject:password forKey:@"password"];
|
||
[userdefult setObject:phoneNumber forKey:@"name"];
|
||
[userdefult setObject:@"0" forKey:@"isExit"];
|
||
[userdefult setObject:model.userId forKey:@"userId"];
|
||
|
||
if ([model.userSex isEqual:[NSNull null]] || model.userSex ==nil) {
|
||
model.userSex=@"";
|
||
}
|
||
|
||
[userdefult setObject:model.userSex forKey:@"userSex"];
|
||
[userdefult synchronize];
|
||
|
||
|
||
NSLog(@"userDic:%@",userDic);
|
||
NSLog(@"登录成功");
|
||
//登陆云信
|
||
NSString *acount = [NSString stringWithFormat:@"%@",model.userId];
|
||
[self doLoginWithAccount:acount addToken:model.neteaseToken];
|
||
[self setAppTabRoot];
|
||
|
||
}
|
||
|
||
#pragma mark -登陆云信服务器
|
||
- (void)doLoginWithAccount:(NSString *)acount addToken:(NSString *)token
|
||
{
|
||
|
||
NSString *loginAccount = acount;
|
||
NSString *loginToken = token;
|
||
|
||
//NIM SDK 只提供消息通道,并不依赖用户业务逻辑,开发者需要为每个APP用户指定一个NIM帐号,NIM只负责验证NIM的帐号即可(在服务器端集成)
|
||
//用户APP的帐号体系和 NIM SDK 并没有直接关系
|
||
//DEMO中使用 username 作为 NIM 的account ,md5(password) 作为 token
|
||
//开发者需要根据自己的实际情况配置自身用户系统和 NIM 用户系统的关系
|
||
|
||
|
||
[[[NIMSDK sharedSDK] loginManager] login:loginAccount
|
||
token:loginToken
|
||
completion:^(NSError *error) {
|
||
[SVProgressHUD dismiss];
|
||
if (error == nil)
|
||
{
|
||
LoginData *sdkData = [[LoginData alloc] init];
|
||
sdkData.account = loginAccount;
|
||
sdkData.token = loginToken;
|
||
[[NTESLoginManager sharedManager] setCurrentLoginData:sdkData];
|
||
|
||
[[NTESServiceManager sharedManager] start];
|
||
//NSInteger count = [[[NIMSDK sharedSDK] conversationManager] allUnreadCount];
|
||
// NSLog(@"count%d",count);
|
||
[[NSNotificationCenter defaultCenter] postNotificationName:IFISHIMLOGINSUCSESS object:nil];
|
||
}
|
||
else
|
||
{
|
||
NSString *toast = [NSString stringWithFormat:@"登录失败 code: %zd",error.code];
|
||
[[UIApplication sharedApplication].keyWindow makeToast:toast ];
|
||
}
|
||
}];
|
||
|
||
}
|
||
|
||
#pragma mark - 自动登录
|
||
|
||
-(void)userAutologinSuccsess:(NSDictionary *)dataDic
|
||
{
|
||
NSDictionary *userDic=dataDic[@"userInfo"];
|
||
UserModel *model=[[UserModel alloc] initWithDict:userDic];
|
||
[[DataCenter defaultDtacenter]setValue:model forKey:@"UserLogIn"];
|
||
|
||
//金币任务等级
|
||
NSDictionary *userAssetDic=dataDic[@"userAsset"];
|
||
IfishUserAsset *userAsset =[[IfishUserAsset alloc] initWithDict:userAssetDic];
|
||
[[DataCenter defaultDtacenter]setValue:userAsset forKey:@"IfishUserAsset"];
|
||
|
||
//是否升级
|
||
NSString *oldGradeNum = [IfishUserDefaultHelper getDefualtGradNum];
|
||
NSString *gradeNum = [NSString stringWithFormat:@"%@",userAsset.gradeNum];
|
||
if ([oldGradeNum intValue]<[gradeNum intValue]){
|
||
[[IfishUserObsever sharedInstance] showLevelUpWith:gradeNum];
|
||
[IfishUserDefaultHelper chageLevlelGrad:gradeNum];
|
||
}
|
||
|
||
|
||
//登陆云信 走自动登录
|
||
LoginData *data = [[NTESLoginManager sharedManager] currentLoginData];
|
||
NSString *account = [data account];
|
||
NSString *token = [data token];
|
||
|
||
//如果有缓存用户名密码推荐使用自动登录
|
||
if ([account length] && [token length])
|
||
{
|
||
//自动登录
|
||
//非强制模式
|
||
//[[[NIMSDK sharedSDK] loginManager] autoLogin:account
|
||
// token:token];
|
||
//这里我们使用强制模式 即不考虑安全登录 多设备同帐号登陆
|
||
|
||
NIMAutoLoginData * LoginData = [[NIMAutoLoginData alloc] init];
|
||
LoginData.account = account;
|
||
LoginData.token = token;
|
||
//强制模式 强制模式下的自动登录,服务器将不检查当前登录设备是否为上一次登录设备,安全性较低。但相对的更加方便,适合 IM 仅作为辅助模块的 App
|
||
|
||
LoginData.forcedMode = YES;
|
||
[[[NIMSDK sharedSDK] loginManager] autoLogin:LoginData];
|
||
[[NTESServiceManager sharedManager] start];
|
||
|
||
}
|
||
else
|
||
{ //注册登录
|
||
NSString *acount = [NSString stringWithFormat:@"%@",model.userId];
|
||
[self doLoginWithAccount:acount addToken:model.neteaseToken];
|
||
}
|
||
|
||
//[self startLounchImg];
|
||
//完成登陆验证开始 广告页倒计时
|
||
[self setAdViewVC];
|
||
|
||
}
|
||
|
||
-(void)setAdViewVC
|
||
{
|
||
IfishADTimerViewController *mianVC=[[IfishADTimerViewController alloc] init];
|
||
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:mianVC];
|
||
[UIApplication sharedApplication].delegate.window.rootViewController=nav;
|
||
|
||
}
|
||
-(void)startLounchImg{
|
||
|
||
__weak typeof(self) weakSelf = self;
|
||
[NSObject makeLBLaunchImageAdView:^(LBLaunchImageAdView *imgAdView) {
|
||
[[UIApplication sharedApplication].keyWindow addSubview:imgAdView];
|
||
|
||
//设置广告的类型
|
||
imgAdView.getLBlaunchImageAdViewType(LogoAdType);
|
||
//设置本地启动图片
|
||
imgAdView.localAdImgName = @"Ifishlaunch_adView.jpg";
|
||
//自定义跳过按钮
|
||
imgAdView.skipBtn.backgroundColor = [UIColor blackColor];
|
||
//各种点击事件的回调
|
||
imgAdView.clickBlock = ^(clickType type){
|
||
switch (type) {
|
||
case clickAdType:{
|
||
NSLog(@"点击广告回调");
|
||
//TestViewController *vc = [[TestViewController alloc]init];
|
||
//vc.view.backgroundColor = [UIColor whiteColor];
|
||
//[[UIApplication sharedApplication].delegate.window.rootViewController presentViewController:vc animated:YES completion:^{
|
||
|
||
// }];
|
||
IfishMianTabViewController *mianVC=[[IfishMianTabViewController alloc] init];
|
||
[UIApplication sharedApplication].delegate.window.rootViewController=mianVC;
|
||
IfishLoadingWebViewController *pushVC = [[IfishLoadingWebViewController alloc] init];
|
||
pushVC.pushlink = IFISH_DEVCEITROURL;
|
||
[mianVC.navigationController pushViewController:pushVC animated:YES];
|
||
|
||
}
|
||
break;
|
||
case skipAdType:
|
||
{
|
||
NSLog(@"点击跳过回调");
|
||
[weakSelf setAppTabRoot];
|
||
}
|
||
|
||
break;
|
||
case overtimeAdType:
|
||
|
||
{
|
||
|
||
NSLog(@"倒计时完成后的回调");
|
||
[weakSelf setAppTabRoot];
|
||
}
|
||
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
};
|
||
|
||
}];
|
||
|
||
}
|
||
|
||
//设置根视图
|
||
-(void)setAppTabRoot{
|
||
|
||
IfishMianTabViewController *mianVC=[[IfishMianTabViewController alloc] init];
|
||
[UIApplication sharedApplication].delegate.window.rootViewController=mianVC;
|
||
|
||
}
|
||
|
||
@end
|