Flutter在线客服插件flutter_sobot的使用

Flutter在线客服插件flutter_sobot的使用

概述

智齿客服全面支持桌面网站、移动网站、微信、微博、APP五种接入方式,只要10分钟就可以将智齿客服嵌入所有营销路径,各渠道用户反馈汇总至智齿客服平台统一轻松管理,企业客服效率提升50%以上。

zhiChi-SobotKit是一款实现手机用户与企业保持随时随刻沟通的客服工具。本插件封装了智齿客服的相关接口。使用此插件之前需要先注册智齿获取appkey

一、使用插件前准备

注册方法如下:

使用管理员账号登录智齿管理后台,在 智齿管理后台 > 设置 > APP > 添加App 创建应用后可得到 appkey 用于配置,安卓和iOS可以共用一个,也可单独配置。

注意:本插件在ios上支持最低版本为8.0, 在android 智齿最低版本为4.2

二、插件方法介绍

1、启动智齿客服
startZhiChi

2、启动客户服务中心
openSobotHelpCenter

3、获取未读消息数
getUnReadMessage

4、注销会话
closeSobotChat

5、启动消息中心(电商版本专用)
openSobotHelpMallCenter

6、新消息事件和超链接拦截监听
事件监听

7、参数说明整体参数说明

8、补充说明常见问题

三、添加依赖和导包

flutter_sobot: ^(填写版本号)

// 导包
import "package:flutter_sobot/sobotsdk.dart";

// 实例化
final zhiChiSobot = SobotApi();

四、启动智齿客服

示例代码如下

Future<void> startZhichi() async {
  var params = {
    'app_key': 'your appkey',
    // 其他参数...
  };
  final result = await zhiChiSobot.startZhichi(params);
  handleJson(result);
}

相关参数,请参考参数说明

五、启动客户服务中心

示例代码如下

Future<void> openSobotHelpCenter() async {
  var params = {
    'app_key': 'your appkey',
    // 其他参数...
  };
  final result = await zhiChiSobot.openSobotHelpCenter(params);
  print(result);
}

相关参数,请参考参数说明

六、获取未读消息数

示例代码如下

Future getUnReadMessage() async {
  var params = {'partnerid': '123456789'};
  var result = await zhiChiSobot.getUnReadMessage(params);
  print(result);
}

七、注销会话

示例代码如下

Future<void> closeSobotChat() async {
  final result = await zhiChiSobot.closeSobotChat();
  print(result);
}

八、电商版消息中心

示例代码如下

Future<void> openSobotHelpMallCenter() async {
  var params = {'partnerid': '123456789'};
  final result = await zhiChiSobot.openSobotHelpMallCenter(params);
  print(result);
}

九、事件监听

class ZCSobotWidgeState extends State<ZCSobotWidge> {
  String newmesaage = "";
  final zhiChiSobot = SobotApi();
  var sobotMethodChannel = MethodChannel('flutter_sobot');

  @override
  void initState() {
    super.initState();
    // 安卓
    sobotMethodChannel.setMethodCallHandler((call) {
      setState(() {
        if (call.method == 'flutterSobotHandle') {
          print(call.arguments);
          if (call.arguments['type'] == '1') {
            // 点击返回按钮回掉
          } else if (call.arguments['type'] == '4') {
            // 未读消息回掉
            final unreadNumber = call.arguments['value'];
            print(unreadNumber);
          } else if (call.arguments['type'] == '2') {
            var linkStr = call.arguments['value'];
            // 超链url
            print('url===' + linkStr);
          }
        }
      });
    });

    // iOS
    static const EventChannel eventChannel = EventChannel('sobot');
    eventChannel.receiveBroadcastStream().listen((event) {
      print('zhichi> on Event....1 $event');
    }, onError: (error) {
      print('zhichi> on Error.... $error');
      print(error);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Sobot Demo'),
      ),
      body: Container(
        padding: EdgeInsets.all(32.0),
        child: Center(
          child: Column(
            children: <Widget>[
              MaterialButton(
                color: Colors.blue,
                child: Text('启动智齿'),
                onPressed: () {
                  startZhichi();
                },
              ),
              MaterialButton(
                color: Colors.blue,
                child: Text('启动客户服务中心'),
                onPressed: () {
                  openSobotHelpCenter();
                },
              ),
              MaterialButton(
                color: Colors.blue,
                child: Text('关闭智齿'),
                onPressed: () {
                  closeSobotChat();
                },
              ),
              MaterialButton(
                color: Colors.blue,
                child: Text('电商版消息中心'),
                onPressed: () {
                  openSobotHelpMallCenter();
                },
              ),
              MaterialButton(
                color: Colors.blue,
                child: Text('获取未读消息'),
                onPressed: () {
                  getUnReadMessage();
                },
              ),
            ],
          ),
        ),
      ),
    );
  }

