Browse Source

IM初始化

ios
Jolie 4 months ago
parent
commit
3da858f4b7
3 changed files with 13 additions and 7 deletions
  1. 3
      lib/controller/mine/user_controller.dart
  2. 14
      lib/im/im_manager.dart
  3. 3
      lib/main.dart

3
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为空');

14
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<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) {

3
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);

Loading…
Cancel
Save