Flutter腾讯云聊天服务集成插件tencent_cloud_chat_common的使用

Flutter腾讯云聊天服务集成插件tencent_cloud_chat_common的使用

引言

介绍Common Widgets集合,这是腾讯云聊天UIKit的重要组成部分,旨在为您提供一组多功能且可重用的组件。

这些组件被设计为自动适应移动和桌面环境,确保跨平台的一致性和响应式用户界面。

为了简化开发过程并保持整个聊天应用程序的UI一致性,我们已将所有内部常用组件开放供您使用。

通过利用这些预构建的组件,您可以显著减少开发时间和精力,同时在您的应用中保持专业且一致的外观。

集成所需的插件

以下是集成所需的插件:

对于集成方法,请参考GitHub演示

要集成旧版本的微信样式UI,请集成tencent_cloud_chat_uikit,您可以在GitHub演示中找到相关信息。

使用示例

以下是一些如何在您的应用中使用这些常用组件的例子:

  • TencentCloudChatAvatar: 这是一个用于显示用户或群组头像的组件。
  • TencentCloudChatOperationBar: 这是一个可配置的操作栏组件,可以根据您的应用需求进行自定义。

还有许多其他组件可供您探索并集成到您的聊天应用中。

桌面专用组件

除了常用组件外,我们还提供了一组桌面专用组件。这些组件专为桌面交互而设计,提供了更符合桌面环境的用户体验。例如:

  • TencentCloudChatDesktopPopup.showColumnMenu: 这是一个垂直菜单组件,通常用于上下文菜单。
  • TencentCloudChatDesktopPopup.showSecondaryConfirmDialog: 这是一个二次确认对话框组件,当您需要用户确认删除消息等操作时使用。
  • TencentCloudChatDesktopPopup.showPopupWindow: 这个组件展示一个可移动的模态窗口。
  • TencentCloudChatDesktopPopup.showMedia: 这是一个全屏媒体预览组件,适用于图片、视频等。
  • TencentCloudChatDragArea: 这个组件为桌面应用提供拖放区域。

这些只是腾讯云聊天UIKit中可用组件的一部分。欢迎您探索这些和其他组件以创建真正吸引人且用户友好的聊天应用。

如果您有任何问题或需要更多信息,请随时联系我们。


完整示例Demo

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('腾讯云聊天服务集成')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              // 显示用户或群组头像
              TencentCloudChatAvatar(
                userId: "user1",
                size: Size(100, 100),
              ),
              SizedBox(height: 20),
              // 自定义操作栏
              TencentCloudChatOperationBar(
                items: [
                  OperationBarItem(icon: Icons.message, label: "发送消息"),
                  OperationBarItem(icon: Icons.call, label: "拨打电话"),
                ],
                onPressed: (index) {
                  print("点击了第 $index 个操作项");
                },
              ),
              SizedBox(height: 20),
              // 显示模态窗口
              ElevatedButton(
                onPressed: () {
                  TencentCloudChatDesktopPopup.showPopupWindow(
                    context: context,
                    title: "提示",
                    content: Text("这是一个模态窗口"),
                    actions: [
                      PopupAction(label: "取消", onPressed: () => Navigator.pop(context)),
                      PopupAction(label: "确定", onPressed: () => Navigator.pop(context)),
                    ],
                  );
                },
                child: Text("显示模态窗口"),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

代码解释

  1. 导入必要的包

    import 'package:flutter/material.dart';
    import 'package:tencent_cloud_chat_common/tencent_cloud_chat_common.dart';
    
  2. 创建主应用

    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(title: Text('腾讯云聊天服务集成')),
            body: Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  // 显示用户或群组头像
                  TencentCloudChatAvatar(
                    userId: "user1",
                    size: Size(100, 100),
                  ),
                  SizedBox(height: 20),
                  // 自定义操作栏
                  TencentCloudChatOperationBar(
                    items: [
                      OperationBarItem(icon: Icons.message, label: "发送消息"),
                      OperationBarItem(icon: Icons.call, label: "拨打电话"),
                    ],
                    onPressed: (index) {
                      print("点击了第 $index 个操作项");
                    },
                  ),
                  SizedBox(height: 20),
                  // 显示模态窗口
                  ElevatedButton(
                    onPressed: () {
                      TencentCloudChatDesktopPopup.showPopupWindow(
                        context: context,
                        title: "提示",
                        content: Text("这是一个模态窗口"),
                        actions: [
                          PopupAction(label: "取消", onPressed: () => Navigator.pop(context)),
                          PopupAction(label: "确定", onPressed: () => Navigator.pop(context)),
                        ],
                      );
                    },
                    child: Text("显示模态窗口"),
                  ),
                ],
              ),
            ),
          ),
        );
      }
    }
    

