
融云公众服务是为应用研发者和公众帐号运营者提供的联结服务产品,通过融云公众服务,App可以具有为自己的客户提供公众账号服务的素养和资源。
公众服务包含:应用公众服务和公众服务系统。
开发者可在融云研发者系统的公众服务组件中,通过添加公众服务或应用公众服务中的公众号到自己的应用中(应用上线以后能够添加公众号)。
IMKit组件中尚未内置了订阅和更改订阅公众号的接口读取,您直接开启就能:
// 启动已关注的公众号列表功能
RCPublicServiceListViewController *publicServiceVC = [[RCPublicServiceListViewController alloc] init];
[self.navigationController pushViewController:publicServiceVC animated:YES];
// 启动搜索公众号功能
RCPublicServiceSearchViewController *searchFirendVC = [[RCPublicServiceSearchViewController alloc] init];
[self.navigationController pushViewController:searchFirendVC animated:YES];
开启公众服务会话界面
如开发者想自己谋求启动公众服务会话界面,需要在初始化公众服务会话时,正确初始化基类,比如服务号Id、会众服务种类、服务号名称和会话标题,例如:
RCPublicServiceChatViewController *conversationVC = [[RCPublicServiceChatViewController alloc] init];
conversationVC.conversationType = conversationType;
conversationVC.targetId = targetId;
conversationVC.userName = conversationTitle;
conversationVC.title = conversationTitle;
[self.navigationController pushViewController:conversationVC animated:YES];
消息的远程推送:
您在开发者后台配置好远程推送的证书,且在代码中申请好权限,并将deviceToken传给融云服务器,当接收者不的之后,融云服务器会手动通过远程推送将消息发过去。
注:推送的内容由发送消息接口的pushContent字段决定,内置消息发送的之后即使该字段没有值,将使用默认内容推送;自定义消息应该修改该字段,否则将不会推送。
详情参考:iOS远程推送文档
消息的本地通知:
SDK在当App进入后台甚至没被系统杀死的过后,收到消息会弹一个本地通知,并且有提醒音,详情参考。
表明:如果使用IMKit,会话页面本身早已实现了除“图文消息”之外的其余常用的SDK内置消息的发送功能。
/*!
初始化文本消息
@param content 文本消息的内容
@return 文本消息对象
*/
RCTextMessage *txtMsg = [RCTextMessage messageWithContent:content];
发送该消息体的接口:
//RCIM class
/*!
发送消息(除图片消息、文件消息外的所有消息),会自动更新UI
@param conversationType 发送消息的会话类型
@param targetId 发送消息的目标会话ID
@param content 消息的内容
@param pushContent 接收方离线时需要显示的远程推送内容
@param pushData 接收方离线时需要在远程推送中携带的非显示数据
@param successBlock 消息发送成功的回调 [messageId:消息的ID]
@param errorBlock 消息发送失败的回调 [nErrorCode:发送失败的错误码, messageId:消息的ID]
@return 发送的消息实体
@discussion 当接收方离线并允许远程推送时,会收到远程推送。
远程推送中包含两部分内容,一是pushContent,用于显示;二是pushData,用于携带不显示的数据。
SDK内置的消息类型,如果您将pushContent和pushData置为nil,会使用默认的推送格式进行远程推送。
自定义类型的消息,需要您自己设置pushContent和pushData来定义推送内容,否则将不会进行远程推送。
@warning 如果您使用IMKit,使用此方法发送消息SDK会自动更新UI;
如果您使用IMLib,请使用RCIMClient中的同名方法发送消息,不会自动更新UI。
*/
- (RCMessage *)sendMessage:(RCConversationType)conversationType
targetId:(NSString *)targetId
content:(RCMessageContent *)content
pushContent:(NSString *)pushContent
pushData:(NSString *)pushData
success:(void (^)(long messageId))successBlock
error:(void (^)(RCErrorCode nErrorCode, long messageId))errorBlock;
在IMKit会话界面中,为确保UI体验的顺畅度,单条文本消息的显示高度限制为8000pt,当消息内容增多时将截取显示,不会将内容全部显示起来,如必须查看全部内容可在消息的双击事件中推动展示处理。详细查看
/*!
初始化地理位置消息
@param image 地理位置的缩略图
@param location 地理位置的二维坐标
@param locationName 地理位置的名称
@return 地理位置消息的对象
*/
RCLocationMessage *locationMessage = [RCLocationMessage messageWithLocationImage:image location:location locationName:locationName];
发送该消息体的接口,参照文本消息发送方式。
/*!
初始化语音消息
@param audioData wav格式的音频数据
@param duration 语音消息的时长(单位:秒)
@return 语音消息对象
@discussion
如果您不是使用IMKit中的录音功能,则在初始化语音消息的时候,需要确保以下几点。
1. audioData必须是单声道的wav格式音频数据;
2. audioData的采样率必须是8000Hz,采样位数(精度)必须为16位。
您可以参考IMKit中的录音参数:
NSDictionary *settings = @{AVFormatIDKey: @(kAudioFormatLinearPCM),
AVSampleRateKey: @8000.00f,
AVNumberOfChannelsKey: @1,
AVLinearPCMBitDepthKey: @16,
AVLinearPCMIsNonInterleaved: @NO,
AVLinearPCMIsFloatKey: @NO,
AVLinearPC'MIsBigEndianKey: @NO};
*/
RCVoiceMessage *rcVoiceMessage = [RCVoiceMessage messageWithAudio:audioData duration:duration]
发送该消息体的接口,参照文本消息发送方式。
注:语音参数需要是wav格式的ifly格式如何打开,RCIMClient中有相关的方式来转化语音数据格式。
从SDK2.9.19版本开始支持高质量语音消息功能,需要留意高品质语音消息与旧版本SDK不兼容,旧版本SDK无法收听新的高质量语音消息。
消息定义:
高质量语音消息RCHQVoiceMessage和旧版本语音消息RCVoiceMessage不同的是将录制的音频数据传输到服务端,而消息体内只保存URL。摆脱了消息体128K的大小限制,所以拥有更高音质。
接口说明:
在类RCIMClient.h中借助RCVoiceMessageTypevoiceMsgType接口可以修改发送高质量语音消息而是普通的语音消息,默认为普通语音消息。
在类RCIM.h中借助automaticDownloadHQVoiceMsgEnable接口可以控制客户时,收到高质量语音消息后能否自动下载,默认为手动下载,设为NO时只有在开启会话图标情况下才手动下载当前会话中语音消息文件。
集成步骤:
在程序开启时调用下面步骤就能
[RCIMClient sharedRCIMClient].voiceMsgType = RCVoiceMessageTypeHighQuality;
/*!
初始化图文消息
@param title 图文消息的标题
@param digest 图文消息的内容摘要
@param imageURL 图文消息的图片URL
@param url 图文消息中包含的需要跳转到的URL
@param extra 图文消息的扩展信息
@return 图文消息对象
*/
RCRichContentMessage *richMsg = [RCRichContentMessage messageWithTitle:title digest:digest imageURL:imageurl url:url extra:nil];
发送该消息体的接口,参照文本消息发送方式。
/*!
初始化图片消息
@param image 原始图片
@return 图片消息对象
*/
RCImageMessage *imageMessage = [RCImageMessage messageWithImage:image]
/*!
初始化图片消息
@param imageURI 图片的本地路径
@return 图片消息对象
*/
+ (instancetype)messageWithImageURI:(NSString *)imageURI
注:图片消息发送方的imageUrl里面是照片的本地url,接收方的imageUrl是网络url
发送该消息体的接口,融云SDK中默认上传文件传输有效期为6个月,不支持文件迁移。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-121563-1.html
就远远地盯着它