Flutter即时通讯插件nim_conversationkit的使用

Flutter即时通讯插件nim_conversationkit的使用

kit.nim_conversationkit

提供会话列表业务层实现。

声明依赖项

如需添加 ConversationKit 的依赖项,您必须将 pub 库添加到项目中。

在应用或模块的 pubspec.yaml 文件中添加所需工件的依赖项:

dependencies:
  nim_conversationkit: ^1.0.0

接下来,让我们看看如何在您的 Flutter 项目中使用 nim_conversationkit 插件。我们将创建一个简单的示例来展示如何获取并显示会话列表。

创建一个新的 Flutter 项目

首先,确保你已经安装了 Flutter SDK 并配置好了开发环境。然后创建一个新的 Flutter 项目:

flutter create conversation_kit_example
cd conversation_kit_example

在项目的 pubspec.yaml 文件中添加 nim_conversationkit 依赖:

dependencies:
  flutter:
    sdk: flutter
  nim_conversationkit: ^1.0.0

保存文件后,运行以下命令以获取依赖项:

flutter pub get

初始化nim_conversationkit

在您的主应用程序文件(例如 main.dart)中初始化 nim_conversationkit

import 'package:flutter/material.dart';
import 'package:nim_conversationkit/nim_conversationkit.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('nim_conversationkit 示例')),
        body: ConversationListScreen(),
      ),
    );
  }
}

创建会话列表屏幕

现在我们来创建一个 ConversationListScreen,它将从 nim_conversationkit 获取会话列表并显示它们。

class ConversationListScreen extends StatefulWidget {
  @override
  _ConversationListScreenState createState() => _ConversationListScreenState();
}

class _ConversationListScreenState extends State<ConversationListScreen> {
  List<NIMSession> sessions = [];

  @override
  void initState() {
    super.initState();
    // 初始化nim_conversationkit
    NIMConversationKit.instance().init();

    // 获取会话列表
    NIMConversationKit.instance().fetchSessions().then((result) {
      setState(() {
        sessions = result;
      });
    }).catchError((error) {
      print("获取会话列表失败: $error");
    });
  }

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: sessions.length,
      itemBuilder: (context, index) {
        final session = sessions[index];
        return ListTile(
          title: Text(session.title),
          subtitle: Text(session.lastMessage?.content ?? ""),
          trailing: Text(session.unreadCount.toString()),
        );
      },
    );
  }
}

上述代码做了以下几件事:

  1. 初始化 nim_conversationkit
  2. 调用 fetchSessions() 方法获取会话列表。
  3. 将获取到的会话列表存储在 _ConversationListScreenState 类中的 sessions 变量里,并更新 UI 显示。

运行示例

最后,运行你的 Flutter 应用程序,你应该能够看到会话列表被成功加载并显示出来。

flutter run

更多关于Flutter即时通讯插件nim_conversationkit的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter即时通讯插件nim_conversationkit的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


nim_conversationkit 是一个用于在 Flutter 中实现即时通讯功能的插件,通常与网易云信(NIM)SDK 结合使用。以下是如何使用 nim_conversationkit 插件的简要指南:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 nim_conversationkit 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  nim_conversationkit: ^latest_version

然后运行 flutter pub get 来安装依赖。

2. 初始化 SDK

在使用 nim_conversationkit 之前,你需要初始化网易云信 SDK。通常,你需要在应用程序启动时完成这一步。

import 'package:nim_conversationkit/nim_conversationkit.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 NIM SDK
  await NIMConversationKit.init(
    appKey: 'your_app_key',
    apnsCername: 'your_apns_certificate_name', // 仅 iOS 需要
  );
  
  runApp(MyApp());
}

3. 登录

初始化 SDK 后,你需要登录到网易云信服务器。通常,你需要提供一个账号和令牌。

await NIMConversationKit.login(
  account: 'your_account',
  token: 'your_token',
);

4. 获取会话列表

你可以使用 nim_conversationkit 来获取当前用户的会话列表。

List<NIMConversation> conversations = await NIMConversationKit.getConversationList();

5. 监听会话变化

你可以监听会话的变化,例如新消息到达或会话更新。

NIMConversationKit.addConversationListener((event) {
  // 处理会话变化事件
  switch (event.type) {
    case NIMConversationEventType.add:
      // 新会话添加
      break;
    case NIMConversationEventType.update:
      // 会话更新
      break;
    case NIMConversationEventType.delete:
      // 会话删除
      break;
  }
});

6. 发送消息

你可以使用 nim_conversationkit 来发送文本消息、图片消息等。

await NIMConversationKit.sendMessage(
  sessionId: 'receiver_id',
  sessionType: NIMSessionType.p2p,
  message: NIMTextMessage(content: 'Hello, World!'),
);

7. 接收消息

你可以监听消息的接收事件。

NIMConversationKit.addMessageListener((message) {
  // 处理接收到的消息
  print('Received message: ${message.content}');
});

8. 注销

当用户退出时,你需要注销当前用户。

await NIMConversationKit.logout();

9. 处理异常

在使用过程中,可能会遇到各种异常,例如网络问题、登录失败等。你需要处理这些异常以确保应用程序的稳定性。

try {
  await NIMConversationKit.login(
    account: 'your_account',
    token: 'your_token',
  );
} catch (e) {
  print('Login failed: $e');
}

10. 清理资源

在应用程序退出时,确保清理相关资源。

[@override](/user/override)
void dispose() {
  NIMConversationKit.removeConversationListener();
  NIMConversationKit.removeMessageListener();
  super.dispose();
}
回到顶部