Flutter聊天界面UI组件插件cometchat_chat_uikit的使用

发布于 1周前 作者 yuanlaile 来自 Flutter

Flutter聊天界面UI组件插件cometchat_chat_uikit的使用

简介

CometChat Chat UIKit 提供了一套预构建的用户界面组件,开发者可以快速将其集成到现有的或新的应用中,以实现可靠且功能齐全的聊天体验。

前提条件

  • Flutter >= 3.10.5
  • Dart >= 3.0.5
  • Android Studio 2022.2
  • Android 5.0, API 21 及以上
  • Xcode 15
  • iOS 12.0

入门指南

要设置和使用 CometChat 的 Flutter UIKit,并利用 CometChat 实现聊天和通话功能,你需要按照以下步骤操作:

  1. 注册并创建应用

    • 访问 CometChat Dashboard 注册一个账户。
    • 登录后,创建一个新的应用。创建后,CometChat 会生成一个 Auth KeyApp ID。请妥善保管这些凭证,因为后续需要使用它们。
  2. 了解基本概念

    • 查看 关键概念 以理解 CometChat 的基本组件。
  3. 集成到 Flutter 应用

    • 参考 集成步骤 文档,将 CometChat 集成到你的 Flutter 应用中。

示例代码

以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 CometChat Chat UIKit

example/example.dart

import 'package:flutter/material.dart';
import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  /// This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      localizationsDelegates: [
        Translations.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate
      ],
      supportedLocales: [
        Locale('en', ''),
        Locale('hi', ''),
        Locale('ar', ''),
        Locale('de', ''),
        Locale('es', ''),
        Locale('fr', ''),
        Locale('ms', ''),
        Locale('pt', ''),
        Locale('ru', ''),
        Locale('sv', ''),
        Locale('zh', ''),
      ],
      title: 'Flutter Demo',
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  const Home({Key? key}) : super(key: key);

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  final String appId = "YOUR_APP_ID"; // Replace with your app id
  static const String authKey = "YOUR_AUTH_KEY"; // Replace with your auth key
  static const String region = "YOUR_REGION"; // Replace with your Region code

  bool isLoading = true;

  @override
  void initState() {
    super.initState();

    initializeCometChat();
  }

  initializeCometChat() async {
    // CometChat SDK should be initialized at the start of application. No need to initialize it again
    UIKitSettings uiKitSettings = (UIKitSettingsBuilder()
          ..subscriptionType = CometChatSubscriptionType.allUsers
          ..region = region
          ..autoEstablishSocketConnection = true
          ..appId = appId
          ..authKey = authKey
          ..extensions = CometChatUIKitChatExtensions.getDefaultExtensions()
          ..aiFeature = CometChatUIKitChatAIFeatures.getDefaultAiFeatures())
        .build();

    CometChatUIKit.init(
        uiKitSettings: uiKitSettings,
        onSuccess: (String successMessage) {
          login();
        },
        onError: (CometChatException excep) {
          debugPrint("Initialization failed: ${excep.message}");
        });
  }

  login() async {
    String userId = "superhero1";
    await CometChatUIKit.login(userId, onSuccess: (User loggedInUser) {
      debugPrint("Login Successful : $loggedInUser");
      Navigator.push(
          context,
          MaterialPageRoute(
              builder: (context) => const CometChatConversationsWithMessages()));
    }, onError: (CometChatException e) {
      debugPrint("Login failed with exception: ${e.message}");
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: isLoading ? const CircularProgressIndicator() : const Text("Logged In"),
      ),
    );
  }
}

说明

  1. 初始化 CometChat

    • initializeCometChat 方法中,使用 UIKitSettingsBuilder 构建 UIKitSettings 对象,并调用 CometChatUIKit.init 方法初始化 CometChat
  2. 登录用户

    • login 方法中,调用 CometChatUIKit.login 方法登录用户。登录成功后,导航到聊天界面。
  3. 显示加载指示器

    • build 方法中,根据 isLoading 的值显示加载指示器或登录成功的提示。

帮助和支持

如果在运行项目或集成 UI Kit 时遇到问题,请参考 文档 或创建 支持工单,或通过 CometChat Dashboard 获取实时支持。


更多关于Flutter聊天界面UI组件插件cometchat_chat_uikit的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter聊天界面UI组件插件cometchat_chat_uikit的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何使用 cometchat_chat_uikit 插件来创建一个基本的 Flutter 聊天界面 UI 组件的示例代码。这个示例将展示如何集成和使用该插件来显示聊天消息列表。

首先,确保你的 Flutter 项目已经配置好并添加了 cometchat_chat_uikit 依赖。你可以在你的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  cometchat_chat_uikit: ^最新版本号  # 请替换为最新的版本号

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

接下来,你需要在你的 Flutter 应用中初始化 CometChat SDK 并配置 CometChatUIKit。下面是一个基本的示例代码:

import 'package:flutter/material.dart';
import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
import 'package:cometchat_pro_sdk/cometchat_pro_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 CometChat SDK
  await CometChat.configure(
    Config(
      apiKey: "YOUR_API_KEY",
      region: "YOUR_REGION", // e.g., "us"
      autoSubscribeToChats: true,
    ),
  );

  // 登录用户(示例中假设用户已经注册)
  await CometChat.login(
    User(uid: "USER_ID", authKey: "AUTH_KEY"),
  );

  runApp(MyApp());
}

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

class ChatScreen extends StatefulWidget {
  @override
  _ChatScreenState createState() => _ChatScreenState();
}

class _ChatScreenState extends State<ChatScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat Screen'),
      ),
      body: CometChatUIKit(
        groupId: "GROUP_ID", // 替换为实际的群组ID
        listener: (CometChatMessage message) {
          // 处理新消息的逻辑,如果需要的话
          print("New message received: ${message.text}");
        },
      ),
    );
  }
}

在这个示例中:

  1. 初始化 CometChat SDK:在 main 函数中,我们配置了 CometChat SDK 并登录了一个用户。你需要替换 YOUR_API_KEYYOUR_REGIONUSER_IDAUTH_KEY 为你自己的值。

  2. 创建聊天界面:我们创建了一个简单的 ChatScreen 组件,它使用 CometChatUIKit 小部件来显示指定群组(GROUP_ID)的聊天消息。你需要替换 GROUP_ID 为实际的群组ID。

  3. 监听新消息:我们提供了一个监听器来处理新接收的消息。在这个示例中,我们只是简单地打印了新消息的内容,但你可以根据需要实现更多的逻辑。

请确保你已经正确配置了 CometChat 的后端服务,并且你的用户已经成功注册和登录。此外,你可能还需要根据你的应用需求进一步自定义和扩展这个基本的聊天界面。

希望这个示例代码能帮助你快速上手 cometchat_chat_uikit 插件的使用!

回到顶部