自定义外观

这个页面向您展示了如何自定义SDK UI。

在开始之前

在开始之前,你应该了解以下内容:

  • 您只能自定义统一SDK界面中使用的一种颜色。
  • 导航条的颜色不是由统一SDK设置的,而是继承自当前导航控制器或UINavigationBar单例。
  • 您不能移动UI元素、删除UI的部分或添加新部分。

如果自定义UI元素对您很重要,请考虑使用闲谈,聊天提供程序和构建自己的UI。

定制聊天体验

Chat SDK提供ChatConfiguration可用于启用或禁用某些会话功能的类。

斯威夫特

             
let chatConfiguration = chatConfiguration ()chatConfiguration。isAgentAvailabilityEnabled = false

objective - c

             
ZDKChatConfigurationchatConfigurationZDKChatConfiguration alloc初始化chatConfigurationisAgentAvailabilityEnabled是的
国旗 描述
chatMenuActions 的数组ChatMenuAction项,用于配置用户可用的菜单项。默认是(。emailTranscript .endChat]显示“请求记录”和“结束聊天”菜单项。空数组将隐藏菜单。
isChatTranscriptPromptEnabled 如果是这样,访问者将在聊天结束时被提示,询问他们是否需要通过电子邮件发送文字记录。
isPreChatFormEnabled 如果为真,在开始聊天之前,访问者会被提示以对话的方式输入信息。默认为真正的
isOfflineFormEnabled 如果启用此标志(以及isAgentAvailabilityEnabled)后,访客会获出示一份表格,以便在没有代理人的情况下留言。这将创建一个支持票据。默认为真正的
preChatFormFieldConfiguration 此属性允许您配置每个聊天前表单字段的要求。看到配置聊天前表单获取更多信息。
isAgentAvailabilityEnabled 如果为真,并且没有可用的代理为访问者服务,则将向他们显示一条消息,让他们知道没有可用的代理。如果它被禁用,游客将继续排队等待代理。默认为真正的.只检查账户的可用性,不检查具体部门。如果需要部门级别的可用性信息,请参见获取代理的可用性。

的完整文档ChatConfiguration类,请参见参考文档

配置聊天前表单

在与代理开始聊天之前,会向用户提供一个预聊天表单,为收集信息提供了机会。表单可以支持姓名、电子邮件地址和电话号码字段,以及选择部门和输入初始消息。本地机器人在对话流中将表单呈现给用户。机器人的细节可以改变以匹配您的品牌。看到配置聊天机器人欲知详情。

光

默认情况下,聊天前表单是启用的。属性可以禁用isPreChatFormEnabled标记为false。表单字段可以配置为以下需求级别之一:

状态 描述
.optional 用户可以继续,无需填写该字段。
.hidden 字段将不会显示给用户。
.required 用户需要填写该字段才能继续。

要配置每个聊天前表单字段的要求,请使用ChatFormConfiguration类。

斯威夫特

             
let formConfiguration = ChatFormConfiguration(名称:.required,电子邮件:.optional,phoneNumber: .hidden,部门:.required)let chatConfiguration = chatConfiguration ()chatConfiguration。isPreChatFormEnabled = truechatConfiguration。preChatFormConfiguration = formConfiguration

objective - c

             
ZDKChatFormConfigurationformConfigurationZDKChatFormConfiguration allocinitWithNameZDKFormFieldStatusRequired电子邮件ZDKFormFieldStatusOptionalphoneNumberZDKFormFieldStatusHidden部门ZDKFormFieldStatusRequiredZDKChatConfigurationchatConfigurationZDKChatConfiguration alloc初始化chatConfigurationisPreChatFormEnabled是的chatConfigurationpreChatFormConfigurationformConfiguration
预聊天表单和ChatAPIConfiguration类

聊天前表单检查在Chat.instance.configuration对象。您可以使用ChatAPIConfiguration类来为聊天会话预设用户信息和部门。属性上的visitorInfo对象填充时,则各自的预聊天表单字段将被隐藏,而不管其FormFieldStatus.同样的规则也适用于部门财产。如果所有visitorInfo属性和部门填充,那么表单将不会显示,用户可以发送消息开始聊天。

确保在设置和重置标识时适当地处理这些属性。

启用多行快速回复

您的Chat实例可能有一个很长的部门列表,其中的部门名称很长。当用户在预聊天表单中选择他们想要的部门时,这可能会导致糟糕的用户体验。如果是这种情况,你可以利用aFlexbox-style布局。控件可以切换到此布局isMultilineResponseOptionsEnabled旗帜在MessagingConfiguration.看到文档欲知详情。

斯威夫特

             
let configuration = MessagingConfiguration()配置。isMultilineResponseOptionsEnabled = true

objective - c

             
ZDKMessagingConfiguration配置ZDKMessagingConfiguration alloc初始化配置isMultilineResponseOptionsEnabled是的

设置聊天界面样式

目前只有一种颜色可以在聊天SDK上设置。此颜色用于设置用户的消息气泡的样式。有关更多细节,请参阅文档样式化统一SDK

斯威夫特

             
import CommonUISDK //导入必要的组件CommonTheme.currentTheme.primaryColor = .red

objective - c

             
进口<CommonUISDK/CommonUISDKh>//导入必要的组件ZDKCommonTheme currentThemeprimaryColor用户界面颜色redColor

配置聊天机器人

聊天SDK利用统一SDK在对话流程中向用户展示聊天功能。默认情况下,预聊天表单和离线表单通过名为“Answer Bot”的脚本交互发送给用户。应答机器人也会发送客户满意请求,但只有在代理请求时才会发送。这不是Answer Bot SDK,但它使所有SDK之间的交互一致。机器人的名称和图标可以被覆盖以推广您的品牌。更多详细信息,请参阅消息传递配置以及这篇文章上的这个功能和回答机器人的区别

本地化文本

Chat SDK被本地化为33种不同的语言,包括从右到左的语言。可以重写字符串以匹配您的品牌。看到本地化UI欲知详情。