diff --git a/lib/controller/mine/user_controller.dart b/lib/controller/mine/user_controller.dart index 36d00be..d9ba74f 100644 --- a/lib/controller/mine/user_controller.dart +++ b/lib/controller/mine/user_controller.dart @@ -1,3 +1,4 @@ +import 'package:dating_touchme_app/im/im_manager.dart'; import 'package:get/get.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import '../../network/user_api.dart'; @@ -30,7 +31,7 @@ class UserController extends GetxController { if (token != null) { // 打印获取的token print('获取环信用户token成功: $token'); - + IMManager.instance.login(token); return token; } else { SmartDialog.showToast('获取的环信用户token为空'); diff --git a/lib/im/im_manager.dart b/lib/im/im_manager.dart index b039a3f..c8329ee 100644 --- a/lib/im/im_manager.dart +++ b/lib/im/im_manager.dart @@ -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 login(String userId, String token) async { + Future 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) { diff --git a/lib/main.dart b/lib/main.dart index 5fdf5bd..f34f3ee 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:dating_touchme_app/config/env_config.dart'; +import 'package:dating_touchme_app/im/im_manager.dart'; import 'package:dating_touchme_app/network/network_service.dart'; import 'package:dating_touchme_app/pages/main/main_page.dart'; import 'package:dating_touchme_app/pages/mine/login_page.dart'; @@ -20,7 +21,7 @@ void main() async { // 设置环境配置 - 根据是否为release模式 EnvConfig.setEnvironment(Environment.dev); - + IMManager.instance.initialize('1165251016193374#dongwo'); // 初始化全局依赖 final networkService = NetworkService(); Get.put(networkService);