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');
}
}
}
更多关于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.xml
和 Info.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'),
),
],
),
),
);
}
}