Flutter智能机器人交互插件en_bot_sdk的使用

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

Flutter智能机器人交互插件en_bot_sdk的使用

en_bot_sdk 插件用于将 ENChatBot 移动 SDK 集成到您的 Flutter 项目中。

开始使用

首先,在您的项目中添加 en_bot_sdk 依赖项。在项目的 pubspec.yaml 文件中添加以下内容:

dependencies:
  en_bot_sdk: ^1.1.7

然后运行以下命令来获取该依赖项:

$ flutter pub get

接下来,在您的 Dart 代码中导入 en_bot_sdk 包:

import 'package:en_bot_sdk/en_bot_sdk.dart';

使用示例

以下是一个完整的示例,展示如何在 Flutter 应用中使用 en_bot_sdk 插件。

示例代码

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

import 'package:flutter/services.dart';
import 'package:en_bot_sdk/en_bot_sdk.dart';

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

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(home: HomeWidget());
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('ENbotSDK 示例 Flutter 应用'),
      ),
      body: ListView(
        padding: const EdgeInsets.symmetric(horizontal: 30),
        children: [
          const SizedBox(
            height: 200,
          ),
          OutlinedButton(
              onPressed: () async {
                EnBotSdk sdk = EnBotSdk();
                Object? completionObj = await sdk.launchBot(
                  context,
                  "YOUR_BOT_KEY", // 替换为您的机器人密钥
                  "BOT_NAME", // 替换为您的机器人名称
                  "BRANDING_KEY", // 替换为您的品牌密钥
                  "USER_ID", // 替换为用户ID
                  100, // 聊天历史记录限制
                  false, // 是否显示完成按钮
                  EnBotSdk_LanguageDirection.defaultDirection, // 语言方向
                  "fonts/MavenPro.ttf", // 字体文件路径
                  "fonts/SofiaProMedium.ttf", // 子标题字体文件路径
                  "Assets/Images/ic_card_scroller_right_.png", // 图片资源路径
                );
              },
              style: ButtonStyle(
                  foregroundColor: MaterialStateProperty.all(Colors.white),
                  backgroundColor: MaterialStateProperty.all(Colors.lightBlue),
                  shape: MaterialStateProperty.all(RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(10.0)))),
              child: const Text("启动机器人")),
          const SizedBox(
            height: 180,
          )
        ],
      ),
    );
  }
}

Android 配置

Android/App/build.gradle 文件中设置最小 SDK 版本:

defaultConfig {
  ...
  minSdkVersion 21
  ...
}

iOS 配置

  1. 打开 ios/Podfile 文件并添加以下内容:

    platform :ios, '13.0'
    
  2. Podfile 文件末尾添加以下脚本:

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        flutter_additional_ios_build_settings(target)
        target.build_configurations.each do |config|
              config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
              config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
              config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
        end
      end
    end
    

常见问题及解决方法

如果在运行 iOS 时遇到以下错误:

Building Flutter app for iOS - "GeneratedPluginRegistrant.m:12:9: Module 'en_bot_sdk' not found"

更多关于Flutter智能机器人交互插件en_bot_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter智能机器人交互插件en_bot_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用en_bot_sdk(假设这是一个存在的Flutter插件,用于智能机器人交互)的代码示例。请注意,由于en_bot_sdk并非一个实际已知的官方插件,我将提供一个假设性的实现示例,展示如何在一个Flutter项目中集成和使用一个类似的插件。

1. 添加依赖

首先,确保在你的pubspec.yaml文件中添加en_bot_sdk依赖(请注意,这里的依赖名称是假设性的,你需要替换为实际插件的名称):

dependencies:
  flutter:
    sdk: flutter
  en_bot_sdk: ^1.0.0  # 假设版本号

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

2. 导入插件

在你的Dart文件中导入en_bot_sdk

import 'package:en_bot_sdk/en_bot_sdk.dart';

3. 初始化机器人客户端

在你的Flutter应用的适当位置(如MainActivity.dart或某个初始化函数中)初始化机器人客户端:

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

  // 初始化机器人客户端
  final EnBotClient botClient = EnBotClient(
    apiKey: 'YOUR_API_KEY', // 替换为你的API密钥
    endpoint: 'https://your-bot-api-endpoint.com', // 替换为你的机器人API端点
  );

  // 你可以在这里设置一些事件监听器或执行其他初始化操作
  botClient.onTextMessageReceived.listen((message) {
    print('Received text message: ${message.content}');
    // 处理接收到的文本消息
  });
}

4. 使用机器人客户端发送消息

在你的UI组件中,你可以使用机器人客户端来发送消息。例如,在一个按钮点击事件中:

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

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

class _ChatScreenState extends State<ChatScreen> {
  final EnBotClient botClient = EnBotClient(
    apiKey: 'YOUR_API_KEY',
    endpoint: 'https://your-bot-api-endpoint.com',
  );

  void _sendMessage() async {
    try {
      String response = await botClient.sendMessage(
        to: 'BOT_ID_OR_RECIPIENT', // 替换为机器人的ID或接收者ID
        content: 'Hello, Bot!',
      );
      print('Bot response: $response');
    } catch (e) {
      print('Error sending message: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat with Bot'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _sendMessage,
          child: Text('Send Message'),
        ),
      ),
    );
  }
}

5. 处理机器人响应

在前面的初始化代码中,我们已经设置了一个监听器来处理接收到的文本消息。在实际应用中,你可能需要将这些消息显示在UI上,或者根据消息内容执行不同的操作。

注意事项

  • 由于en_bot_sdk是一个假设性的插件,你需要根据实际的插件文档来调整代码。
  • 确保你遵循了插件作者提供的最佳实践和API指南。
  • 处理API密钥和敏感信息时要小心,不要将它们硬编码在客户端代码中,考虑使用环境变量或安全存储机制。
  • 根据你的应用需求,你可能还需要处理其他类型的消息(如图片、视频等),以及错误处理和重试逻辑。

希望这个示例能帮助你理解如何在Flutter项目中集成和使用一个智能机器人交互插件。如果有具体的插件或更详细的需求,请提供更多信息以便给出更准确的指导。

回到顶部