  Future<void> startZhichi() async {
    var params = {
      "app_key": "1c1da2c0aad047d7ba1d14ecd18ae4f6",
      // 其他参数...
    };
    final result = await zhiChiSobot.startZhichi(params);
    handleJson(result);
  }

  Future<void> openSobotHelpCenter() async {
    var params = {
      'app_key': '1c1da2c0aad047d7ba1d14ecd18ae4f6',
      // 其他参数...
    };
    final result = await zhiChiSobot.openSobotHelpCenter(params);
    handleJson(result);
  }

  Future<void> openSobotHelpMallCenter() async {
    var params = {
      'app_key': '1c1da2c0aad047d7ba1d14ecd18ae4f6',
      // 其他参数...
    };
    final result = await zhiChiSobot.openSobotHelpMallCenter(params);
    handleJson(result);
  }

  Future<void> closeSobotChat() async {
    var params = {'isClosePush': true};
    await zhiChiSobot.closeSobotChat(params);
  }

  Future<void> getUnReadMessage() async {
    var params = {'partnerid': '123456789'};
    final result = await zhiChiSobot.getUnReadMessage(params);
    handleJson(result);
  }

  Future<void> handleJson(json) async {
    print(json);
    setState(() {
      newmesaage = json['type'];
    });
  }
}

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: ZCSobotWidge(),
    );
  }
}

十、参数说明

适用于iOS和android系统(特殊说明除外)

api_host

app_key

  • 类型:字符串
  • 默认值:无
  • 描述:注册智齿后,从智齿后台获得的app_key,不可为空

customer_code

  • 类型:字符串
  • 默认值:无
  • 描述:智齿电商版本商户唯一标识,如果为获取商户app_key需要指定此参数。(普通版本无效)。

platformUnionId

  • 类型:字符串
  • 默认值:无
  • 描述:智齿电商版唯一标识,注册智齿付费以后由智齿提供。(普通版本无效)。

platform_key

  • 类型:字符串
  • 默认值:无
  • 描述:智齿电商版加密key,注册智齿以后由智齿提供。(普通版本无效)。

partnerid

  • 类型:字符串
  • 默认值:无
  • 描述:用户标识,可为空(建议填写,对数据统计更准确,不填默认是设备唯一标识)

show_permission_tips_pop(仅安卓使用)

  • 类型:布尔
  • 默认值:false
  • 描述:权限提示框开关,true:开启 false:关闭

choose_adminid

  • 类型:字符串
  • 默认值:无
  • 描述:指定客服ID,可为空

tran_flag

  • 类型:字符串
  • 默认值:0
  • 描述:定指客服时转接类型,0 可转入其他客服 1 必须转入指定客服(注意:如果当前指定的客服不在线,选择之后不能在转接到其他客服),可为空

robotid

  • 类型:字符串
  • 默认值:0
  • 描述:对接机器人ID (可以转接到对应的机器人),可为空

faqId

  • 类型:整数
  • 默认值:0
  • 描述:指定常见问题引导,可为空

user_nick

  • 类型:字符串
  • 默认值:无
  • 描述:用户昵称,可为空(填写后,客服后台会同步到备注),可为空

