Flutter Zendesk支持插件zendesk_helper_plus的使用

Flutter Zendesk支持插件zendesk_helper_plus的使用

zendesk plugin

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


开始使用

Android 设置

AndroidManifest.xml文件中必须设置兼容的主题。

示例的Android设置遵循文章中描述的模式。


iOS 设置

在目标的“构建阶段”中创建一个新的“运行脚本阶段”。

此脚本应为项目“构建阶段”中的最后一步。将以下代码片段粘贴到脚本文本字段中:

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

部署目标 >= 10.0


使用方法

初始化插件

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, isDarkTheme: true);

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

完整示例代码

以下是一个完整的示例代码,展示了如何使用zendesk_helper_plus插件。

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

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

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late final TextEditingController _tokenController;

  [@override](/user/override)
  void initState() {
    super.initState();
    _tokenController = TextEditingController();
    initZendesk();
  }

  [@override](/user/override)
  void dispose() {
    _tokenController.dispose();
    super.dispose();
  }

  Future<void> initZendesk() async {
    if (!mounted) {
      return;
    }
    const _accountKey = String.fromEnvironment(
      'ACCOUNT_KEY',
      defaultValue: 'C4NkxGBoxHSTMW3Gm3gznZ6AxIqYXWkZ',
    );
    const _appId = String.fromEnvironment(
      'APP_ID',
      defaultValue: 'ff92947363297c35ad960e50edc747e7a19dbbd7235a852e',
    );

    await Zendesk.initialize(_accountKey, _appId);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Zendesk Helper Plus - Plugin Example'),
        ),
        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,
                ),
              ),
              Container(
                margin: const EdgeInsets.all(16),
                child: TextField(
                  controller: _tokenController,
                  decoration: const InputDecoration(
                    hintText: 'Enter your token',
                    border: OutlineInputBorder(),
                  ),
                ),
              ),
              MaterialButton(
                onPressed: openChat,
                color: Colors.blueGrey,
                textColor: Colors.white,
                child: const Text('Open Chat'),
              )
            ],
          ),
        ),
      ),
    );
  }

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

更多关于Flutter Zendesk支持插件zendesk_helper_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


zendesk_helper_plus 是一个用于在 Flutter 应用中集成 Zendesk 支持的插件。它允许你轻松地将 Zendesk 的客户支持功能集成到你的 Flutter 应用中,包括帮助中心、工单提交、聊天等功能。

以下是如何在 Flutter 项目中使用 zendesk_helper_plus 插件的步骤:

1. 添加依赖

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

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

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

2. 初始化 Zendesk

在你的 Flutter 应用中,你需要在应用启动时初始化 Zendesk。通常,你可以在 main.dart 文件中进行初始化:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Zendesk
  await ZendeskHelperPlus.init(
    accountKey: 'YOUR_ZENDESK_ACCOUNT_KEY',
    appId: 'YOUR_ZENDESK_APP_ID',
    clientId: 'YOUR_ZENDESK_CLIENT_ID',
    url: 'YOUR_ZENDESK_URL',
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Zendesk Demo',
      home: HomeScreen(),
    );
  }
}

3. 使用 Zendesk 功能

在初始化之后,你可以在应用中使用 Zendesk 提供的各种功能。以下是一些常见的用例:

打开帮助中心

ZendeskHelperPlus.showHelpCenter();

提交工单

ZendeskHelperPlus.submitTicket(
  subject: 'Issue with the app',
  description: 'I am facing an issue with the app...',
  tags: ['bug', 'urgent'],
);

打开聊天

ZendeskHelperPlus.startChat();

4. 处理用户身份

如果你需要识别用户,可以在初始化后设置用户信息:

ZendeskHelperPlus.setUserIdentity(
  name: 'John Doe',
  email: 'john.doe@example.com',
);

5. 处理回调

你可以监听 Zendesk 的事件,例如聊天结束或工单提交成功:

ZendeskHelperPlus.setCallbackListener((event) {
  print('Zendesk Event: $event');
});

6. 处理权限

在 Android 和 iOS 上,你可能需要处理一些权限问题。确保在 AndroidManifest.xmlInfo.plist 中添加必要的权限和配置。

7. 调试和测试

在开发过程中,你可以使用 Zendesk 的沙盒环境进行测试。确保在初始化时使用正确的沙盒配置。

8. 发布应用

在发布应用之前,确保你已经正确配置了 Zendesk 的生产环境,并且所有功能都经过充分测试。

示例代码

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

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await ZendeskHelperPlus.init(
    accountKey: 'YOUR_ZENDESK_ACCOUNT_KEY',
    appId: 'YOUR_ZENDESK_APP_ID',
    clientId: 'YOUR_ZENDESK_CLIENT_ID',
    url: 'YOUR_ZENDESK_URL',
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Zendesk Demo',
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Zendesk Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () {
                ZendeskHelperPlus.showHelpCenter();
              },
              child: Text('Open Help Center'),
            ),
            ElevatedButton(
              onPressed: () {
                ZendeskHelperPlus.submitTicket(
                  subject: 'Issue with the app',
                  description: 'I am facing an issue with the app...',
                  tags: ['bug', 'urgent'],
                );
              },
              child: Text('Submit Ticket'),
            ),
            ElevatedButton(
              onPressed: () {
                ZendeskHelperPlus.startChat();
              },
              child: Text('Start Chat'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!