Flutter集成Zendesk客服插件zendesk_flutter_combination的使用
Flutter集成Zendesk客服插件zendesk_flutter_combination的使用
Zendesk Flutter支持
- Native UI
- 聊天历史
- 答案机器人
- 工单列表
如何使用?
初始化
@Override
void initState() {
super.initState();
ZendeskFlutterCombination.initialize(
appId: "{zendeskApplicationId}",
clientId: "{zendeskMobileClientId}",
nameIdentifier: "{customerNameIdentifieer}",
urlString: "{yourCompanyzendeskDomain}"
);
}
只需调用一次
initialize()
方法
显示帮助中心
ZendeskFlutterCombination.showHelpCenter();
您可以在
onTap()
中使用
显示工单/请求列表
ZendeskFlutterCombination.showRequestList();
您可以在
onTap()
中使用
显示新请求/工单屏幕
ZendeskFlutterCombination.showRequest();
您可以在
onTap()
中使用
示例代码
以下是一个完整的示例代码,展示如何在Flutter应用中集成Zendesk客服插件。
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:zendesk_flutter_combination/zendesk_flutter_combination.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = '未知';
final _zendeskFlutterCombinationPlugin = ZendeskFlutterCombination();
final List<String> channelMessages = [];
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
ZendeskFlutterCombination.setMessageHandler((type, arguments) {
setState(() {
channelMessages.add("$type - args=$arguments");
});
});
}
// 平台消息是异步的,所以我们初始化在一个异步方法中。
Future<void> initPlatformState() async {
String platformVersion;
// 平台消息可能会失败,所以我们使用一个try/catch来捕获PlatformException。
// 我们也处理了消息可能返回null的情况。
try {
platformVersion =
await _zendeskFlutterCombinationPlugin.getPlatformVersion() ?? '未知平台版本';
} on PlatformException {
platformVersion = '获取平台版本失败。';
}
// 如果小部件从树中被移除,而异步平台消息正在飞行中,我们希望丢弃回复而不是调用setState来更新我们的非存在的外观。
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件示例应用'),
),
body: Center(
child: Column(children: [
Text('运行在: $_platformVersion\n'),
ElevatedButton(
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6), // -- 半径
),
elevation: 0,
primary: Colors.pink,
minimumSize: const Size.fromHeight(
40), // fromHeight 使用double.infinity作为宽度和40作为高度
),
onPressed: () {
ZendeskFlutterCombination.initialize(
appId: "{zendeskApplicationId}",
clientId: "{zendeskMobileClientId}",
nameIdentifier: "{customerNameIdentifieer}",
urlString: "{yourCompanyzendeskDomain}"
);
},
child: Text(
'初始化',
),
),
SizedBox(height: 20,),
ElevatedButton(
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6), // -- 半径
),
elevation: 0,
primary: Colors.pink,
minimumSize: const Size.fromHeight(
40), // fromHeight 使用double.infinity作为宽度和40作为高度
),
onPressed: () {
ZendeskFlutterCombination.showHelpCenter();
},
child: Text(
'帮助中心',
),
),
SizedBox(height: 20,),
ElevatedButton(
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6), // -- 半径
),
elevation: 0,
primary: Colors.pink,
minimumSize: const Size.fromHeight(
40), // fromHeight 使用double.infinity作为宽度和40作为高度
),
onPressed: () {
ZendeskFlutterCombination.showRequestList();
},
child: Text(
'请求列表',
),
),
SizedBox(height: 20,),
ElevatedButton(
style: ElevatedButton.styleFrom(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6), // -- 半径
),
elevation: 0,
primary: Colors.pink,
minimumSize: const Size.fromHeight(
40), // fromHeight 使用double.infinity作为宽度和40作为高度
),
onPressed: () {
ZendeskFlutterCombination.showRequest();
},
child: Text(
'请求',
),
),
]),
),
),
);
}
}
更多关于Flutter集成Zendesk客服插件zendesk_flutter_combination的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter集成Zendesk客服插件zendesk_flutter_combination的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成并使用zendesk_flutter_combination
插件的示例代码。请注意,这个插件可能是一个假设的插件名称,因为实际的Zendesk Flutter插件通常有不同的命名(例如zendesk_flutter_sdk
)。不过,为了符合你的要求,我将以zendesk_flutter_combination
作为示例插件名称进行说明。如果实际插件名称不同,请相应地调整代码。
首先,确保你已经在pubspec.yaml
文件中添加了zendesk_flutter_combination
插件的依赖:
dependencies:
flutter:
sdk: flutter
zendesk_flutter_combination: ^latest_version # 替换为实际插件的最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,在你的Flutter项目中初始化并使用Zendesk插件。以下是一个简单的示例,展示了如何初始化Zendesk并启动聊天窗口:
import 'package:flutter/material.dart';
import 'package:zendesk_flutter_combination/zendesk_flutter_combination.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Zendesk Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final Zendesk _zendesk = Zendesk();
@override
void initState() {
super.initState();
// 初始化Zendesk,替换以下参数为你的实际Zendesk配置
_initZendesk();
}
void _initZendesk() async {
try {
await _zendesk.init(
accountId: 'your_account_id', // 替换为你的Zendesk账户ID
appId: 'your_app_id', // 替换为你的Zendesk应用ID
clientKey: 'your_client_key', // 替换为你的Zendesk客户端密钥
);
print('Zendesk initialized successfully');
} catch (e) {
print('Failed to initialize Zendesk: $e');
}
}
void _startChat() async {
try {
await _zendesk.startChat();
} catch (e) {
print('Failed to start chat: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Zendesk Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: _startChat,
child: Text('Start Chat'),
),
),
);
}
}
在这个示例中,我们首先导入了zendesk_flutter_combination
包,并在MyApp
应用的home
属性中定义了MyHomePage
。在MyHomePage
中,我们创建了一个Zendesk
实例,并在initState
方法中初始化了Zendesk,传入你的Zendesk配置参数。然后,我们定义了一个_startChat
方法来启动聊天窗口。
请注意,上述代码中的accountId
、appId
和clientKey
需要替换为你实际的Zendesk配置。此外,如果实际的Zendesk Flutter插件API与上述示例有所不同,你需要参考该插件的官方文档进行相应的调整。
由于zendesk_flutter_combination
可能是一个假设的插件名称,如果找不到这个插件,你可能需要查找并使用实际的Zendesk Flutter插件,如zendesk_flutter_sdk
或其他类似的插件,并参考其官方文档进行集成。