Flutter聊天界面UI插件sendbird_uikit的使用

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

Flutter聊天界面UI插件sendbird_uikit的使用

Sendbird UIKit for Flutter 是一组预构建的UI组件,使您能够轻松地在应用程序中创建一个包含所有基本消息功能的内置聊天。我们的开发套件包括浅色和深色主题、字体、颜色等。您可以自定义这些组件以创建独特的交互式消息界面。

Sendbird UIKit 目前仅支持群聊。请按照以下指南从头开始发送消息。

需求

Sendbird UIKit for Flutter 的最低要求为:

  • Dart 3.3.0 或更高版本
  • Flutter 3.19.0 或更高版本

注意:为了支持苹果隐私声明,将 ios/Resources/PrivacyInfo.xcprivacy 文件的内容添加到项目的 PrivacyInfo.xcprivacy 中。

开始使用

您可以通过安装 Sendbird UIKit 来开始在应用程序中构建消息体验。

注意:最快的方法是从 样本仓库 使用示例应用。

步骤1:从仪表板创建Sendbird应用

您需要在 Sendbird仪表盘 创建一个Sendbird应用。初始化Sendbird UIKit时需要您的应用ID。

注意:每个Sendbird应用可以与单个客户端应用集成。在同一应用内,用户可以在各种平台(移动设备或网页)之间相互交流。

步骤2:创建项目

创建一个新的Flutter项目。

步骤3:安装UIKit

pubspec.yaml 文件中添加以下依赖项和字体。

dependencies:
  sendbird_uikit: ^1.0.1
  sendbird_chat_sdk: ^4.2.30

flutter:
  fonts:
    - family: SendbirdIcons
      fonts:
        - asset: packages/sendbird_uikit/fonts/SendbirdIcons.ttf

在项目目录中运行 flutter pub get 命令。

步骤4:初始化UIKit

在使用UIKit之前,必须调用 SendbirdUIKit.init()SendbirdUIKit.connect()SendbirdUIKit.provider() 方法。

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

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

  await SendbirdUIKit.init(appId: 'YOUR_APP_ID');
  await SendbirdUIKit.connect('YOUR_USER_ID');

  runApp(const MyApp());
}
步骤5:应用UIKit屏幕

您可以轻松添加 SBUGroupChannelListScreenSBUGroupChannelCreateScreenSBUGroupChannelScreen。主要可定制类是 SBUGroupChannelListScreenSBUGroupChannelScreen

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      builder: (context, child) {
        return SendbirdUIKit.provider(
          child: Navigator(
            onGenerateRoute: (settings) => MaterialPageRoute(
              builder: (context) => child!,
            ),
          ),
        );
      },
      home: const HomeScreen(), // 分离的屏幕部件
    );
  }
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: SBUGroupChannelListScreen(
          onCreateButtonClicked: () {
            moveToGroupChannelCreateScreen(context);
          },
          onListItemClicked: (channel) {
            moveToGroupChannelScreen(context, channel.channelUrl);
          },
        ),
      ),
    );
  }

  void moveToGroupChannelCreateScreen(BuildContext context) {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => Scaffold(
          body: SafeArea(
            child: SBUGroupChannelCreateScreen(
              onChannelCreated: (channel) {
                moveToGroupChannelScreen(context, channel.channelUrl);
              },
            ),
          ),
        ),
      ),
    );
  }

  void moveToGroupChannelScreen(BuildContext context, String channelUrl) {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => Scaffold(
          body: SafeArea(
            child: SBUGroupChannelScreen(
              channelUrl: channelUrl,
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是一个使用 sendbird_uikit 插件来构建 Flutter 聊天界面 UI 的示例代码。这个示例将展示如何初始化 SendBird UIKit,并集成到一个基本的 Flutter 应用中。

首先,确保你已经在 pubspec.yaml 文件中添加了 sendbird_uikit 依赖:

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

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

接下来,你需要设置 SendBird 的应用 ID。这通常是在 SendBird 控制台中获取的。确保你已经注册并创建了一个 SendBird 应用。

以下是一个完整的 Flutter 应用示例,展示了如何使用 sendbird_uikit

import 'package:flutter/material.dart';
import 'package:sendbird_sdk/sendbird_sdk.dart';
import 'package:sendbird_uikit/sendbird_uikit.dart';

void main() {
  // 初始化 SendBird SDK
  SendBird.init(appId: 'YOUR_SENDBIRD_APP_ID');  // 替换为你的 SendBird 应用 ID

  // 创建并运行 Flutter 应用
  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> {
  late SendBirdChatUiKit _chatUiKit;

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

    // 配置 SendBirdChatUiKit
    SendBirdChatUiKit.Builder()
      ..userId = 'USER_ID_1'  // 当前用户的 ID
      ..channelUrl = 'CHANNEL_URL'  // 要加入的聊天频道的 URL
      ..onUserUpdateListener = (SendBirdUser user) {
        // 用户信息更新回调
      }
      ..onMessageReceivedHandler = (SendBirdMessage message) async {
        // 收到消息回调
      }
      ..build()
      .then((SendBirdChatUiKit chatUiKit) {
        setState(() {
          _chatUiKit = chatUiKit;
        });
      });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat Screen'),
      ),
      body: _chatUiKit != null
          ? Container(
              color: Colors.white,
              child: _chatUiKit!.chatViewController!.view,
            )
          : Center(
              child: CircularProgressIndicator(),
            ),
    );
  }

  @override
  void dispose() {
    _chatUiKit?.dispose();
    super.dispose();
  }
}

在这个示例中,我们做了以下几件事:

  1. 初始化 SendBird SDK,并传入你的应用 ID。
  2. 创建一个基本的 Flutter 应用,包含一个 ChatScreen 小部件。
  3. ChatScreen 中,使用 SendBirdChatUiKit.Builder 来配置 UIKit,并传入当前用户的 ID 和要加入的聊天频道的 URL。
  4. 当 UIKit 构建完成后,将其视图嵌入到 Flutter 的布局中。
  5. dispose 方法中,释放 UIKit 资源。

请注意,这只是一个基本示例。在实际应用中,你可能需要处理更多的配置和事件,比如用户认证、频道管理、消息发送和接收等。建议查阅 SendBird UIKit 的官方文档 以获取更多详细信息和高级用法。

回到顶部