user_name

  • 类型:字符串
  • 默认值:无
  • 描述:用户真实姓名,可为空

user_tels

  • 类型:字符串
  • 默认值:无
  • 描述:用户电话,可为空

user_emails

  • 类型:字符串
  • 默认值:无
  • 描述:用户邮箱,可为空

isVip

  • 类型:字符串
  • 默认值:指定客户是否为vip,0:普通 1:vip
  • 描述:同PC端 设置-在线客服分配-排队优先设置-VIP客户排队优先 开启传1 默认不设置开启后 指定客户发起咨询时,如果出现排队,系统将优先接入。

vip_level

  • 类型:字符串
  • 默认值:无
  • 描述:指定客户的vip等级,传入等级,设置-自定义字段-VIP等级(注意设置编码,不是显示值),可为空

user_label

  • 类型:字符串
  • 默认值:无
  • 描述:用户标签,多个字段用逗号分隔,可为空

qq

  • 类型:字符串
  • 默认值:无
  • 描述:用户qq,可为空

face

  • 类型:字符串
  • 默认值:无
  • 描述:用户头像,可为空

remark

  • 类型:字符串
  • 默认值:无
  • 描述:用户备注,可为空

params

  • 类型:json字典
  • 默认值:无
  • 描述:自定义用户资料,自动同步到客户工作台,可为空

transferaction

  • 类型:json数组
  • 默认值:无
  • 描述:可为空,转人工 指定技能组 溢出,[{“actionType”:“to_group”,“optionId”:“3”,“deciId”:“162bb6bb038d4a9ea018241a30694064”,“spillId”:“7”},{“actionType”:“to_group”,“optionId”:“4”,“deciId”:“a457f4dfe92842f8a11d1616c1c58dc1”}]

customer_fields

  • 类型:json字典
  • 默认值:无
  • 描述:固定KEY的自定义字段,所有的KEY均在工作台设置后生效(设置->自定义字段->用户信息字段),可为空

multi_params

  • 类型:json字典
  • 默认值:无
  • 描述:多轮会话 自定义字段,可为空

visit_url

  • 类型:字符串
  • 默认值:无
  • 描述:接入的来源URL,可为空

visit_title

  • 类型:字符串
  • 默认值:无
  • 描述:接入的来源说明,可为空

service_mode

  • 类型:Int
  • 默认值:0
  • 描述:自定义接入模式,1只有机器人,2.仅人工 3.智能客服-机器人优先 4智能客服-人工客服优先,可为空

groupid

  • 类型:字符串
  • 默认值:无
  • 描述:技能组编号,根据传递的值转接到对应的技能组,可为空选

group_name

  • 类型:字符串
  • 默认值:无
  • 描述:技能组名称,可选

flow_type

  • 类型:Int
  • 默认值:0
  • 描述:跨公司转接人工(仅电商版本可用),默认0不开启 1-全部溢出,2-忙碌时溢出,3-不在线时溢出,可为空

flow_companyid

  • 类型:字符串
  • 默认值:无
  • 描述:转接到的公司ID,可选

flow_groupid

  • 类型:字符串
  • 默认值:无
  • 描述:转接到的公司技能组,可选

title_type

  • 类型:字符串
  • 默认值:0
  • 描述:ios 和安卓实现方式不一样。 (ios)聊天页顶部标题 的自定义方式 0.默认 1.企业名称 2.自定义字段,3.仅显示文字、4显示头像和文字,可选; (android)聊天页顶部标题和头像 的自定义方式 0.默认 1.企业名称 2.自定义字段,可选

custom_title

  • 类型:字符串
  • 默认值:无
  • 描述:聊天页顶部标题 自定义字段 (如果传入,优先使用该字段),可选

is_show_custom_title (仅适用安卓)

  • 类型:BOOL
  • 默认值:false
  • 描述:是否显示聊天页顶部标题, true 显示,false 隐藏, 可选

