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

1 回复

更多关于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});
}

注意事项

  1. 替换Token和ID:在上面的代码中,your_jivo_chat_token_hereyour_website_id_here需要替换为你实际的JivoChat token和网站ID。

  2. Visitor信息:你可以根据需要自定义访客的初始信息,如姓名和电子邮件。

  3. 权限处理:确保你的应用有适当的网络权限来与JivoChat服务器通信。对于Android,你可能需要在AndroidManifest.xml中添加INTERNET权限。

  4. 错误处理:在实际应用中,你应该添加错误处理逻辑,以处理初始化失败或聊天窗口显示失败的情况。

  5. 自定义UI:JivoChat的聊天窗口默认会自动嵌入到你的应用中,但你也可以根据JivoChat的文档进一步自定义其外观和行为。

这个示例展示了如何使用jivosdk_plugin在Flutter应用中集成JivoChat的在线客服功能。根据你的具体需求,你可能需要进一步调整代码。

回到顶部