HuanXinHelper.m 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. //
  2. // HuanXinHelper.m
  3. // jitao
  4. //
  5. // Created by 罗云飞 on 2017/12/22.
  6. // Copyright © 2017年 罗云飞. All rights reserved.
  7. //
  8. #import "HuanXinHelper.h"
  9. #import "NewInterfaceReplacement.h"
  10. @implementation HuanXinHelper
  11. static HuanXinHelper *sharedObj = nil;
  12. + (instancetype)sharedInstance
  13. {
  14. static dispatch_once_t onceToken = 0;
  15. dispatch_once(&onceToken, ^{
  16. sharedObj = [[super allocWithZone: NULL] init];
  17. });
  18. return sharedObj;
  19. }
  20. + (id) allocWithZone:(struct _NSZone *)zone
  21. {
  22. return [self sharedInstance];
  23. }
  24. - (id) copyWithZone:(NSZone *) zone
  25. {
  26. return self;
  27. }
  28. - (void)setHuanXinSDK:(UIApplication *)application options:(NSDictionary *)launchOptions
  29. {
  30. [self registerInitialization:application options:launchOptions];
  31. }
  32. - (void)registerInitialization:(UIApplication *)application options:(NSDictionary *)launchOptions{
  33. EMOptions *options = [EMOptions optionsWithAppkey:HXAPPKey];
  34. options.apnsCertName = @"";
  35. [[EMClient sharedClient] initializeSDKWithOptions:options];
  36. //初始化EaseUI
  37. [[EaseSDKHelper shareHelper] hyphenateApplication:application didFinishLaunchingWithOptions:launchOptions appkey:HXAPPKey apnsCertName:@"" otherConfig:@{kSDKConfigEnableConsoleLogger:[NSNumber numberWithBool:YES]}];
  38. NSString *username = [NewUtils userDefaultsStringKey:NewHXUsername];
  39. NSString *password = [NewUtils userDefaultsStringKey:NewHXPassword];
  40. if (username.length==0 || password.length==0) {
  41. [[NewInterfaceReplacement sharedInstance] replacementLogin];
  42. return;
  43. }
  44. [self LoginHuanXin:username password:password];
  45. }
  46. - (void)LoginHuanXin:(NSString *)Username password:(NSString *)password {
  47. NSLog(@"环信账号:%@密码:%@",Username,password);
  48. BOOL isAutoLogin = [EMClient sharedClient].options.isAutoLogin;
  49. if (!isAutoLogin) {
  50. EMError *error = [[EMClient sharedClient] loginWithUsername:Username password:password];
  51. if (!error)
  52. {
  53. [[EMClient sharedClient].options setIsAutoLogin:YES];
  54. [[NSNotificationCenter defaultCenter]postNotificationName:@"环信登录成功" object:nil];
  55. }else{
  56. NSLog(@"%@",@"环信登录失败");
  57. }
  58. }
  59. }
  60. /*!
  61. * 当前登录账号在其它设备登录时会接收到该回调
  62. */
  63. - (void)didLoginFromOtherDevice {
  64. }
  65. /*!
  66. * 退出环信账号
  67. *
  68. */
  69. - (void)exitlogon {
  70. EMError *error = [[EMClient sharedClient] logout:YES];
  71. if (!error) {
  72. NSLog(@"退出环信成功");
  73. }
  74. }
  75. /*!
  76. * SDK连接服务器的状态变化时会接收到该回调
  77. *
  78. * 有以下几种情况,会引起该方法的调用:
  79. * 1. 登录成功后,手机无法上网时,会调用该回调
  80. * 2. 登录成功后,网络状态变化时,会调用该回调
  81. *
  82. * @param aConnectionState 当前状态
  83. */
  84. - (void)connectionStateDidChange:(EMConnectionState)aConnectionState {
  85. NSLog(@"%o",aConnectionState);
  86. }
  87. /*!
  88. * 自动登录返回结果
  89. *
  90. * @param error 错误信息
  91. */
  92. - (void)autoLoginDidCompleteWithError:(EMError *)error {
  93. NSLog(@"%@",error);
  94. }
  95. // 应用程序进入后台
  96. - (void)applicationDidEnterBackground:(UIApplication *)application {
  97. [[EMClient sharedClient] applicationDidEnterBackground:application];
  98. }
  99. // 应用程序进入前台
  100. - (void)applicationWillEnterForeground:(UIApplication *)application {
  101. [[EMClient sharedClient] applicationWillEnterForeground:application];
  102. }
  103. @end