title_url_type (仅适用安卓)

  • 类型:字符串
  • 默认值:0
  • 描述:聊天页顶部头像的自定义方式 聊天页顶部标题和头像 的自定义方式 0.默认 1.企业头像 2.自定义头像,可选

custom_title_url

  • 类型:字符串
  • 默认值:无
  • 描述:自定义导航图像路径,可选

is_show_custom_title_url (仅适用安卓)

  • 类型:BOOL
  • 默认值:false
  • 描述:是否显示聊天页顶部头像, true 显示,false 隐藏, 可选

scope_time

  • 类型:Int
  • 默认值:0
  • 描述:历史记录时间范围,单位分钟(例:100-表示从现在起前100分钟的会话) 最大支持查询60天,如果不传是查询所有的,可为空

admin_hello_word

  • 类型:字符串
  • 默认值:无
  • 描述:自定义客服欢迎语,默认为空。

robot_hello_word

  • 类型:字符串
  • 默认值:无
  • 描述:自定义机器人欢迎语,默认为空。

user_out_word

  • 类型:字符串
  • 默认值:无
  • 描述:自定义用户超时下线提示语,默认为空。

user_tip_word

  • 类型:字符串
  • 默认值:无
  • 描述:自定义用户超时提示语,默认为空。

admin_tip_word

  • 类型:字符串
  • 默认值:无
  • 描述:自定义客服超时提示语,默认为空。

admin_offline_title

  • 类型:字符串
  • 默认值:无
  • 描述:自定义客服不在线的说辞,默认为空。

notifition_icon_url(仅适用ios)

  • 类型:字符串
  • 默认值:无
  • 描述:通告的icon 的URL,可选

is_enable_hot_guide (仅适用ios)

  • 类型:BOOL
  • 默认值:NO
  • 描述:是否允许请求热点引导问题接口,可选

margs:

  • 类型:json 字典
  • 默认值:nil
  • 描述:热点引导问题的扩展字段,可选

good_msg_type

  • 类型:int
  • 默认值:0
  • 描述:自定发送信息类型,0 不发 1 给机器人发送 2 给人工发送 3 机器人和人工都发送,可选

content

  • 类型:字符串
  • 默认值:无
  • 描述:自动发送信息内容,可选

queue_first

  • 类型:int
  • 默认值:0
  • 描述:指定客户优先 同PC端 设置-在线客服分配-排队优先设置-指定客户优先 开启传1 默认不设置 开启后 指定客户发起咨询时,如果出现排队,系统将优先接入。

default_language(仅适用iOS)

  • 类型:字符串
  • 默认值:en_lproj
  • 描述:默认跟随系统语言,不识别默认为en_lproj,可选ar_lproj,zh-Hans_lproj,zh-Hant_lproj

urlRegular

  • 类型:字符串
  • 默认值:@"((http[s]{0,1}|ftp)://[a-zA-Z0-9.-]+.([a-zA-Z0-9]{1,4})(:\d+)?(/[a-zA-Z0-9.-!@#$%^&+?:_/=<>])?)|(([a-zA-Z0-9]{2,4}).[a-zA-Z0-9.-]+.([a-zA-Z]{2,4})(:\d+)?(/[a-zA-Z0-9.-!@#$%^&+?:_/=<>])?)"
  • 描述:链接地址正则表达式

telRegular

  • 类型:字符串
  • 默认值:@“0+\d{2}-\d{8}|0+\d{2}-\d{7}|0+\d{3}-\d{8}|0+\d{3}-\d{7}|1+[34578]+\d{9}|+\d{2}1+[34578]+\d{9}|400\d{7}|400-\d{3}-\d{4}|\d{11}|\d{10}|\d{8}|\d{7}”
  • 描述:电话号码正则表达式

lineSpacing(仅适用iOS)

  • 类型:Int
  • 默认值:0
  • 描述:调整行间距

guideLineSpacing(仅适用iOS)

  • 类型:Int
  • 默认值:0
  • 描述:调整机器人引导语 行间距

