输入区域
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 版本开始提供该功能。
输入栏中的表情按钮是表情面板的入口。在 App 不需要提供表情输入功能时,可隐藏该入口。在会话页面显示前设置 hideEmojiButton
隐藏表情面板入口。
[self.yourChatVC.chatSessionInputBarControl.inputContainerView.hideEmojiButton = YES];
输入区域扩展面板
融云将点击输入栏 +
号按钮时展示的面板称为扩展面板,扩展面板上展示当前可用的插件。
扩展面板插件列表
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 下载页面或 CocoaPods 仓库等方式查询最新版本。
集成步骤如下:
-
前往讯飞官网,申请账号并下载 SDK。
-
设置讯飞 App Key。
-
引用语音输入模块。
#import <RongCloudOpenSource/RongiFlyKit.h>
-
-
请在 RCIM 的
initWithAppKey
前调用下面接口。[RCiFlyKit setiFlyAppKey:@"讯飞 appkey"];