Flutter实时聊天功能插件livechat_sdk_flutter的使用

Flutter实时聊天功能插件livechat_sdk_flutter的使用

livechat_sdk_flutter 是一个用于实现 Flutter 应用中实时聊天功能的插件。它支持 Android 和 iOS 平台,并通过插件集成在线客服模块。

支持的平台

  • Android
  • iOS

如何使用

导入插件

pubspec.yaml 文件中添加以下依赖项:

dependencies:
  livechat_sdk_flutter: ^0.0.1

然后在 Dart 文件中导入插件:

import 'package:livechat_sdk_flutter/livechat_sdk_flutter.dart';

可以在页面的合适位置(如 initState 方法内)实例化 FlutterTosKit 类:

final _flutterTosKitPlugin = FlutterTosKit();

初始化插件

调用 initPlugin 方法初始化插件,传入必要的配置参数:

_flutterTosKitPlugin.initPlugin({
  "enterpriseId": "8000001", // 企业号
  "accessId": "8758096679544ff189d4a9457747f109", // 访问标识
  "accessSecret": "72EBF29CB4614F7AB404EEC07BFF0B1B", // 访问秘钥
  "apiUrl": "https://xxx.com", // 平台 apiUrl
  "onlineUrl": "https://xxx.com", // 平台 onlineUrl
  "debug": true, // 是否开启调试模式
});

参数说明

参数名称 类型 必填 说明
accessId String 访问标识
accessSecret String 访问秘钥
enterpriseId String 企业号
apiUrl String 平台 apiUrl
onlineUrl String 平台 onlineUrl
debug boolean 是否开启调试模式
advanceParams Map 自定义可配参数

进入聊天会话

调用 enterSession 方法进入聊天会话,传入用户信息和其他参数:

_flutterTosKitPlugin.enterSession({
  "nickname": 'uniapp体验用户名', // 用户昵称
  "headUrl": 'https://img2.baidu.com/it/u=1229468480,2938819374&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500', // 用户头像
  "mobile": '135xxxx9206', // 手机号
  "advanceParams": { // 自定义参数
    "enableMqtt": false,
  },
  "title": "在线客服aaa", // 页面标题
  "cardInfo": { // 商品卡片消息
    "subTitle": "华为P40麒麟990 5G SoC芯片 5000万超感知徕卡三摄 30倍数字变焦",
    "description": "这是商品描述,啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦",
    "price": "¥ 100",
    "time": "2022年3月1日",
    "img": "https://img1.baidu.com/it/u=1963848283,2056721126&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500",
    "status": "已到货",
    "extraInfo": "[{\"name\":\"订单号\",\"value\":\"13049234802304\"},{\"name\":\"服务地区\",\"value\":\"北京市\"},{\"name\":\"服务\",\"value\":\"满意\"},{\"name\":\"产品类型\",\"value\":\"电子产品\"}]"
  }
});

参数说明

参数名称 类型 必填 说明
visitorId String 用户 App 的 userID
nickname String 昵称
headUrl String 头像地址
mobile String 手机号
advanceParams Map 自定义参数
title String 页面标题
cardInfo Map 商品卡片消息

商品卡片消息参数说明

参数名称 类型 必填 说明
subTitle String 标题
description String 描述
price String 价格
time String 时间
img String 商品图片
status String 送货状态
extraInfo String 附加信息(JSON 字符串)

示例代码

以下是一个完整的示例代码,展示如何在 Flutter 中使用 livechat_sdk_flutter 插件:

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:livechat_sdk_flutter/livechat_sdk_flutter.dart';

