Flutter腾讯云聊天联系人管理插件tencent_cloud_chat_contact的使用

Flutter腾讯云聊天联系人管理插件tencent_cloud_chat_contact的使用

介绍腾讯云聊天UIKit的联系人组件,该组件旨在为您的聊天应用程序提供一个多功能的联系人列表。

联系人组件提供了一个联系人列表,显示所有已添加的联系人,并按其名称的首字母排序。它还支持显示额外的信息,如加入的群组列表、被屏蔽的用户列表、请求添加你为联系人的用户,以及群消息通知。

当与tencent_cloud_chat_message组件结合使用时,联系人组件可以在移动和桌面环境中自动导航到相应的消息聊天页面,只需点击联系人或群组即可。这种无缝集成确保了用户在聊天过程中获得流畅且有组织的体验。

开始使用

导入并声明

首先,在项目中添加tencent_cloud_chat_conversation UI模块。

安装完成后,您需要在<TencentCloudChat.controller.initUIKit>方法的<components>参数中的<usedComponentsRegister>中注册此UI组件。以下是一个示例:

await TencentCloudChat.controller.initUIKit(
  components: TencentCloudChatInitComponentsRelated(
    usedComponentsRegister: [
      TencentCloudChatContactManager.register, /// 添加这一行
      /// ...
    ],
  /// ...
  ),
  /// ...
);

实例化并使用组件

使用联系人组件非常简单。只需实例化一个<TencentCloudChatContact>实例,并将其渲染到所需的页面上。

默认情况下,组件会自动获取并显示所有联系人信息,无需任何额外的参数。

您可以在想要显示联系人列表的页面的<build>方法中使用此实例,包括加入的群组列表、被屏蔽的用户列表、请求添加你为联系人的用户,以及群消息通知。

@override
Widget build(BuildContext context) {
  return const TencentCloudChatContact();
}

通过几行代码,您可以轻松地将联系人组件集成到您的聊天应用程序中,以便用户进行交互。

自定义细节

使用配置

对于简单的基础配置,您可以使用<config>参数。联系人组件的<config>由<TencentCloudChatContactConfig>类提供。

它包括对各种数据类型(如布尔值、整数和自定义参数)的控制选项。

使用构建器

对于更深入的UI定制,您可以使用自定义构建器。联系人组件的构建器由<TencentCloudChatContactBuilders>类提供。

结论

我们希望本文档能为您提供腾讯云聊天UIKit中联系人组件的全面理解。通过利用可用的定制选项和功能,您可以创建一个符合特定需求的定制聊天体验。

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


更多关于Flutter腾讯云聊天联系人管理插件tencent_cloud_chat_contact的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter腾讯云聊天联系人管理插件tencent_cloud_chat_contact的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


tencent_cloud_chat_contact 是腾讯云提供的 Flutter 插件,用于管理腾讯云 IM(即时通讯)的联系人功能。通过该插件,开发者可以方便地在 Flutter 应用中实现添加、删除、查询联系人等操作。

以下是如何在 Flutter 项目中使用 tencent_cloud_chat_contact 插件的详细步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 tencent_cloud_chat_contact 插件的依赖:

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

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

2. 初始化插件

在使用插件之前,需要先初始化腾讯云 IM 的 SDK。这通常在应用的 main.dart 文件中完成。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化腾讯云IM SDK
  await TencentCloudChatContact.initSDK(sdkAppId: 'your_sdk_app_id');

  runApp(MyApp());
}

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

3. 登录腾讯云 IM

在使用联系人管理功能之前,需要先登录腾讯云 IM。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

Future<void> login() async {
  await TencentCloudChatContact.login(
    userId: 'your_user_id',
    userSig: 'your_user_sig',
  );
}

4. 添加联系人

你可以使用 addContact 方法来添加联系人。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

Future<void> addContact() async {
  await TencentCloudChatContact.addContact(
    userId: 'contact_user_id',
    remark: 'Friend',
    addType: AddType.Both,
  );
}

5. 删除联系人

你可以使用 deleteContact 方法来删除联系人。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

Future<void> deleteContact() async {
  await TencentCloudChatContact.deleteContact(
    userId: 'contact_user_id',
    deleteType: DeleteType.Both,
  );
}

6. 查询联系人列表

你可以使用 getContactList 方法来获取联系人列表。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

Future<void> getContactList() async {
  List<ContactInfo> contactList = await TencentCloudChatContact.getContactList();
  for (var contact in contactList) {
    print('Contact ID: ${contact.userId}, Remark: ${contact.remark}');
  }
}

7. 监听联系人事件

你可以监听联系人相关的事件,例如联系人添加、删除等。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

void listenContactEvents() {
  TencentCloudChatContact.onContactAdded.listen((contact) {
    print('New contact added: ${contact.userId}');
  });

  TencentCloudChatContact.onContactDeleted.listen((contact) {
    print('Contact deleted: ${contact.userId}');
  });
}

8. 处理异常

在使用插件时,建议处理可能出现的异常。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

Future<void> safeAddContact() async {
  try {
    await TencentCloudChatContact.addContact(
      userId: 'contact_user_id',
      remark: 'Friend',
      addType: AddType.Both,
    );
  } catch (e) {
    print('Failed to add contact: $e');
  }
}

9. 退出登录

在应用退出时,建议调用 logout 方法退出登录。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

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

10. 销毁 SDK

在应用关闭时,可以调用 destroy 方法来释放资源。

import 'package:tencent_cloud_chat_contact/tencent_cloud_chat_contact.dart';

Future<void> destroySDK() async {
  await TencentCloudChatContact.destroy();
}

完整示例

以下是一个简单的 Flutter 应用示例,演示了如何使用 tencent_cloud_chat_contact 插件进行联系人管理:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await TencentCloudChatContact.initSDK(sdkAppId: 'your_sdk_app_id');
  runApp(MyApp());
}

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

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

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  void initState() {
    super.initState();
    login();
    listenContactEvents();
  }

  Future<void> login() async {
    await TencentCloudChatContact.login(
      userId: 'your_user_id',
      userSig: 'your_user_sig',
    );
  }

  void listenContactEvents() {
    TencentCloudChatContact.onContactAdded.listen((contact) {
      print('New contact added: ${contact.userId}');
    });

    TencentCloudChatContact.onContactDeleted.listen((contact) {
      print('Contact deleted: ${contact.userId}');
    });
  }

  Future<void> addContact() async {
    try {
      await TencentCloudChatContact.addContact(
        userId: 'contact_user_id',
        remark: 'Friend',
        addType: AddType.Both,
      );
    } catch (e) {
      print('Failed to add contact: $e');
    }
  }

  Future<void> deleteContact() async {
    try {
      await TencentCloudChatContact.deleteContact(
        userId: 'contact_user_id',
        deleteType: DeleteType.Both,
      );
    } catch (e) {
      print('Failed to delete contact: $e');
    }
  }

  Future<void> getContactList() async {
    List<ContactInfo> contactList = await TencentCloudChatContact.getContactList();
    for (var contact in contactList) {
      print('Contact ID: ${contact.userId}, Remark: ${contact.remark}');
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Tencent Cloud Chat Contact Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: addContact,
              child: Text('Add Contact'),
            ),
            ElevatedButton(
              onPressed: deleteContact,
              child: Text('Delete Contact'),
            ),
            ElevatedButton(
              onPressed: getContactList,
              child: Text('Get Contact List'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部