Flutter客户服务插件zendesk_plugin的使用

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

Flutter客户服务插件zendesk_plugin的使用

zendesk plugin

一个用于Zendesk Chat SDK v2的Flutter插件。

Getting Started

Android Setup

你必须在AndroidManifest.xml文件中设置一个兼容的主题。例如:

<application
    android:theme="@style/Theme.AppCompat.Light.NoActionBar">

iOS Setup

在你的目标的“Build Phases”中创建一个新的“Run Scripts Phase”。

这个脚本应该是项目“Build Phases”的最后一步。将以下代码片段粘贴到脚本文本字段中:

"${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/ChatSDK.framework/strip-frameworks.sh"

Deployment Target >= 10.0

Usage

初始化插件

await Zendesk.initialize('<account key>', '<application id>');

设置访客信息(可选)

await Zendesk.setVisitorInfo(
    name: 'Text Client',
    email: 'test+client@example.com',
    phoneNumber: '0000000000',
    department: 'Support',
);

添加和移除标签

await Zendesk.addTags(['tag1', 'tag2', 'tag3']);
await Zendesk.removeTags(['tag1', 'tag3']);

// 结果是只有'tag2'会出现在聊天中

打开聊天客户端

Zendesk.startChat(primaryColor: Colors.red);

// 注意:primaryColor仅配置iOS。Android的AppBar颜色由应用的主题控制

示例代码

以下是一个完整的示例代码,展示了如何在Flutter应用中使用zendesk_plugin

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

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

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

  Future<void> initZendesk() async {
    if (!mounted) {
      return;
    }
    await Zendesk.initialize('<your_account_key>', '<your_application_id>');
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Zendesk Chat Plugin'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              const Padding(
                padding: EdgeInsets.all(16),
                child: Text(
                  'Initialize example with proper\nkeys in main.dart',
                  textAlign: TextAlign.center,
                ),
              ),
              MaterialButton(
                onPressed: openChat,
                color: Colors.blueGrey,
                textColor: Colors.white,
                child: const Text('Open Chat'),
              )
            ],
          ),
        ),
      ),
    );
  }

  Future<void> openChat() async {
    try {
      await Zendesk.setVisitorInfo(
          name: 'Text Client',
          email: 'test+client@example.com',
          phoneNumber: '0000000000',
          department: 'Support');
      await Zendesk.startChat(primaryColor: Colors.red);
    } catch (ex) {
      print('An error occurred: $ex');
    }
  }
}

说明

  1. 初始化插件:在initState方法中调用Zendesk.initialize方法,传入你的账户密钥和应用ID。
  2. 设置访客信息:在openChat方法中调用Zendesk.setVisitorInfo方法,设置访客的姓名、电子邮件、电话号码和部门。
  3. 打开聊天客户端:在openChat方法中调用Zendesk.startChat方法,设置聊天窗口的主题颜色。

通过以上步骤,你可以在Flutter应用中集成并使用Zendesk Chat插件。希望这个示例对你有所帮助!


更多关于Flutter客户服务插件zendesk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter客户服务插件zendesk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成和使用zendesk_plugin(假设该插件存在且功能符合你的需求)的一个示例。需要注意的是,实际使用中插件的名称和功能可能有所不同,这里以一个假设的zendesk_plugin为例进行说明。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加zendesk_plugin的依赖。确保使用最新的版本号。

dependencies:
  flutter:
    sdk: flutter
  zendesk_plugin: ^x.y.z  # 替换为实际版本号

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

2. 初始化插件

在你的main.dart文件或者任何合适的初始化位置,初始化zendesk_plugin

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化Zendesk插件
    ZendeskPlugin.instance.init(
      sdkKey: 'your_zendesk_sdk_key',  // 替换为你的Zendesk SDK Key
      clientId: 'your_client_id',      // 如果有需要的话,替换为你的Client ID
      // 其他初始化参数...
    );

    return MaterialApp(
      title: 'Flutter Zendesk Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomeScreen(),
    );
  }
}

3. 使用插件功能

在你的应用中使用zendesk_plugin提供的各种功能,例如显示帮助中心、提交工单等。

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Zendesk Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Click the button to open Zendesk Help Center',
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 打开Zendesk帮助中心
                ZendeskPlugin.instance.showHelpCenter();
              },
              child: Text('Open Help Center'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 提交一个新的工单(示例)
                var request = {
                  'subject': 'Test Ticket',
                  'description': 'This is a test ticket from Flutter app.',
                  // 其他工单字段...
                };
                ZendeskPlugin.instance.createTicket(request).then((result) {
                  // 处理结果
                  print('Ticket created: $result');
                }).catchError((error) {
                  // 处理错误
                  print('Error creating ticket: $error');
                });
              },
              child: Text('Submit Ticket'),
            ),
          ],
        ),
      ),
    );
  }
}

注意事项

  1. 权限处理:某些功能可能需要特定的权限,如网络访问权限。确保在AndroidManifest.xmlInfo.plist中声明了必要的权限。
  2. 错误处理:在实际应用中,添加更多的错误处理和用户反馈,以提高应用的健壮性和用户体验。
  3. 配置参数:根据Zendesk插件的文档,调整初始化参数和功能调用的参数,以满足你的具体需求。

由于实际的zendesk_plugin可能存在差异,请参考该插件的官方文档和API参考进行具体实现。

回到顶部