Flutter在线客服插件jivosdk_plugin的使用
Flutter在线客服插件jivosdk_plugin的使用
Jivo Mobile SDK 允许你在你的 Flutter 移动应用程序中嵌入聊天功能以接收客户请求。集成只需几分钟,因为聊天界面和消息流已经实现——你只需要在项目中添加几行代码。
当前版本特性
- 客户与代理之间的聊天
- 双向文件传输
- 聊天历史记录
- 消息状态指示器(已发送、已送达、已读)
- PUSH 通知
更新日志
查看 更新日志 以了解包的最新更改。
示例应用
此存储库包含一个完全功能的 示例应用。
添加依赖
将以下依赖项添加到你的包的 pubspec.yaml
文件中:
dependencies:
jivosdk_plugin: ^1.0.0
然后运行 flutter packages get
。
快速开始
import 'package:jivosdk_plugin/bridge.dart';
// 配置授权用户
Jivo.session.setContactInfo(name: "Homer", email: "h.simpson@springfield.com", phone: "Simpson", brief: "Family guy");
Jivo.session.setup(channelId: "YOUR_CHANNEL_ID", userToken: "USER_JWT_TOKEN");
// 或者配置匿名用户
Jivo.session.setup(channelId: "YOUR_CHANNEL_ID", userToken: "");
// 显示聊天窗口
Jivo.display.present();
配置
平台:iOS
请在初始运行之前在 ios/Podfile
的开头添加以下行:
source 'https://github.com/cocoapods/specs'
source 'https://github.com/jivochat/cocoapods-repo'
请确保在 AppDelegate
类中调用一些相应的 JivoSDK 方法来处理 APNS,例如以下示例:
import UserNotifications
import Flutter
import JivoSDK
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UNUserNotificationCenter.current().delegate = self
GeneratedPluginRegistrant.register(with: self)
Jivo.notifications.handleLaunch(options: launchOptions)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Jivo.notifications.setPushToken(data: deviceToken)
}
override func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
Jivo.notifications.setPushToken(data: nil)
}
override func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if let result = Jivo.notifications.didReceiveRemoteNotification(userInfo: userInfo) {
completionHandler(result)
} else {
completionHandler(.noData)
}
}
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
if let options = Jivo.notifications.willPresent(notification: notification, preferableOptions: .banner) {
completionHandler(options)
} else {
completionHandler([])
}
}
override func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
Jivo.notifications.didReceive(response: response)
completionHandler()
}
}
平台:Android
在你的根级(项目级)Gradle 文件(<project>/build.gradle
)中添加 Google 服务插件作为依赖项:
buildscript {
...
repositories {
google()
mavenCentral()
maven { url 'https://www.jitpack.io' }
}
dependencies {
...
classpath 'com.google.gms:google-services:4.3.14'
}
}
allprojects {
repositories {
...
google()
mavenCentral()
maven { url 'https://www.jitpack.io' }
}
}
在你的模块(应用级)Gradle 文件(通常是 <project>/<app-module>/build.gradle
)中添加依赖项并启用数据绑定:
plugins {
...
id "dev.flutter.flutter-gradle-plugin"
id 'com.google.gms.google-services'
}
android {
...
buildFeatures {
dataBinding = true
}
...
}
dependencies {
...
api platform('com.google.firebase:firebase-bom:32.7.2')
api 'com.google.firebase:firebase-messaging'
}
更多关于Flutter在线客服插件jivosdk_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter在线客服插件jivosdk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter应用中使用jivosdk_plugin
插件来实现在线客服功能的示例代码。请注意,你需要先确保已经在你的Flutter项目中添加了jivosdk_plugin
依赖。
首先,在pubspec.yaml
文件中添加依赖:
dependencies:
flutter:
sdk: flutter
jivosdk_plugin: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,在你的Flutter项目中配置和使用jivosdk_plugin
。以下是一个基本的示例,展示如何初始化JivoChat并在你的应用中显示聊天窗口。
main.dart
import 'package:flutter/material.dart';
import 'package:jivosdk_plugin/jivosdk_plugin.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
// 初始化JivoChat SDK
_initJivoChat();
}
void _initJivoChat() async {
// 替换为你的JivoChat网站的token
final String jivoChatToken = 'your_jivo_chat_token_here';
// 初始化JivoChat SDK
await JivoSdkPlugin.init(
token: jivoChatToken,
websiteId: 'your_website_id_here', // 如果需要
visitor: JivoVisitor(
name: 'Default Visitor',
email: 'default.visitor@example.com',
),
);
// 显示聊天窗口
JivoSdkPlugin.showChatWidget();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter JivoChat Example'),
),
body: Center(
child: Text('Chat widget will be shown here once initialized.'),
),
),
);
}
}
class JivoVisitor {
final String name;
final String email;
JivoVisitor({required this.name, required this.email});
}
注意事项
-
替换Token和ID:在上面的代码中,
your_jivo_chat_token_here
和your_website_id_here
需要替换为你实际的JivoChat token和网站ID。 -
Visitor信息:你可以根据需要自定义访客的初始信息,如姓名和电子邮件。
-
权限处理:确保你的应用有适当的网络权限来与JivoChat服务器通信。对于Android,你可能需要在
AndroidManifest.xml
中添加INTERNET权限。 -
错误处理:在实际应用中,你应该添加错误处理逻辑,以处理初始化失败或聊天窗口显示失败的情况。
-
自定义UI:JivoChat的聊天窗口默认会自动嵌入到你的应用中,但你也可以根据JivoChat的文档进一步自定义其外观和行为。
这个示例展示了如何使用jivosdk_plugin
在Flutter应用中集成JivoChat的在线客服功能。根据你的具体需求,你可能需要进一步调整代码。