您可以借助RCIM的下述接口关闭所有的前台提醒音。
// RCIM Class
/*!
是否关闭所有的前台消息提示音,默认值是NO
@discussion 当App处于前台时,默认会播放消息提示音,您可以通过将此属性设置为YES,关闭所有的前台消息提示音。
*/
@property(nonatomic, assign) BOOL disableMessageAlertSound;
您可以借助RCIMReceiveMessageDelegate的下述接口,针对具体的会话或消息,定制或关闭前台提醒音。
// RCIM Class
/*!
IMKit消息接收的器
@discussion 设置IMKit的消息接收器请参考RCIM的receiveMessageDelegate属性。
@warning 如果您使用IMKit,可以设置并实现此Delegate消息接收;
如果您使用IMLib,请使用RCIMClient中的RCIMClientReceiveMessageDelegate消息接收,而不要使用此器。
*/
@protocol RCIMReceiveMessageDelegate <NSObject>
@optional
/*!
当App处于前台时,接收到消息并播放提示音的回调方法
@param message 接收到的消息
@return 当返回值为NO时,SDK会播放默认的提示音;当返回值为YES时,SDK针对此消息不再播放提示音
@discussion 到消息时播放提示音之前,会执行此方法。
如果App没有实现此方法,SDK会播放默认的提示音。
流程:
SDK接收到消息 -> App处于前台状态 -> 回调此方法准备播放提示音 -> App实现并返回YES -> SDK针对此消息不再播放提示音
-> App未实现此方法或者返回NO -> SDK会播放默认的提示音
您可以通过RCIM的disableMessageAlertSound属性,关闭所有前台消息的提示音(此时不再回调此接口)。
*/
-(BOOL)onRCIMCustomAlertSound:(RCMessage*)message;
@end
您可以借助RCIM的下述接口关闭所有的本地通知提醒。
// RCIM Class
/*!
是否关闭所有的本地通知,默认值是NO
@discussion 当App处于后台时,默认会弹出本地通知提示,您可以通过将此属性设置为YES,关闭所有的本地通知。
*/
@property(nonatomic, assign) BOOL disableMessageNotificaiton;
您可以借助RCIMReceiveMessageDelegate的下述接口,针对具体的会话或消息,定制或关闭本地通知提醒。
// RCIM Class
/*!
IMKit消息接收的器
@discussion 设置IMKit的消息接收器请参考RCIM的receiveMessageDelegate属性。
@warning 如果您使用IMKit,可以设置并实现此Delegate消息接收;
如果您使用IMLib,请使用RCIMClient中的RCIMClientReceiveMessageDelegate消息接收,而不要使用此器。
*/
@protocol RCIMReceiveMessageDelegate <NSObject>
@optional
/*!
当App处于后台时,接收到消息并弹出本地通知的回调方法
@param message 接收到的消息
@param senderName 消息发送者的用户名称
@return 当返回值为NO时,SDK会弹出默认的本地通知提示;当返回值为YES时,SDK针对此消息不再弹本地通知提示
@discussion 如果您设置了IMKit消息之后,当App处于后台,收到消息时弹出本地通知之前,会执行此方法。
如果App没有实现此方法,SDK会弹出默认的本地通知提示。
流程:
SDK接收到消息 -> App处于后台状态 -> 通过用户/群组/群名片信息提供者获取消息的用户/群组/群名片信息
-> 用户/群组信息为空 -> 不弹出本地通知
-> 用户/群组信息存在 -> 回调此方法准备弹出本地通知 -> App实现并返回YES -> SDK不再弹出此消息的本地通知
-> App未实现此方法或者返回NO -> SDK弹出默认的本地通知提示
您可以通过RCIM的disableMessageNotificaiton属性,关闭所有的本地通知(此时不再回调此接口)。
@warning 如果App在后台想使用SDK默认的本地通知提醒,需要实现用户/群组/群名片信息提供者,并返回正确的用户信息或群组信息。
参考RCIMUserInfoDataSource、RCIMGroupInfoDataSource与RCIMGroupUserInfoDataSource
*/
-(BOOL)onRCIMCustomLocalNotification:(RCMessage*)message
withSenderName:(NSString *)senderName;
@end
为什么收不到远程推送?
参考收不到远程推送排查步骤
怎么获取远程推送和本地通知的内容?
参考
单击通知栏,如何跳到对应的会话?
参考点击通知栏跳转相应会话页面
远程推送和本地通知有何区别?
参考区分远程推送和本地通知
为什么iOS9中收到重复的远程推送问题?
参考iOS9收到重复推送
iOSSDK本地通知的内容格式
参考SDK本地通知的内容格式
使用融云IM时,何时会收到远程推送、如何使用远程推送及获得远程推送的内容,请查看远程推送详解。
会话列表自定义cell
参考怎样自定义会话列表的cell。
会话列表头像样式更改
IMKit的核心类RCIM中:
/*!
SDK会话列表界面中显示的头像形状,矩形或者圆形
@discussion 默认值为矩形,即RC_USER_AVATAR_RECTANGLE
*/
@property(nonatomic) RCUserAvatarStyle globalConversationAvatarStyle;
/*!
SDK会话列表界面中显示的头像大小,高度必须大于或者等于36
@discussion 默认值为46*46
*/
@property(nonatomic) CGSize globalConversationPortraitSize;
会话列表自带cell样式设置:
会话列表自带cell样式如字体色泽,字体大小的更改(不建议设置cell的布局,如果对UI比较高的定制需求,建议自定义会话列表cell,参考怎样自定义会话列表的cell?
/*!
即将显示Cell的回调
@param cell 即将显示的Cell
@param indexPath 该Cell对应的会话Cell数据模型在数据源中的索引值
@discussion 您可以在此回调中修改Cell的一些显示属性。
*/
- (void)willDisplayConversationTableCell:(RCConversationBaseCell *)cell
atIndexPath:(NSIndexPath *)indexPath;
即使必须判定会话类型做更改,RCConversationBaseCell中可以直接取到数据model:
/*!
会话Cell的数据模型
*/
@property(nonatomic, strong) RCConversationModel *model;
注:RCConversationBaseCell是会话列表cell的子类,如果您想对cell中某个控件的形状,字体大小等做更改,需要在上述步骤中把RCConversationBaseCell强转成子类RCConversationCell,再取相关控件做更改
参考自定义SDK会话列表Cell的样式
自定义会话列表为空时的视图:
/*!
列表为空时显示的View
*/
@property(nonatomic, strong) UIView *emptyConversationView;
参考会话列表为空,空视图的设定方式
cell背景色修改:
/*!
Cell的背景颜色
*/
@property(nonatomic, strong) UIColor *cellBackgroundColor;
/*!
置顶会话的Cell背景颜色
*/
@property(nonatomic, strong) UIColor *topCellBackgroundColor;
会话列表加header:
可以直接给会话列表conversationListTableView的tableHeaderView添加视图
会话列表隐藏网络状态:
/*!
当网络断开时,是否在Tabel View Header中显示网络连接不可用的提示。
@discussion 默认值为YES。
*/
@property(nonatomic, assign) BOOL isShowNetworkIndicatorView;
会话列表未读消息提示样式设置:
会话列表的RCConversationCell中有以下属性
/*!
会话中有未读消息时,是否在头像右上角的bubbleTipView中显示数字
@discussion 默认值为YES。
您可以在RCConversationListViewController的willDisplayConversationTableCell:atIndexPath:回调中进行设置。
*/
@property(nonatomic, assign) BOOL isShowNotificationNumber;
RCConversationViewController为会话页面视图控制器类,继承于UICollectionViewController,您可以直接使用,也可以继承设置定制。
会话页面中的cell为RCMessageBaseCell,Model为RCMessageModel,数据的来源为本地存储的消息实体(RCMessage)。
conversationType和targetId唯一标志了当前会话页面所处的会话。
// RCConversationViewController Class
/*!
初始化会话页面
@param conversationType 会话类型
@param targetId 目标会话ID
@return 会话页面对象
*/
- (id)initWithConversationType:(RCConversationType)conversationType
targetId:(NSString *)targetId;
#pragma mark - 会话属性
/*!
当前会话的会话类型
*/
@property(nonatomic) RCConversationType conversationType;
/*!
目标会话ID
*/
@property(nonatomic, strong) NSString *targetId;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-121563-3.html
恶意投诉
不申请通过就构成入侵中国领海