5、通过以下属性获得选择的消息数据
//RCConversationViewController
/*!
已经选择的所有消息
@discussion 只有在 allowsMessageCellSelection 为 YES,才会有有效值
*/
@property(nonatomic, strong, readonly) NSArray<RCMessageModel *> *selectedMessages;
6、关于导航左右按钮既然想要自定义,可以重写会话页面上面步骤,可以参考Demo里面这个步骤的重写
//RCConversationViewController
/*!
更新导航栏返回按钮中显示的未读消息数
@discussion 如果您重写此方法,需要注意调用 super。
*/
- (void)notifyUpdateUnreadMessageCount;
7、参考官方SealTalk开源项目的会话页面RCDChatViewController,搜“消息多选功能”,看相关多选功能代码
根据关键字搜索会话列表信息
/*!
根据关键字搜索会话
@param conversationTypeList 需要搜索的会话类型列表
@param objectNameList 需要搜索的消息类型名列表(即每个消息类方法getObjectName的返回值)
@param keyword 关键字
@return 匹配的会话搜索结果列表
@discussion 目前,SDK内置的文本消息、文件消息、图文消息支持搜索。
自定义的消息必须要实现RCMessageContent的getSearchableWords接口才能进行搜索。
*/
- (NSArray<RCSearchConversationResult *> *)searchConversations:(NSArray<NSNumber *> *)conversationTypeList
messageType:(NSArray<NSString *> *)objectNameList
keyword:(NSString *)keyword;
按照关键字搜索选定会话中的消息内容
/*!
根据关键字搜索指定会话中的消息
@param conversationType 会话类型
@param targetId 会话ID
@param keyword 关键字
@param count 最大的查询数量
@param startTime 查询记录的起始时间(传 0 表示不限时间)
@return 匹配的消息列表
*/
- (NSArray<RCMessage *> *)searchMessages:(RCConversationType)conversationType
targetId:(NSString *)targetId
keyword:(NSString *)keyword
count:(int)count
startTime:(long long)startTime;
融云SDK默认将照片、文件消息上传默认的文件服务器,如果必须使用自己的服务器,那么可以采取以下的方案:
1、调用RCIMClient的接口
- (RCMessage *)sendMediaMessage:(RCConversationType)conversationType
targetId:(NSString *)targetId
content:(RCMessageContent *)content
pushContent:(NSString *)pushContent
pushData:(NSString *)pushData
uploadPrepare:(void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock
progress:(void (^)(int progress, long messageId))progressBlock
success:(void (^)(long messageId))successBlock
error:(void (^)(RCErrorCode errorCode, long messageId))errorBlock
cancel:(void (^)(long))cancelBlock
在uploadPrepareBlock中写代码上传您的照片、文件到您的服务器,uploadListener具体的实现可以参考以下代码,具体推动是按照上传的进度与过程给uploadListener的相关block赋值;可以在progressBlock中按照progress的值来升级UI。
2、调用RCConversationViewController的接口
- (void)sendMediaMessage:(RCMessageContent *)messageContent
pushContent:(NSString *)pushContent
appUpload:(BOOL)appUpload;
同时还要实现以下的接口
- (void)uploadMedia:(RCMessage *)message
uploadListener:(RCUploadMediaStatusListener *)uploadListener;
在该方式中给上传到您服务器的代码,并升级uploadListener中相关block的状态
可以参考以下代码:
RCImageMessage *imgMsg = [RCImageMessage messageWithImage:image];
[self sendMediaMessage:imgMsg pushContent:nil appUpload:YES];
- (void)uploadMedia:(RCMessage *)message
uploadListener:(RCUploadMediaStatusListener *)uploadListener {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//这里是模仿图片、文件上传的过程
BOOL isSuccess = NO;
int i = 0;
for (i = 0; i < 100; i++) {
uploadListener.updateBlock(i);
[NSThread sleepForTimeInterval:0.2];
isSuccess = YES;
}
if(isSuccess){//如果上传成功
uploadListener.successBlock(@"http://www.rongcloud.cn/images/bannerInner.png");
}else {//如果上传失败
uploadListener.errorBlock(-1);
}
});
}
从SDK2.9.21版本开始支持单聊消息便捷回复功能,默认为关闭状况,目前可借助工单方法办理开通,开通后按下列方法集成即可使用。
会话图标直接添加如下代码就能:
[self.chatSessionInputBarControl setCommonPhrasesList:@[@"你好", @"不错", @"是这样", @"没问题", @"谢谢"]];
注意事项:
从SDK2.9.21版本开始支持发送GIF图片消息,默认可选取发送的GIF图片大小为2M,接收于高于1M的消息时自动下载显示,大于1M时必须自动点击下载,可通过以上代码修改手动下载大小限制。
/**
GIF 消息自动下载的大小 size, 单位 KB
*/
@property(nonatomic, assign) NSInteger GIFMsgAutoDownloadSize;
为满足用户发送个人名片的用途需求,融云推动了个人名片的开源软件,开发者可下载软件直接集成使用。
GitHub项目:plugin-contactcard-ios
融云提供了集成科大讯飞语音功能转文本发送消息的开源工程软件,开发者可下载软件直接集成使用:
GitHub项目:plugin-ifly-ext-ios
一、如果您使用的是不带红包的2.8.2及以下版本的SDK请参考下面修改:
App中的Info.plist文件可参考下面修改(研发者可按照自身业务状况微调修改):

