Flutter即时通讯聊天插件nim_chatkit的使用

Flutter即时通讯聊天插件nim_chatkit的使用

kit.nim_chatkit

nim_chatkit 提供聊天消息业务层实现。

声明依赖

如果要添加 ChatKit 的依赖项,您必须将 pub 库添加到项目中。

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

dependencies:
  nim_chatkit: ^1.0.0

接下来,我们将通过一个完整的示例来展示如何使用 nim_chatkit 插件进行即时通讯聊天。

完整示例Demo

首先,确保在项目的 pubspec.yaml 文件中已经添加了 nim_chatkit 依赖:

dependencies:
  flutter:
    sdk: flutter
  nim_chatkit: ^1.0.0

然后,运行 flutter pub get 来获取依赖项。

接下来,我们创建一个简单的聊天界面。首先,在 main.dart 中初始化并配置 nim_chatkit

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: ChatScreen(),
    );
  }
}

接着,定义 ChatScreen 类来展示聊天界面:

class ChatScreen extends StatefulWidget {
  [@override](/user/override)
  _ChatScreenState createState() => _ChatScreenState();
}

class _ChatScreenState extends State<ChatScreen> {
  final _chatController = ChatController();

  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化聊天控制器
    _chatController.init();
  }

  [@override](/user/override)
  void dispose() {
    // 清理资源
    _chatController.dispose();
    super.dispose();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('即时通讯聊天'),
      ),
      body: Column(
        children: [
          Expanded(
            child: ChatView(
              controller: _chatController,
              onMessageSent: (message) {
                // 消息发送成功回调
                print('消息发送成功: $message');
              },
            ),
          ),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Row(
              children: [
                Expanded(
                  child: TextField(
                    decoration: InputDecoration(hintText: '输入消息...'),
                    onSubmitted: (text) {
                      // 发送消息
                      _chatController.sendMessage(text);
                    },
                  ),
                ),
                IconButton(
                  icon: Icon(Icons.send),
                  onPressed: () {
                    // 发送消息
                    _chatController.sendMessage(_chatController.text);
                  },
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

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

1 回复

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


nim_chatkit 是一个基于网易云信 SDK 的 Flutter 插件,用于实现即时通讯(IM)功能。它提供了丰富的 API,帮助开发者快速集成聊天功能,包括文字、图片、语音、视频等消息的发送与接收。

以下是使用 nim_chatkit 的基本步骤和示例代码:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 nim_chatkit 依赖:

dependencies:
  flutter:
    sdk: flutter
  nim_chatkit: ^latest_version

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

2. 初始化 SDK

在使用 nim_chatkit 之前,需要先初始化 SDK。通常可以在 main.dart 中进行初始化:

import 'package:nim_chatkit/nim_chatkit.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化网易云信 SDK
  await NimChatKit.init(
    appKey: 'your_app_key',
    account: 'your_account',
    token: 'your_token',
  );
  
  runApp(MyApp());
}

3. 登录与登出

登录和登出是 IM 功能的基础,可以通过以下代码实现:

// 登录
await NimChatKit.login();

// 登出
await NimChatKit.logout();

4. 发送消息

nim_chatkit 支持发送多种类型的消息。以下是一个发送文本消息的示例:

import 'package:nim_chatkit/nim_chatkit.dart';

Future<void> sendTextMessage(String sessionId, String text) async {
  await NimChatKit.sendMessage(
    sessionId: sessionId,
    messageType: MessageType.text,
    messageContent: text,
  );
}

5. 接收消息

可以通过监听消息回调来接收消息:

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

6. 创建会话

可以通过以下代码创建会话:

Future<void> createSession(String sessionId, SessionType sessionType) async {
  await NimChatKit.createSession(
    sessionId: sessionId,
    sessionType: sessionType,
  );
}

7. 获取会话列表

可以通过以下代码获取会话列表:

Future<List<Session>> getSessions() async {
  return await NimChatKit.getSessions();
}

8. 删除会话

可以通过以下代码删除会话:

Future<void> deleteSession(String sessionId) async {
  await NimChatKit.deleteSession(sessionId);
}

9. 消息历史记录

可以通过以下代码获取消息历史记录:

Future<List<Message>> getMessageHistory(String sessionId, int limit) async {
  return await NimChatKit.getMessageHistory(sessionId, limit);
}

10. 其他功能

nim_chatkit 还支持许多其他功能,如发送图片、语音、视频消息,以及群组聊天、系统通知等。具体可以参考官方文档或插件的 API 文档。

11. 处理错误

在使用过程中,可能会遇到各种错误。可以通过监听错误回调来处理:

NimChatKit.onError.listen((error) {
  // 处理错误
  print('Error: $error');
});

12. 释放资源

在应用退出时,记得释放资源:

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