changeBusinessStr(仅适用iOS)

  • 类型:字符串
  • 默认值:无
  • 描述:自定义"换业务"切换机器人按钮文案内容

isShowReturnTips

  • 类型:BOOL
  • 默认值:NO
  • 描述:左上角返回时是否弹出(您是否结束会话?)。默认false,弹出,false不弹

ishidesBottomBarWhenPushed(仅适用iOS)

  • 类型:BOOL
  • 默认值:YES
  • 描述:push后隐藏 BottomBar

showLeaveDetailBackEvaluate

  • 类型:BOOL
  • 默认值:NO
  • 描述:已完成留言详情界面:返回时是否弹出服务评价窗口(只会第一次返回弹,下次返回不会再弹)

isShowPortrait(仅适用iOS)

  • 类型:BOOL
  • 默认值:NO
  • 描述:仅支持竖屏,跟随APP配置

navcBarHidden(仅适用iOS)

  • 类型:BOOL
  • 默认值:NO
  • 描述:SDK 页面中使用自定义的导航栏不在使用系统的导航栏(隐藏),默认 为NO 跟随集成项目

canSendLocation(仅适用iOS)

  • 类型:BOOL
  • 默认值:NO
  • 描述:人工状态,是否可以发送位置

hideMenuSatisfaction

  • 类型:BOOL
  • 默认值:NO
  • 描述:聊天页面底部加号中功能:隐藏评价,默认NO(不隐藏)

hideMenuLeave

  • 类型:BOOL
  • 默认值:NO
  • 描述:聊天页面底部加号中功能:隐藏留言,默认NO(不隐藏)

hideMenuPicture

  • 类型:BOOL
  • 默认值:NO
  • 描述:聊天页面底部加号中功能:隐藏图片,默认NO(不隐藏)

hideMenuCamera

  • 类型:BOOL
  • 默认值:NO
  • 描述:聊天页面底部加号中功能:隐藏拍摄,默认NO(不隐藏)

hideMenuFile

  • 类型:BOOL
  • 默认值:NO
  • 描述:聊天页面底部加号中功能:隐藏文件,默认NO(不隐藏)

hideMenuVedio(仅适用安卓)

  • 类型:BOOL
  • 默认值:false
  • 描述:聊天页面底部加号中功能:隐藏视频,默认false(不隐藏)

isShowEvaluation

  • 类型:BOOL
  • 默认值:NO
  • 描述:导航栏右上角 是否显示 评价按钮 默认不显示

isCloseInquiryForm

  • 类型:BOOL
  • 默认值:NO
  • 描述:是否关闭询前表单(默认为NO,使用系统默认配置)

isShowCloseSatisfaction

  • 类型:BOOL
  • 默认值:NO
  • 描述:针对关闭按钮,单独设置是否显示评价界面,默认不显示

isShowTelIcon(仅适用iOS)

  • 类型:BOOL
  • 默认值:NO
  • 描述:导航栏右上角 是否显示 拨号按钮 默认不显示 注意:和isShowEvaluation 互斥 只能设置一个有效

isShowClose

  • 类型:BOOL
  • 默认值:NO
  • 描述:导航栏左上角 是否显示 关闭按钮 默认不显示,关闭按钮,点击后无法监听后台消息

customTel

  • 类型:字符串
  • 默认值:无
  • 描述:设置电话号码,当导航栏右上角 显示 拨号按钮时 (和isShowTelIcon 一起设置有效)

isCloseAfterEvaluation

  • 类型:BOOL
  • 默认值:NO
  • 描述:评价完人工是否关闭会话,默认为NO。

isUseImagesxcassets(仅适用ios)

  • 类型:BOOL
  • 默认值:NO
  • 描述:是否使用Images

isOpenEvaluation:

  • 类型:BOOL
  • 默认值:NO
  • 描述:返回时是否开启满意度评价 ,默认为NO 未开启

unWordsCount

  • 类型:Int
  • 默认值:0
  • 描述:未知问题或者向导问题出现 几次时,显示转人工按钮