假如使用2.8.2版本之前的SDK,请参考2.8.2版本之前ATS设置。
其中:
rongcloud-image.ronghub.com(可选)
rongcloud-image.ronghub.com是照片下载的HTTP域名。
1.1、如果您的App没有收发图片的功能,可以不减少这个白名单。
1.2、在开发者后台Aey页面打开HTTPS,您可以选取以HTTPS的方法上传下载截图。需要留意的是,SDK2.6.0之前的版本不支持下载HTTPS图片。您可以在2.6.0以下版本存量到达必定程度以后,在开发者后台迁移HTTPS,之后就不再应该增加这个白名单。
rongcloud-file.ronghub.com(可选)
rongcloud-file.ronghub.com是文件下载的HTTP域名。
2.1、如果您的App没有收发文件的用途,可以不减少这个白名单。
2.2、在开发者后台Aey页面打开HTTPS,您可以选取以HTTPS的方法上传下载文件。需要留意的是,SDK2.6.0之前的版本不支持下载HTTPS文件。您可以在2.6.0以下版本存量到达必定程度以后,在开发者后台迁移HTTPS,之后就不再应该增加这个白名单。
nav.cn.ronghub.com(可选)
nav.cn.ronghub.com是连接服务的HTTP域名。
nav.cn.ronghub.com连接服务支持并优先使用HTTPS,但是考虑到中国网络环境的复杂性和那些特殊状况,加上了这个白名单,在HTTPS失败的状况下SDK会下降HTTP以确保连接,增强连接的稳定性。
然后NSExceptionDomains在提交审核的之后,会触发苹果的审核review,App可以考量App的使用画面和自己的ATS策略,自行决定能否提高这个白名单。
public.rongcloud.cn(可选)
public.rongcloud.cn是公众帐号服务的HTTP域名。
public.rongcloud.cn目前只支持HTTP,如果开发中应该使用公众账号服务,那么应该添加白名单,如果没有公众账号服务这么可以忽略。
NSAllowsArbitraryLoadsInWebContent和NSAllowsArbitraryLoads(可选)
SDK默认优先使用SFSafariViewController打开URL链接,App审核的之后不应该额外说明。
您也可以借助修改RCIM的embeddedWebViewPreferred属性,设置默认使用WebView打开URL链接,但是您必须在Info.plist中添加NSAllowsArbitraryLoadsInWebContent和NSAllowsArbitraryLoads,并在App审核的之后提交额外的表明。
NSAllowsArbitraryLoadsInWebContent是为了用WebView可以开启任意HTTP链接,该参数只在iOS10以上的平台生效。
NSAllowsArbitraryLoads是为了在iOS9上用WebView可以开启任意HTTP链接,在iOS10上,如果设置了NSAllowsArbitraryLoadsInWebContent,会默认忽略NSAllowsArbitraryLoads。
// RCIM Class
#pragma mark - 网页展示模式
/*!
点击Cell中的URL时,优先使用WebView还是SFSafariViewController打开。
@discussion 默认为NO。
如果设置为YES,将使用WebView打开URL链接,则您需要在App的Info.plist的NSAppTransportSecurity中增加NSAllowsArbitraryLoadsInWebContent和NSAllowsArbitraryLoads字段,并在苹果审核的时候提供额外的说明。
如果设置为NO,将优先使用SFSafariViewController,在iOS 8及之前的系统中使用WebView,在审核的时候不需要提供额外说明。
更多内容可以参考:https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW55
*/
@property(nonatomic, assign) BOOL embeddedWebViewPreferred;
二、如果您使用的是带红包功能的SDK:
红包SDK从2.8.5版本开始支持HTTPS,如果您使用的是2.8.2至2.8.4版本的红包SDK,那么请参考红包SDK的ATS设置。
Bitcode
iOS9中,Apple引入了新特点Bitcode,用于优化版本编译提交。因为对于Bitcode,静态库的编译应该调整,所以SDK的版本有所差别。如果您使用Xcode6.X版本,您可以使用2.3.0或2.3.0以上版本的SDK;如果您使用Xcode7.X版本,您可以使用SDK2.3.1或者2.3.1以上版本的SDK。
集成融云SDK过程中,如碰到难题可查看。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-121563-8.html
数量不是决定一切
任何一个门槛低的行业