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

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

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

插件介绍

CometChat Flutter UIKit Shared Package 是两个强大 UI Kit 的基础:CometChat Chat UIKit 和 CometChat Calls UIKit。该包提供的资源和小部件的模块化设计确保了代码的高效重用和应用程序中一致的样式。

前置条件

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

注意事项

此包由 CometChat UI Kits 内部使用。不建议在没有其他必要的 CometChat 依赖项的情况下单独使用此包。

入门指南

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

  1. 注册 CometChat 账户:访问 CometChat Dashboard 创建一个账户。
  2. 创建应用:登录后,创建一个新的应用。创建后,CometChat 将生成一个 Auth Key 和 App ID。请妥善保管这些凭据,稍后会用到。
  3. 了解关键概念:查阅 CometChat 的关键概念文档,以了解其基本组件。
  4. 集成步骤:参考集成步骤文档,将 CometChat 集成到您的 Flutter 应用中。

帮助与支持

如果您在运行项目或集成 UI Kits 时遇到问题,请查阅我们的文档或创建支持工单,或者通过 CometChat Dashboard 获取实时支持。

完整示例 Demo

以下是使用 cometchat_uikit_shared 插件的完整示例代码。请根据您的实际情况替换 appIdauthKeyregion

import 'package:cometchat_uikit_shared/cometchat_uikit_shared.dart';
import 'package:flutter/material.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](/user/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](/user/override)
  State<Home> createState() => _HomeState();
}

class _HomeState extends State<Home> {
  final String appId = "YOUR_APP_ID"; // 替换为您的 App ID
  static const String authKey = "YOUR_AUTH_KEY"; // 替换为您的 Auth Key
  static const String region = "YOUR_REGION"; // 替换为您的 Region 代码

  bool isLoading = true;

  [@override](/user/override)
  void initState() {
    super.initState();
    initializeCometChat();
  }

  initializeCometChat() async {
    // 初始化 CometChat SDK,无需再次初始化
    UIKitSettings uiKitSettings = (UIKitSettingsBuilder()
          ..subscriptionType = CometChatSubscriptionType.allUsers
          ..region = region
          ..autoEstablishSocketConnection = true
          ..appId = appId
          ..authKey = authKey)
        .build();

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

  login() async {
    String userId = "superhero2"; // 替换为实际用户 ID
    await CometChatUIKit.login(userId, onSuccess: (User loggedInUser) {
      debugPrint("Login Successful : $loggedInUser");
      setState(() {
        isLoading = false;
      });
    }, onError: (CometChatException e) {
      debugPrint("Login failed with exception: ${e.message}");
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    if (isLoading) {
      return const Scaffold(
        body: Center(
          child: CircularProgressIndicator(),
        ),
      );
    } else {
      return const Scaffold(
        body: Center(
          child: Text("Login Successful"),
        ),
      );
    }
  }
}

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

1 回复

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


当然,我可以为你提供一个关于如何使用 cometchat_uikit_shared 插件来构建 Flutter 聊天界面 UI 组件的代码示例。cometchat_uikit_shared 插件为开发者提供了丰富的 UI 组件,可以简化聊天应用的开发过程。

以下是一个基本的示例,展示了如何在 Flutter 应用中使用 cometchat_uikit_shared 来构建一个聊天界面。

1. 添加依赖

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

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

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

2. 配置 Cometchat

在你的应用入口文件(通常是 main.dart)中,你需要初始化 Cometchat SDK 并配置 UI Kit。

import 'package:flutter/material.dart';
import 'package:cometchat_pro_sdk/cometchat_pro_sdk.dart';
import 'package:cometchat_uikit_shared/ui_kit_shared.dart';

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

  // 初始化 Cometchat SDK
  await Cometchat.initialize(
    appId: "YOUR_APP_ID",
    region: "YOUR_REGION",
    authKey: "YOUR_AUTH_KEY",
  );

  // 配置 UI Kit
  CometChatUIKitSettings uikitSettings = CometChatUIKitSettings()
    ..theme = CometChatTheme()
      ..bubbleBackground = Colors.white
      ..bubbleTailBackground = Colors.white
      ..textStyle = TextStyle(color: Colors.black)
      ..senderTextStyle = TextStyle(color: Colors.blue)
      ..receiverTextStyle = TextStyle(color: Colors.grey)
      ..timeTextStyle = TextStyle(color: Colors.grey.shade400, fontSize: 10);

  // 将 UI Kit 设置传递给 UI Kit 的全局配置
  CometChatUIKitBuilder.updateSettings(uikitSettings);

  runApp(MyApp());
}

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

3. 创建聊天屏幕

接下来,创建一个 ChatScreen 小部件来显示聊天界面。

import 'package:flutter/material.dart';
import 'package:cometchat_uikit_shared/ui_components/chat_screen/chat_screen.dart';

class ChatScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat Screen'),
      ),
      body: CometChatScreen(
        conversationId: "YOUR_CONVERSATION_ID",  // 替换为你的对话 ID
      ),
    );
  }
}

4. 运行应用

确保你已经替换了 YOUR_APP_ID, YOUR_REGION, YOUR_AUTH_KEY, 和 YOUR_CONVERSATION_ID 为你的实际值,然后运行你的 Flutter 应用。

注意事项

  • cometchat_uikit_shared 插件依赖于 cometchat_pro_sdk,所以你需要确保两者都已经正确安装和配置。
  • 你需要在 Cometchat 控制台中创建一个应用并获取相应的 appId, region, 和 authKey
  • conversationId 是你想要显示的对话的唯一标识符。

这个示例展示了如何使用 cometchat_uikit_shared 插件来快速构建一个基本的聊天界面。你可以根据需要进一步自定义和扩展这个界面。

回到顶部