isOpenActiveUser:

  • 类型:BOOL
  • 默认值:NO
  • 描述:是否开启智能转人工,(如输入“转人工”,直接转接人工)

activeKeywords

  • 类型:json字典
  • 默认值:无
  • 描述:智能转人工关键字,关键字作为key{@“转人工”,@“1”,@“R”:@“1”}

isOpenRecord

  • 类型:BOOL
  • 默认值:YES
  • 描述:是否开启语音功能,默认开启。

isOpenRobotVoice

  • 类型:BOOL
  • 默认值:NO
  • 描述:是否开启机器人语音,(付费,否则语音无法识别)

showNotification(仅适配安卓)

  • 类型:BOOL
  • 默认值:false
  • 描述:是否消息提醒,会话没结束时可在通知栏中显示最新消息

isSendInfoCard:

  • 类型:BOOL
  • 默认值:NO
  • 描述:商品卡片信息是否自动发送(转人工成功时,自动发送商品卡片信息)

isEveryTimeSendCard:

  • 类型:BOOL
  • 默认值:NO
  • 描述:是否每次都自动发送商品信息 (转人工成功时,自动发送商品卡片信息),需要先开启 isSendInfoCard = YES

goodsTitle

  • 类型:字符串
  • 默认值:无
  • 描述:内容描述,如果要显示必须填写;自定义咨询内容,在转接人工成功时,方便用户发送自己咨询的信息

goodsLabel

  • 类型:字符串
  • 默认值:无
  • 描述:内容标签,如果要显示价格、分类等

goodsDesc

  • 类型:字符串
  • 默认值:无
  • 描述:发送给客服的商品摘要,如果要显示必须填写;自定义咨询内容,在转接人工成功时,方便用户发送自己咨询的信息

goodsImage

  • 类型:字符串
  • 默认值:无
  • 描述:图片URL;自定义咨询内容,在转接人工成功时,方便用户发送自己咨询的信息

goodsLink

  • 类型:字符串
  • 默认值:无 必填,且是有效链接
  • 描述:当前商品URL;自定义咨询内容,在转接人工成功时,方便用户发送自己咨询的信息

autoSendOrderMessage

  • 类型:BOOL
  • 默认值:NO
  • 描述:人工后,是否主动发送一条订单信息

isEveryTimeAutoSend

  • 类型:BOOL
  • 默认值:NO
  • 描述:是否每次都发送订单信息,需要先设置参数 autoSendOrderMessage = YES

orderStatus

  • 类型:Int
  • 默认值:无
  • 描述:订单状态 待付款: 1, 待发货: 2, 运输中: 3, 派送中: 4, 已完成: 5, 待评价: 6, 已取消: 7, 其它: 不在编码中的

createTime

  • 类型:字符串
  • 默认值:无
  • 描述:例如:1569491413000,不是这样的值,会发送不成功

orderCode

  • 类型:字符串
  • 默认值:无
  • 描述:编号

goods

  • 类型:json数组
  • 默认值:无
  • 描述:[{“name”:“商品名称”,“pictureUrl”:“图片地址”}]

orderUrl

  • 类型:字符串
  • 默认值:无
  • 描述:订单链接

goodsCount

  • 类型:字符串
  • 默认值:无
  • 描述:商品数量

totalFee

  • 类型:int
  • 默认值:无
  • 描述:订单价格(价格的单位为分,比如1元,需要传100)

leaveMsgGroupId

  • 类型:字符串
  • 默认值:无
  • 描述:留言技能组 id,获取:设置 ->工单技能组设置

isDebugMode(仅适用iOS):

  • 类型:boolean
  • 默认值:NO
  • 描述:根据此设置调用的推送证书,默认NO, NO:调用生产环境, YES:测试环境

locale:

  • 类型:字符串
  • 默认值:NO
  • 描述:服务端接口多语言指定,支持语言: 简体中文:zh-Hans 繁体中文:zh-Hant 英语:en 西班牙语:es 葡萄牙语:pt

