Flutter即时通讯插件flutter_superchat的使用

Flutter即时通讯插件flutter_superchat的使用

Flutter Chatting Ui Template.

Chat Template Integration.


通过非常少的代码实现聊天模板的集成。想在你的项目中实现吗?

Steps To Integrate it into your project .


以下是将聊天模板集成到项目的步骤:

// 使用 CustomChatTemplate 构建聊天界面
CustomChatTemplate(
  itemCount: 10, // 消息数量
  itemBuilder: (context, index) {
    // 根据索引返回左或右消息
    return (index % 2 == 0)
        ? LeftMessage(
            text: "Hey this auther is crazy",
          )
        : RightMessage(
            text: "Indeed he is..!",
          );
  },
  onTap: (int index) {
    // 点击消息时触发
    print(index.toString());
  },
)

Types Of Message You can Send .


你可以发送以下类型的聊天消息:

  1. 文本消息(LeftMessageRightMessage
  2. 图片消息(LeftImageRightImage
  3. 视频消息(LeftVideoRightVideo

Constructores CustomChatTemplate


CustomChatTemplate 的构造函数如下:

CustomChatTemplate({
  required this.itemCount, // 消息总数
  this.itemBuilder, // 消息构建器
  this.scrollController, // 滚动控制器
  this.onTap, // 点击回调
  this.onLongTap, // 长按回调
});

LeftMessage 和 RightMessage 使用的构造函数

LeftMessage({
  this.text, // 消息文本
  this.textColor, // 文本颜色
  this.backgroundColor, // 背景颜色
  this.fontSize, // 字体大小
  this.readText, // 已读状态文字
  this.tickImage, // 已读图标
  this.fontName, // 字体名称
});

LeftImage 和 RightImage 使用的构造函数

LeftImage({
  this.backgroundColor, // 背景颜色
  this.fontName, // 字体名称
  this.tickImage, // 已读图标
  this.readText, // 已读状态文字
  this.image, // 图片路径
  this.heroTag, // Hero 动画标签
});

LeftVideo 和 RightVideo 使用的构造函数

LeftVideo({
  this.backgroundColor, // 背景颜色
  this.fontName, // 字体名称
  this.tickImage, // 已读图标
  this.readText, // 已读状态文字
  this.thumbNail, // 视频缩略图
  this.heroTag, // Hero 动画标签
});

Help.


如果你有任何更新或建议,或者希望支持这个项目的改进,请通过以下邮箱联系我:

完整示例代码


以下是完整的示例代码,可以直接运行:

import 'package:flutter/material.dart';
import 'package:super_chat/Pages/OnboardingPage.dart';
import 'package:super_chat/Pages/SplashPage.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false, // 去掉调试标志
      title: 'Flutter Demo', // 应用标题
      theme: ThemeData(
        primarySwatch: Colors.blue, // 主色调
      ),
      home: SplashPage(), // 启动页面
    );
  }
}

更多关于Flutter即时通讯插件flutter_superchat的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter即时通讯插件flutter_superchat的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_superchat 是一个用于在 Flutter 应用中实现即时通讯功能的插件。它提供了简单易用的 API,帮助开发者快速集成聊天功能。以下是如何使用 flutter_superchat 插件的基本步骤:

1. 添加依赖

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

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

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

2. 初始化插件

在你的 Flutter 应用中初始化 flutter_superchat 插件。通常,你可以在 main.dart 文件中进行初始化:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 SuperChat
  await SuperChat.initialize(
    appId: 'YOUR_APP_ID',  // 替换为你的 App ID
    apiKey: 'YOUR_API_KEY',  // 替换为你的 API Key
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter SuperChat Demo',
      home: ChatScreen(),
    );
  }
}

3. 创建聊天界面

使用 SuperChat 提供的组件来创建聊天界面。以下是一个简单的聊天界面示例:

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

class ChatScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat'),
      ),
      body: SuperChat(
        userId: 'USER_ID',  // 当前用户的 ID
        recipientId: 'RECIPIENT_ID',  // 聊天对象的 ID
      ),
    );
  }
}

4. 发送和接收消息

SuperChat 组件会自动处理消息的发送和接收。你只需要提供 userIdrecipientId,插件会自动处理消息的发送和接收。

5. 自定义聊天界面

你可以通过 SuperChat 提供的参数来自定义聊天界面。例如,你可以自定义消息气泡、输入框等。

SuperChat(
  userId: 'USER_ID',
  recipientId: 'RECIPIENT_ID',
  messageBubbleBuilder: (context, message, isMe) {
    return Container(
      padding: EdgeInsets.all(10),
      margin: EdgeInsets.symmetric(vertical: 5, horizontal: 10),
      decoration: BoxDecoration(
        color: isMe ? Colors.blue : Colors.grey[300],
        borderRadius: BorderRadius.circular(10),
      ),
      child: Text(
        message.text,
        style: TextStyle(color: isMe ? Colors.white : Colors.black),
      ),
    );
  },
  inputDecoration: InputDecoration(
    hintText: 'Type a message...',
    border: OutlineInputBorder(
      borderRadius: BorderRadius.circular(20),
    ),
  ),
);

6. 处理消息事件

你可以监听消息事件,例如消息发送成功、消息接收等。

SuperChat(
  userId: 'USER_ID',
  recipientId: 'RECIPIENT_ID',
  onMessageSent: (message) {
    print('Message sent: ${message.text}');
  },
  onMessageReceived: (message) {
    print('Message received: ${message.text}');
  },
);
回到顶部