|
|
|
@ -1,3 +1,4 @@ |
|
|
|
import 'package:get_storage/get_storage.dart'; |
|
|
|
import 'package:im_flutter_sdk/im_flutter_sdk.dart'; |
|
|
|
|
|
|
|
// 完整的IM管理器实现,使用实际的SDK类型和方法 |
|
|
|
@ -5,6 +6,10 @@ class IMManager { |
|
|
|
// 单例模式 |
|
|
|
static final IMManager _instance = IMManager._internal(); |
|
|
|
factory IMManager() => _instance; |
|
|
|
final storage = GetStorage(); |
|
|
|
// 静态getter用于instance访问 |
|
|
|
static IMManager get instance => _instance; |
|
|
|
|
|
|
|
bool _isInitialized = false; |
|
|
|
|
|
|
|
IMManager._internal() { |
|
|
|
@ -29,9 +34,6 @@ class IMManager { |
|
|
|
// 初始化SDK |
|
|
|
await EMClient.getInstance.init(options); |
|
|
|
|
|
|
|
// 注册监听器 |
|
|
|
_registerListeners(); |
|
|
|
|
|
|
|
_isInitialized = true; |
|
|
|
print('IM SDK initialized successfully'); |
|
|
|
return true; |
|
|
|
@ -68,14 +70,16 @@ class IMManager { |
|
|
|
} |
|
|
|
|
|
|
|
/// 登录IM服务 |
|
|
|
Future<bool> login(String userId, String token) async { |
|
|
|
Future<bool> login(String token) async { |
|
|
|
try { |
|
|
|
if (!_isInitialized) { |
|
|
|
print('IM SDK not initialized'); |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
var userId = storage.read('userId'); |
|
|
|
await EMClient.getInstance.loginWithToken(userId, token); |
|
|
|
// 注册监听器 |
|
|
|
_registerListeners(); |
|
|
|
print('IM login successful'); |
|
|
|
return true; |
|
|
|
} catch (e) { |
|
|
|
|