isCustomLinkClick:

  • 类型 boolean
  • 默认值:NO
  • 描述:是否拦截超链 如果设置YES,SDK内部将不在做超链的跳转,将超链的url外抛在事件监听方法中获取 默认不拦截

自定义字体,(所有参数可选,仅适用iOS)

titleFont:

  • 类型:Float
  • 默认值:18.0
  • 描述:顶部标题颜色、评价标题,可为空

subTitleFont:

  • 类型:Float
  • 默认值:18.0
  • 描述:标题左右文字,可为空

listTitleFont:

  • 类型:Float
  • 默认值:16.0
  • 描述:页面返回按钮,输入框,评价提交按钮、Toast提示语,可为空

listDetailFont:

  • 类型:Float
  • 默认值:14.0
  • 描述:各种按钮,网络提醒,可为空

listTimeFont:

  • 类型:Float
  • 默认值:12.0
  • 描述:消息提醒(转人工、客服接待等),可为空

chatFont:(仅适用iOS)

  • 类型:Float
  • 默认值:15.0
  • 描述:聊天气泡中文字,可为空

voiceButtonFont:

  • 类型:Float
  • 默认值:14.0
  • 描述:录音按钮的文字,可为空

isCustomLinkClick:

  • 类型:boolean
  • 默认值:false
  • 描述:描述:是否自定义链接点击事件,默认NO(false)不拦截由系统内部处理;如果设置为YES(true),所有链接(聊天内容、商品、订单等)内部将不在处理

hideRototEvaluationLabels:

  • 类型:boolean
  • 默认值:false
  • 描述:隐藏机器人是评价标签

hideManualEvaluationLabels:

  • 类型:boolean
  • 默认值:false
  • 描述:隐藏人工时评价标签

absolute_language:

  • 类型:字符串
  • 默认值:无
  • 描述:国际化语言设置 样例:en (英文)

hideChatTime:

  • 类型:boolean
  • 默认值:false
  • 描述:是否隐藏会话时间,默认NO不隐藏;如果不是中国区,与客户端的真实时间是有差异可以选择隐藏会话中的时间

自定义背景颜色,(所有参数可选,并且仅适用iOS)

backgroundColor:

  • 类型:字符串
  • 默认值:#f0f0f0
  • 描述:对话页面背景,可为空

leftChatColor:

  • 类型:字符串
  • 默认值:#FFFFFF
  • 描述:左侧气泡颜色,可为空

rightChatColor:

  • 类型:字符串
  • 默认值:#08b0b0
  • 描述:右边气泡颜色,可为空

leftChatSelectedColor:

  • 类型:字符串
  • 默认值:#FFFFFF
  • 描述:左边聊天气泡复制选中的背景颜色,可为空

rightChatSelectedColor:

  • 类型:字符串
  • 默认值:#08b0b0
  • 描述:右边聊天气泡复制选中的背景颜色,可为空

goodSendBtnColor:

  • 类型:字符串
  • 默认值:#08b0b0
  • 描述:商品详情cell中 btn的背景色,可为空

leaveSubmitBtnImgColor:

  • 类型:字符串
  • 默认值:#08b0b0
  • 描述:留言页面中 提交按钮的背景颜色

自定义文字颜色,(所有参数可选,且仅适用iOS)

topViewTextColor:

  • 类型:字符串
  • 默认值:#FFFFFF
  • 描述:顶部文字颜色(返回、标题),可为空

leftChatTextColor:

  • 类型:字符串
  • 默认值:#000000
  • 描述:左边聊天气泡文字颜色,可为空

rightChatTextColor:

  • 类型:字符串
  • 默认值:#FFFFFF
  • 描述:右边聊天气泡文字颜色,可为空

timeTextColor:

  • 类型:字符串
  • 默认值:#666f6f
  • 描述:聊天时间文字的颜色,可为空

tipLayerTextColor:

  • 类型:字符串
  • 默认值:#FFFFFF
  • 描述:提示气泡文字颜色,可为空

