// // HuanXinHelper.m // jitao // // Created by 罗云飞 on 2017/12/22. // Copyright © 2017年 罗云飞. All rights reserved. // #import "HuanXinHelper.h" #import "NewInterfaceReplacement.h" @implementation HuanXinHelper static HuanXinHelper *sharedObj = nil; + (instancetype)sharedInstance { static dispatch_once_t onceToken = 0; dispatch_once(&onceToken, ^{ sharedObj = [[super allocWithZone: NULL] init]; }); return sharedObj; } + (id) allocWithZone:(struct _NSZone *)zone { return [self sharedInstance]; } - (id) copyWithZone:(NSZone *) zone { return self; } - (void)setHuanXinSDK:(UIApplication *)application options:(NSDictionary *)launchOptions { [self registerInitialization:application options:launchOptions]; } - (void)registerInitialization:(UIApplication *)application options:(NSDictionary *)launchOptions{ EMOptions *options = [EMOptions optionsWithAppkey:HXAPPKey]; options.apnsCertName = @""; [[EMClient sharedClient] initializeSDKWithOptions:options]; //初始化EaseUI [[EaseSDKHelper shareHelper] hyphenateApplication:application didFinishLaunchingWithOptions:launchOptions appkey:HXAPPKey apnsCertName:@"" otherConfig:@{kSDKConfigEnableConsoleLogger:[NSNumber numberWithBool:YES]}]; NSString *username = [NewUtils userDefaultsStringKey:NewHXUsername]; NSString *password = [NewUtils userDefaultsStringKey:NewHXPassword]; if (username.length==0 || password.length==0) { [[NewInterfaceReplacement sharedInstance] replacementLogin]; return; } [self LoginHuanXin:username password:password]; } - (void)LoginHuanXin:(NSString *)Username password:(NSString *)password { NSLog(@"环信账号:%@密码:%@",Username,password); BOOL isAutoLogin = [EMClient sharedClient].options.isAutoLogin; if (!isAutoLogin) { EMError *error = [[EMClient sharedClient] loginWithUsername:Username password:password]; if (!error) { [[EMClient sharedClient].options setIsAutoLogin:YES]; [[NSNotificationCenter defaultCenter]postNotificationName:@"环信登录成功" object:nil]; }else{ NSLog(@"%@",@"环信登录失败"); } } } /*! * 当前登录账号在其它设备登录时会接收到该回调 */ - (void)didLoginFromOtherDevice { } /*! * 退出环信账号 * */ - (void)exitlogon { EMError *error = [[EMClient sharedClient] logout:YES]; if (!error) { NSLog(@"退出环信成功"); } } /*! * SDK连接服务器的状态变化时会接收到该回调 * * 有以下几种情况,会引起该方法的调用: * 1. 登录成功后,手机无法上网时,会调用该回调 * 2. 登录成功后,网络状态变化时,会调用该回调 * * @param aConnectionState 当前状态 */ - (void)connectionStateDidChange:(EMConnectionState)aConnectionState { NSLog(@"%o",aConnectionState); } /*! * 自动登录返回结果 * * @param error 错误信息 */ - (void)autoLoginDidCompleteWithError:(EMError *)error { NSLog(@"%@",error); } // 应用程序进入后台 - (void)applicationDidEnterBackground:(UIApplication *)application { [[EMClient sharedClient] applicationDidEnterBackground:application]; } // 应用程序进入前台 - (void)applicationWillEnterForeground:(UIApplication *)application { [[EMClient sharedClient] applicationWillEnterForeground:application]; } @end