更多关于Flutter腾讯云聊天服务集成插件tencent_cloud_chat_common的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter腾讯云聊天服务集成插件tencent_cloud_chat_common的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


tencent_cloud_chat_common 是腾讯云提供的 Flutter 插件,用于集成腾讯云的即时通讯(IM)服务。通过这个插件,开发者可以轻松地在 Flutter 应用中实现聊天功能。以下是使用 tencent_cloud_chat_common 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  tencent_cloud_chat_common: ^1.0.0  # 请使用最新版本

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

2. 初始化腾讯云 IM SDK

在你的 Flutter 应用中初始化腾讯云 IM SDK。通常,你可以在 main.dart 或应用启动时进行初始化。

import 'package:tencent_cloud_chat_common/tencent_cloud_chat_common.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化腾讯云 IM SDK
  await TencentCloudChatCommon.init(
    sdkAppId: 'your_sdk_app_id',  // 你的 SDK App ID
    logLevel: LogLevel.VERBOSE,   // 日志级别
  );

  runApp(MyApp());
}

3. 登录腾讯云 IM

在使用聊天功能之前,用户需要先登录腾讯云 IM。你可以使用用户的 userIduserSig 进行登录。

import 'package:tencent_cloud_chat_common/tencent_cloud_chat_common.dart';

Future<void> login(String userId, String userSig) async {
  await TencentCloudChatCommon.login(
    userId: userId,
    userSig: userSig,
  );
}

4. 监听消息

你可以通过监听器来接收新消息。以下是一个简单的消息监听器示例:

import 'package:tencent_cloud_chat_common/tencent_cloud_chat_common.dart';

class ChatListener extends TencentCloudChatListener {
  @override
  void onNewMessage(List<V2TimMessage> messages) {
    for (var message in messages) {
      print('New message: ${message.textElem?.text}');
    }
  }
}

void addListener() {
  TencentCloudChatCommon.addListener(ChatListener());
}

5. 发送消息

你可以使用 sendTextMessage 方法来发送文本消息:

import 'package:tencent_cloud_chat_common/tencent_cloud_chat_common.dart';

Future<void> sendMessage(String userId, String text) async {
  await TencentCloudChatCommon.sendTextMessage(
    userId: userId,
    text: text,
  );
}

6. 登出

当用户不再需要使用聊天功能时,可以调用 logout 方法进行登出:

import 'package:tencent_cloud_chat_common/tencent_cloud_chat_common.dart';

Future<void> logout() async {
  await TencentCloudChatCommon.logout();
}

7. 其他功能

tencent_cloud_chat_common 插件还提供了许多其他功能,如群组管理、好友管理、消息撤回等。你可以参考腾讯云 IM 的官方文档来了解更多细节。

8. 处理错误

在使用过程中,可能会遇到各种错误。你可以通过 TencentCloudChatError 来处理这些错误:

try {
  await TencentCloudChatCommon.login(
    userId: userId,
    userSig: userSig,
  );
} on TencentCloudChatError catch (e) {
  print('Error: ${e.message}');
}

9. 集成 UI 组件

腾讯云 IM SDK 还提供了一些预制的 UI 组件,如聊天界面、联系人列表等。你可以直接使用这些组件来快速搭建聊天应用。

import 'package:tencent_cloud_chat_common/tencent_cloud_chat_common.dart';

class ChatPage extends StatelessWidget {
  final String userId;

  ChatPage({required this.userId});

  @override
  Widget build(BuildContext context) {
    return TencentCloudChatConversationWidget(
      userId: userId,
    );
  }
}

10. 调试与日志

在开发过程中,你可以通过设置 logLevel 来控制日志的输出级别,以便更好地调试应用。

await TencentCloudChatCommon.init(
  sdkAppId: 'your_sdk_app_id',
  logLevel: LogLevel.DEBUG,  // 设置为 DEBUG 级别以输出更多日志
);
回到顶部