void main() {
  if (Platform.isAndroid) {
    // 设置 Android 头部的状态栏透明,字体颜色为黑色
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
        statusBarColor: Colors.transparent,
        statusBarIconBrightness: Brightness.dark));
  }
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final _flutterTosKitPlugin = FlutterTosKit();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: Text('LiveChat SDK 示例')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 初始化插件
              await _flutterTosKitPlugin.initPlugin({
                "enterpriseId": "8000001",
                "accessId": "8758096679544ff189d4a9457747f109",
                "accessSecret": "72EBF29CB4614F7AB404EEC07BFF0B1B",
                "apiUrl": "https://xxx.com",
                "onlineUrl": "https://xxx.com",
                "debug": true,
              });

              // 进入聊天会话
              await _flutterTosKitPlugin.enterSession({
                "nickname": 'uniapp体验用户名',
                "headUrl": 'https://img2.baidu.com/it/u=1229468480,2938819374&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500',
                "mobile": '135xxxx9206',
                "advanceParams": {"enableMqtt": false},
                "title": "在线客服aaa",
                "cardInfo": {
                  "subTitle": "华为P40麒麟990 5G SoC芯片",
                  "description": "这是商品描述,啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦",
                  "price": "¥ 100",
                  "time": "2022年3月1日",
                  "img": "https://img1.baidu.com/it/u=1963848283,2056721126&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=500",
                  "status": "已到货",
                  "extraInfo": "[{\"name\":\"订单号\",\"value\":\"13049234802304\"},{\"name\":\"服务地区\",\"value\":\"北京市\"},{\"name\":\"服务\",\"value\":\"满意\"},{\"name\":\"产品类型\",\"value\":\"电子产品\"}]"
                }
              });
            },
            child: Text('开始聊天'),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter实时聊天功能插件livechat_sdk_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


livechat_sdk_flutter 是一个用于在 Flutter 应用中集成实时聊天功能的插件。它允许你轻松地将实时聊天功能集成到你的 Flutter 应用中,并与 LiveChat 服务进行交互。

以下是使用 livechat_sdk_flutter 插件的基本步骤:

1. 添加依赖

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

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

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

2. 初始化插件

在应用的 main.dart 文件中初始化 livechat_sdk_flutter 插件:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 LiveChat SDK
  await LiveChatSDK.initialize(
    licenseId: 'YOUR_LICENSE_ID',  // 你的 LiveChat 许可证 ID
    groupId: 'YOUR_GROUP_ID',      // 你的 LiveChat 组 ID(可选)
  );

  runApp(MyApp());
}

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

3. 启动聊天界面

在你的应用中使用 LiveChatSDK.startChat 方法来启动聊天界面:

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

class ChatScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('LiveChat'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 启动聊天界面
            await LiveChatSDK.startChat(
              context: context,
              visitorName: 'John Doe',  // 访客名称
              visitorEmail: 'john.doe@example.com',  // 访客邮箱
            );
          },
          child: Text('Start Chat'),
        ),
      ),
    );
  }
}

4. 处理聊天事件

你可以监听聊天事件,例如收到新消息、聊天结束等:

LiveChatSDK.onMessageReceived.listen((message) {
  print('New message received: ${message.text}');
});

LiveChatSDK.onChatEnded.listen((_) {
  print('Chat ended');
});

5. 自定义聊天界面

你可以通过 LiveChatSDK.customizeChat 方法来自定义聊天界面的外观和行为:

await LiveChatSDK.customizeChat(
  chatBackgroundColor: Colors.white,
  bubbleColor: Colors.blue,
  bubbleTextColor: Colors.white,
  hideAvatar: false,
);

6. 处理用户会话

你可以获取当前的用户会话信息,并在需要时结束会话:

final session = await LiveChatSDK.getCurrentSession();
if (session != null) {
  print('Current session ID: ${session.sessionId}');
  await LiveChatSDK.endChat();
}

7. 处理错误

在集成过程中,可能会遇到各种错误。你可以通过 try-catch 块来捕获和处理这些错误:

try {
  await LiveChatSDK.startChat(
    context: context,
    visitorName: 'John Doe',
    visitorEmail: 'john.doe@example.com',
  );
} catch (e) {
  print('Error starting chat: $e');
}
回到顶部