serviceNameTextColor:

  • 类型:字符串
  • 默认值:#67706e
  • 描述:客服昵称文字颜色,可为空

nickNameTextColor:

  • 类型:字符串
  • 默认值:#888888
  • 描述:提示cell中客服昵称文字颜色,可为空

chatLeftLinkColor:

  • 类型:字符串
  • 默认值:#2fb9c3
  • 描述:左边超链文字颜色,可为空

chatRightLinkColor:

  • 类型:字符串
  • 默认值:#0d81c0
  • 描述:右边超链文字颜色,可为空

notificationTopViewLabelFont:

  • 类型:字符串
  • 默认值:14.0
  • 描述:通告栏的字体设置

notificationTopViewLabelColor:

  • 类型:字符串
  • 默认值:#ffffff
  • 描述:通告栏的文字颜色,可为空

notificationTopViewBgColor:

  • 类型:字符串
  • 默认值:#FFA500
  • 描述:通告栏的背景色,可为空

satisfactionSelectedBgColor:

  • 类型:字符串
  • 默认值:#2fb9c3
  • 描述:评价页面中 已解决 未解决 按钮的选中的背景色,可为空

satisfactionTextSelectedColor:

  • 类型:字符串
  • 默认值:#FFFFFF
  • 描述:评价页面中 已解决,未解决 按钮的 高亮状态的文字颜色,可为空

补充说明

1、无法启动插件 使用此插件,必须先传入app_key参数,其它参数可根据自己实际情况选择设置;


更多关于Flutter在线客服插件flutter_sobot的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter在线客服插件flutter_sobot的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,关于Flutter在线客服插件flutter_sobot的使用,下面是一个基本的集成示例代码。这个示例假设你已经有一个SoBot账号,并且已经获取了必要的配置信息,如App Key等。

首先,确保你已经在pubspec.yaml文件中添加了flutter_sobot依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_sobot: ^最新版本号  # 请替换为实际的最新版本号

然后,运行flutter pub get来获取依赖包。

接下来,在你的Flutter项目中,你可以按照以下步骤进行集成:

  1. 初始化SoBot SDK

在应用的入口文件(通常是main.dart)中初始化SoBot SDK。

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

void main() {
  // 初始化SoBot SDK
  SoBot.init(
    appKey: '你的AppKey', // 替换为你的AppKey
    appSecret: '你的AppSecret', // 替换为你的AppSecret(如果需要)
    channelId: '你的ChannelId', // 替换为你的ChannelId
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}
  1. 在需要的地方展示在线客服

你可以在任何Widget中调用SoBot的UI组件。例如,在一个按钮点击事件中展示客服聊天窗口。

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter SoBot Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // 打开SoBot客服聊天窗口
            SoBot.showChatWindow();
          },
          child: Text('打开在线客服'),
        ),
      ),
    );
  }
}
  1. 处理SoBot的回调(可选)

根据需要,你可以监听SoBot SDK的一些回调事件,例如客服状态变化、消息发送成功等。

// 在你的应用中某个合适的位置设置回调监听
SoBot.setCallback((SoBotEvent event) {
  if (event is SoBotChatWindowOpenedEvent) {
    print('客服聊天窗口已打开');
  } else if (event is SoBotMessageSentEvent) {
    print('消息已发送: ${event.message}');
  }
  // 其他事件处理...
});

注意

  • SoBotEvent是一个假设的回调事件类,实际使用时请参考flutter_sobot插件的文档,了解具体的事件类型和回调方法。
  • appKeyappSecretchannelId是必需的初始化参数,具体值请从SoBot后台获取。
  • flutter_sobot插件的具体API和回调方法可能会随着版本更新而变化,请参考最新的官方文档。

通过上述步骤,你应该能够在Flutter应用中成功集成并使用SoBot在线客服插件。如果遇到任何问题,请参考flutter_sobot的官方文档或寻求SoBot官方支持。

回到顶部