输入区域
IMKit 的输入区域是通过 RCChatSessionInputBarControl
统一创建和控制的,支持自定义输入模式、自定义扩展区域(插件)、以及自定义表情。
下图输入区从左至右依次是语音/文本切换按钮、内容输入框、表情面板按钮、扩展面板按钮。
修改输入栏组合模式
IMKit 输入栏提供语音/文本切换、内容输入、扩展区域功能,并支持修改输入组合模式。例如,您可以移除语音/文本切换按钮和扩展面板,仅保留内容输入功能。
IMKit 在 RCChatSessionInputBarControlStyle 中定义了多种排列组合模式:
组合模式 | 枚举 |
---|---|
语音/文本切换-输入框-扩展 | RC_CHAT_INPUT_BAR_STYLE_SWITCH_CONTAINER_EXTENTION |
扩展-输入框-切换 | RC_CHAT_INPUT_BAR_STYLE_EXTENTION_CONTAINER_SWITCH |
输入框-语音/文本切换-扩展 | RC_CHAT_INPUT_BAR_STYLE_CONTAINER_SWITCH_EXTENTION |
输入框-扩展-切换 | RC_CHAT_INPUT_BAR_STYLE_CONTAINER_EXTENTION_SWITCH |
语音/文本切换-输入框 | RC_CHAT_INPUT_BAR_STYLE_SWITCH_CONTAINER |
输入框-切换 | RC_CHAT_INPUT_BAR_STYLE_CONTAINER_SWITCH |
扩展-输入框 | RC_CHAT_INPUT_BAR_STYLE_EXTENTION_CONTAINER |
输入框-扩展 | RC_CHAT_INPUT_BAR_STYLE_CONTAINER_EXTENTION |
输入框 | RC_CHAT_INPUT_BAR_STYLE_CONTAINER |
您可以会话页面 RCConversationViewController
的子类 viewDidLoad
之后改变输入栏的样式。使用 chatSessionInputBarControl
的 setInputBarType
方 法调整顺序或禁用部分输入模式等。IMKit 在 RCChatSessionInputBarControlStyle 提供了多种排列组合。
RCChatSessionInputBarControlStyle style = RC_CHAT_INPUT_BAR_STYLE_SWITCH_CONTAINER_EXTENTION;
[self.yourChatVC.chatSessionInputBarControl setInputBarType:RCChatSessionInputBarControlDefaultType style:style];
隐藏输入栏中的表情面板按钮
IMKit SDK 从 5.3.2 版本开始提供该功能。
可以在继承 RCConversationViewController
的会话页面的 viewDidLoad
之后隐藏输入栏中的表情按钮:
[self.yourChatVC.chatSessionInputBarControl.inputContainerView.hideEmojiButton = YES];
输入区域扩展面板
IMKit 将点击输入栏 +
号按钮时展示的面板称为扩展面板,扩展面板上展示当前可用的插件。
扩展面板插件列表
IMKit 完整插件列表如下所示。扩展面板中默认仅包含内置插件(照片、文件)。如需其他插件,请集成 IMKit 提供的对应插件库,集成导入后会自动加载显示。
所属模块名称 | 插件名称 | 说明 |
---|---|---|
内置插件 | Photo | 含相册与拍摄插件,默认支持拍摄照片发送,和从相册发送照片。集成小视频插件后可从相册发送小视频和录制小视频。 |
内置插件 | File | 文件插件,需要手动启用。启用后可发送文件。 |
RongLocationKit | LocationKit | 发送位置消息,集成 LocationKit 库可用。 |
RongSight | Sight | 小视频插件,集成 Sight 库后可用。 |
RongContactCard | ContactCard | 名片插件,集成 ContactCard 库后可用。需配置联系人列表。 |
RongIFlyKit | IFly | 语音输入插件,集成 IFly 库后可用。需要替换为您自己的讯飞 Framework(包含您自己的讯飞 App Key)。 |
RCCallKitExtensionModule | CallKit 语音通话插件 | 语音通话插件,集成 CallKit 后可用。 |
RCCallKitExtensionModule | CallKit 音视频通话插件 | 视频通话插件,集成 CallKit 后可用。 |
添加语音输入转文字插件
IMKit 基于讯飞 SDK 开发了语音转文字插件库 IFly
。IMKit 集成 IFLY
库后,在扩展面板会自动生成语音输入功能入口。用户点击语音输入可以将录入的语音转成文字并展示在输入栏。
IMKit 的 IFly
库依赖于讯飞语音库 SDK iflyMSC.framework
。讯飞语音库是收费业务,因此插件中不含讯飞 App Key。由于讯飞的 App Key 和 iflyMSC.framework
是强绑定关系,所以 App 在集成时必须替换 iflyMSC.framework
。
请自行去讯飞官网下载 iflyMSC.framework
SDK,用于替换语音输入插件中的 iflyMSC.framework
。
语音插件(IFly)仅支持以源码方式导入。如需使用语音插件,必须同样以源码方式集成 IMKit SDK。参见导入SDK。
pod 'RongCloudOpenSource/IFly','~> x.y.z' # 语音输入
x.y.z 代表具体版本,请通过融云官网 SDK 下载页面