【iOS开发】如何应用融云的音讯扩大
从 【4.0.3 】版本开始,融云新增了音讯扩大性能,文档如下:
https://docs.rongcloud.cn/v4/...
总结文档中的几个重点:
- 4.0.3之前的版本无奈应用。
- 音讯扩大是RCMessage类的属性,也就是说自定义音讯也能够应用。
- 单条音讯只能设置300个kv,(某些场景不可用,比方在群里发400集体可领的红包)。
- 仅反对单聊、群聊。
- key和value都是字符串类型,并且key不能是中文,否则会报错INVALID_PARAMETER。
- 用IMKit的UI发送音讯时须要拦挡一下,设置音讯扩大开关。
应用步骤:
- 音讯的发送端必须给须要音讯扩大的音讯开开关,没有全局设置,只能单条音讯设置。分以下两种状况:
- 如果应用的是IMKit提供的UI发送音讯,或者应用RCConversationViewController中的sendMessage和sendMediaMessage办法发送音讯,都会触发上面回调:
/*! 筹备发送音讯的回调 @param messageContent 音讯内容 @return 批改后的音讯内容 @discussion 此回调在音讯筹备向外发送时会回调,您能够在此回调中对音讯内容进行过滤和批改等操作。 如果此回调的返回值不为nil,SDK会对外发送返回的音讯内容。 */- (RCMessageContent *)willSendMessage:(RCMessageContent *)messageContent;
在回调中判断如果是须要扩大的音讯,就依据messageContent,本人结构一个RCMessage对象,并设置好canIncludeExpansion和expansionDic。
RCMessage *message = [[RCMessage alloc] initWithType:self.conversationType targetId:self.targetId direction:MessageDirection_SEND messageId:0 content:messageContent];message.canIncludeExpansion = YES;message.expansionDic = dict;
再调用RCIM中对应的send办法将音讯发送进来,并且在筹备发送音讯的回调中return nil。
- 如果是本人调用RCIM和RCIMClient接口发的音讯,用RCMessageContent类的对象结构一个RCMessage对象,而后设置canIncludeExpansion和expansionDic再调用RCIM中对应的send办法将音讯发送进来即可。
- 更新和删除扩大的操作能够参考官网文档。
- 想要实时捕捉音讯扩大的更改和删除,就须要设置回调,在回调中更新UI。设置回调可参考官网文档。