fix:修改图标和其他
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AvailableLibraries</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BinaryPath</key>
|
||||
<string>RongIMWrapper.framework/RongIMWrapper</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-x86_64-simulator</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>RongIMWrapper.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>x86_64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
<key>SupportedPlatformVariant</key>
|
||||
<string>simulator</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BinaryPath</key>
|
||||
<string>RongIMWrapper.framework/RongIMWrapper</string>
|
||||
<key>LibraryIdentifier</key>
|
||||
<string>ios-arm64</string>
|
||||
<key>LibraryPath</key>
|
||||
<string>RongIMWrapper.framework</string>
|
||||
<key>SupportedArchitectures</key>
|
||||
<array>
|
||||
<string>arm64</string>
|
||||
</array>
|
||||
<key>SupportedPlatform</key>
|
||||
<string>ios</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XFWK</string>
|
||||
<key>XCFrameworkFormatVersion</key>
|
||||
<string>1.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// RCIMIWBlockedMessageInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/20/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWBlockedMessageInfo : NSObject
|
||||
|
||||
/**
|
||||
* 会话类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWConversationType conversationType;
|
||||
|
||||
/**
|
||||
* 会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/**
|
||||
* 被拦截的消息 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *blockedMsgUId;
|
||||
|
||||
/**
|
||||
* 拦截原因
|
||||
* 1,全局敏感词:命中了融云内置的全局敏感词
|
||||
* 2,自定义敏感词拦截:命中了客户在融云自定义的敏感词
|
||||
* 3,第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWMessageBlockType blockType;
|
||||
|
||||
/**
|
||||
* 附加信息
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *extra;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// RCIMIWChatRoomMemberAction.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/23/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWChatRoomMemberAction : NSObject
|
||||
|
||||
/*!
|
||||
成员 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *userId;
|
||||
|
||||
/*!
|
||||
成员加入或者退出
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWChatRoomMemberActionType actionType;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,36 @@
|
||||
//
|
||||
// RCIMIWCommandMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
命令消息类
|
||||
|
||||
@discussion 命令消息类,此消息不存储不计入未读消息数。
|
||||
与 RCIMIWCommandNotificationMessage 的区别是,此消息不存储,也不会在界面上显示。
|
||||
|
||||
@remarks 通知类消息
|
||||
*/
|
||||
@interface RCIMIWCommandMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
命令的名称
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
/*!
|
||||
命令的扩展数据
|
||||
|
||||
@discussion 命令的扩展数据,可以为任意字符串,如存放您定义的json数据。
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *data;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,36 @@
|
||||
//
|
||||
// RCIMIWCommandNotificationMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
命令提醒消息类
|
||||
|
||||
@discussion 命令消息类,此消息会进行存储,但不计入未读消息数。
|
||||
与 RCIMIWCommandMessage 的区别是,此消息会进行存储并在界面上显示。
|
||||
|
||||
@remarks 通知类消息
|
||||
*/
|
||||
@interface RCIMIWCommandNotificationMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
命令提醒的名称
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
/*!
|
||||
命令提醒消息的扩展数据
|
||||
|
||||
@discussion 命令提醒消息的扩展数据,可以为任意字符串,如存放您定义的 json 数据。
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *data;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// RCIMIWCompressOptions.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/21/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWCompressOptions : NSObject
|
||||
|
||||
/*!
|
||||
原图质量压缩比 0 ~ 100,内部需要除 100
|
||||
*/
|
||||
@property (nonatomic, assign) int originalImageQuality;
|
||||
/*!
|
||||
原图最大尺寸 对应的 width height
|
||||
*/
|
||||
@property (nonatomic, assign) int originalImageSize;
|
||||
// 原图最大限制,如果图片大小不超过此值,发送原图,超过则进行压缩
|
||||
@property (nonatomic, assign) int originalImageMaxSize;
|
||||
|
||||
// 缩略图 0 ~ 1
|
||||
@property (nonatomic, assign) int thumbnailQuality;
|
||||
@property (nonatomic, assign) int thumbnailMaxSize;
|
||||
@property (nonatomic, assign) int thumbnailMinSize;
|
||||
@property (nonatomic, assign) int sightCompressWidth;
|
||||
@property (nonatomic, assign) int sightCompressHeight;
|
||||
|
||||
/**
|
||||
位置消息预览图压缩比 0 ~ 100
|
||||
*/
|
||||
@property (nonatomic, assign) int locationThumbnailQuality;
|
||||
@property (nonatomic, assign) int locationThumbnailWidth;
|
||||
@property (nonatomic, assign) int locationThumbnailHeight;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,73 @@
|
||||
//
|
||||
// Created by RongCloud on 2/16/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWMessage;
|
||||
|
||||
@interface RCIMIWConversation : NSObject
|
||||
|
||||
/*!
|
||||
会话类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWConversationType conversationType;
|
||||
|
||||
/*!
|
||||
会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
该会话的业务标识,长度限制 20 字符
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *channelId;
|
||||
|
||||
/*!
|
||||
会话中的未读消息数量
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger unreadCount;
|
||||
|
||||
/*!
|
||||
会话中 @ 消息的个数
|
||||
|
||||
@discussion 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此值置成 0。
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger mentionedCount;
|
||||
|
||||
/*!
|
||||
是否置顶,默认值为 NO
|
||||
|
||||
@discussion
|
||||
如果设置了置顶,在 IMKit 的 RCConversationListViewController 中会将此会话置顶显示。
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL top;
|
||||
|
||||
/*!
|
||||
会话中存在的草稿
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *draft;
|
||||
|
||||
/*!
|
||||
会话中最后一条消息的内容
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWMessage *lastMessage;
|
||||
|
||||
/*!
|
||||
免打扰级别
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWPushNotificationLevel notificationLevel;
|
||||
|
||||
/*!
|
||||
会话中第一条未读消息时间戳(Unix时间戳、毫秒)
|
||||
|
||||
仅支持 超级群会话
|
||||
@Since 5.2.5
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long firstUnreadMsgSendTime;
|
||||
|
||||
/// 对应原生会话对象的 sentTime
|
||||
@property (nonatomic, assign, readonly) long long operationTime;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// RCIMIWConversationTagInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/10/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
@class RCIMIWTagInfo;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWConversationTagInfo : NSObject
|
||||
|
||||
/*!
|
||||
标签 ID
|
||||
*/
|
||||
@property (nonatomic, strong) RCIMIWTagInfo *tagInfo;
|
||||
|
||||
/*!
|
||||
会话是否置顶
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL top;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWCustomMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWCustomMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *identifier;
|
||||
|
||||
@property (nonatomic, assign, readonly) RCIMIWCustomMessagePolicy policy;
|
||||
|
||||
/*!
|
||||
消息字段
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) NSDictionary<NSString*, NSString*> *fields;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,592 @@
|
||||
//
|
||||
// RCIMIWDefines.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/24/22.
|
||||
//
|
||||
|
||||
#ifndef RCIMIWDefines_h
|
||||
#define RCIMIWDefines_h
|
||||
|
||||
#pragma mark 错误码
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWErrorCode) {
|
||||
RCIMIWErrorCodeSuccess = 0,
|
||||
RCIMIWErrorCodeParamError = -101,
|
||||
RCIMIWErrorCodeEngineDestroyed = -102,
|
||||
RCIMIWErrorCodeNativeOperationError = -103,
|
||||
RCIMIWErrorCodeResultUnknown = -104,
|
||||
};
|
||||
|
||||
#pragma mark 连接状态
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWConnectionStatus) {
|
||||
|
||||
/*!
|
||||
连接过程中,当前设备网络不可用
|
||||
|
||||
@discussion 当网络恢复可用时,SDK 会做好自动重连,开发者无须处理。
|
||||
*/
|
||||
RCIMIWConnectionStatusNetworkUnavailable = 0,
|
||||
|
||||
/*!
|
||||
连接成功
|
||||
*/
|
||||
RCIMIWConnectionStatusConnected = 1,
|
||||
|
||||
/*!
|
||||
连接中
|
||||
*/
|
||||
RCIMIWConnectionStatusConnecting = 2,
|
||||
|
||||
/*!
|
||||
连接失败或未连接
|
||||
*/
|
||||
RCIMIWConnectionStatusUnconnected = 3,
|
||||
|
||||
/*!
|
||||
当前用户在其他设备上登录,此设备被踢下线
|
||||
*/
|
||||
RCIMIWConnectionStatusKickedOfflineByOtherClient = 4,
|
||||
|
||||
/*!
|
||||
Token无效
|
||||
|
||||
@discussion
|
||||
Token 无效一般有两种原因。一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey
|
||||
是否一致;二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token
|
||||
并再次用新的 token 建立连接。
|
||||
*/
|
||||
RCIMIWConnectionStatusTokenIncorrect = 5,
|
||||
|
||||
/*!
|
||||
与服务器的连接已断开,用户被封禁
|
||||
*/
|
||||
RCIMIWConnectionStatusConnUserBlocked = 6,
|
||||
|
||||
/*!
|
||||
已登出
|
||||
*/
|
||||
RCIMIWConnectionStatusSignOut = 7,
|
||||
|
||||
/*!
|
||||
连接暂时挂起(多是由于网络问题导致),SDK 会在合适时机进行自动重连
|
||||
*/
|
||||
RCIMIWConnectionStatusSuspend = 8,
|
||||
|
||||
/*!
|
||||
自动连接超时,SDK 将不会继续连接,用户需要做超时处理,再自行调用 connectWithToken 接口进行连接
|
||||
*/
|
||||
RCIMIWConnectionStatusTimeout = 9,
|
||||
|
||||
/*!
|
||||
未知状态
|
||||
|
||||
@discussion 建立连接中出现异常的临时状态,SDK 会做好自动重连,开发者无须处理。
|
||||
*/
|
||||
RCIMIWConnectionStatusUnknown = 10,
|
||||
};
|
||||
|
||||
|
||||
#pragma mark 会话类型
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWConversationType) {
|
||||
/*!
|
||||
无效类型
|
||||
*/
|
||||
RCIMIWConversationTypeInvalid = 0,
|
||||
|
||||
/*!
|
||||
单聊
|
||||
*/
|
||||
RCIMIWConversationTypePrivate = 1,
|
||||
|
||||
/*!
|
||||
群组
|
||||
*/
|
||||
RCIMIWConversationTypeGroup = 2,
|
||||
|
||||
/*!
|
||||
聊天室
|
||||
*/
|
||||
RCIMIWConversationTypeChatroom = 3,
|
||||
|
||||
/*!
|
||||
系统会话
|
||||
*/
|
||||
RCIMIWConversationTypeSystem = 4,
|
||||
|
||||
/*!
|
||||
超级群
|
||||
*/
|
||||
RCIMIWConversationTypeUltraGroup = 5,
|
||||
|
||||
};
|
||||
|
||||
#pragma mark 消息类型
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWMessageType) {
|
||||
|
||||
/*!
|
||||
未知消息
|
||||
*/
|
||||
RCIMIWMessageTypeUnknown = 0,
|
||||
|
||||
/*!
|
||||
自定义
|
||||
*/
|
||||
RCIMIWMessageTypeCustom = 1,
|
||||
|
||||
/*!
|
||||
文本
|
||||
*/
|
||||
RCIMIWMessageTypeText = 2,
|
||||
|
||||
/*!
|
||||
语音
|
||||
*/
|
||||
RCIMIWMessageTypeVoice = 3,
|
||||
|
||||
/*!
|
||||
图片
|
||||
*/
|
||||
RCIMIWMessageTypeImage = 4,
|
||||
|
||||
/*!
|
||||
其他文件
|
||||
*/
|
||||
RCIMIWMessageTypeFile = 5,
|
||||
|
||||
/*!
|
||||
小视频
|
||||
*/
|
||||
RCIMIWMessageTypeSight = 6,
|
||||
|
||||
/*!
|
||||
动图
|
||||
*/
|
||||
RCIMIWMessageTypeGIF = 7,
|
||||
|
||||
/*!
|
||||
撤回
|
||||
*/
|
||||
RCIMIWMessageTypeRecall = 8,
|
||||
|
||||
/*!
|
||||
引用消息
|
||||
*/
|
||||
RCIMIWMessageTypeReference = 9,
|
||||
|
||||
/*!
|
||||
命令消息
|
||||
*/
|
||||
RCIMIWMessageTypeCommand = 10,
|
||||
|
||||
/*!
|
||||
命令通知消息
|
||||
*/
|
||||
RCIMIWMessageTypeCommandNotification = 11,
|
||||
|
||||
/*!
|
||||
位置消息
|
||||
*/
|
||||
RCIMIWMessageTypeLocation = 12,
|
||||
|
||||
/*!
|
||||
用户自定义消息
|
||||
*/
|
||||
RCIMIWMessageTypeUserCustom = 13,
|
||||
|
||||
/*!
|
||||
原生自定义普通消息
|
||||
*/
|
||||
RCIMIWMessageTypeNativeCustom = 14,
|
||||
|
||||
/*!
|
||||
原生自定义媒体消息
|
||||
*/
|
||||
RCIMIWMessageTypeNativeCustomMedia = 15,
|
||||
};
|
||||
|
||||
#pragma mark 自定义消息的类别
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWCustomMessagePolicy) {
|
||||
RCIMIWCustomMessagePolicyCommand = 0,
|
||||
RCIMIWCustomMessagePolicyNormal,
|
||||
RCIMIWCustomMessagePolicyStatus,
|
||||
RCIMIWCustomMessagePolicyStorage,
|
||||
};
|
||||
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWNativeCustomMessagePersistentFlag) {
|
||||
RCIMIWNativeCustomMessagePersistentNone,
|
||||
/// 在本地只存储,但不计入未读数
|
||||
RCIMIWNativeCustomMessagePersistentPersisted,
|
||||
/// 在本地进行存储并计入未读数
|
||||
RCIMIWNativeCustomMessagePersistentCounted,
|
||||
/// 在本地不存储,不计入未读数,并且如果对方不在线,服务器会直接丢弃该消息,对方如果之后再上线也不会再收到此消息。
|
||||
/// 一般用于发送输入状态之类的消息。
|
||||
RCIMIWNativeCustomMessagePersistentStatus,
|
||||
};
|
||||
|
||||
#pragma mark 消息的方向
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMessageDirection) {
|
||||
/*!
|
||||
* 发送
|
||||
*/
|
||||
RCIMIWMessageDirectionSend = 0,
|
||||
|
||||
/*!
|
||||
* 接收
|
||||
*/
|
||||
RCIMIWMessageDirectionReceive = 1,
|
||||
};
|
||||
|
||||
/*!
|
||||
* 消息的发送状态
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWSentStatus) {
|
||||
/*!
|
||||
* 发送中
|
||||
*/
|
||||
RCIMIWSentStatusSending = 0,
|
||||
|
||||
/*!
|
||||
* 发送失败
|
||||
*/
|
||||
RCIMIWSentStatusFailed = 1,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已发送成功
|
||||
*/
|
||||
RCIMIWSentStatusSent = 2,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
对方已接收
|
||||
*/
|
||||
RCIMIWSentStatusReceived = 3,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
对方已阅读
|
||||
*/
|
||||
RCIMIWSentStatusRead = 4,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
对方已销毁
|
||||
*/
|
||||
RCIMIWSentStatusDestroyed = 5,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
发送已取消
|
||||
*/
|
||||
RCIMIWSentStatusCanceled = 6,
|
||||
};
|
||||
|
||||
#pragma mark 消息的接收状态
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWReceivedStatus) {
|
||||
/*!
|
||||
* \~chinese
|
||||
未读
|
||||
*/
|
||||
RCIMIWReceivedStatusUnread = 0,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已读
|
||||
*/
|
||||
RCIMIWReceivedStatusRead = 1,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已听
|
||||
|
||||
@discussion 仅用于语音消息
|
||||
*/
|
||||
RCIMIWReceivedStatusListened = 2,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已下载
|
||||
*/
|
||||
RCIMIWReceivedStatusDownloaded = 3,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
该消息已经被其他登录的多端收取过。(即该消息已经被其他端收取过后。当前端才登录,并重新拉取了这条消息。客户可以通过这个状态更新
|
||||
UI,比如不再提示)。
|
||||
*/
|
||||
RCIMIWReceivedStatusRetrieved = 4,
|
||||
|
||||
/*!
|
||||
* 该消息是被多端同时收取的。(即其他端正同时登录,一条消息被同时发往多端。客户可以通过这个状态值更新自己的某些 UI
|
||||
* 状态)。
|
||||
*/
|
||||
RCIMIWReceivedStatusMultipleReceive = 5,
|
||||
|
||||
};
|
||||
|
||||
#pragma mark @消息的类型
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMentionedType) {
|
||||
|
||||
/*!
|
||||
@ 所有人
|
||||
*/
|
||||
RCIMIWMentionedTypeAll = 0,
|
||||
|
||||
/*!
|
||||
@ 部分人
|
||||
*/
|
||||
RCIMIWMentionedTypePart = 1,
|
||||
};
|
||||
|
||||
#pragma mark 时间顺序
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWTimeOrder) {
|
||||
/*!
|
||||
以前的时间
|
||||
*/
|
||||
RCIMIWTimeOrderBefore = 0,
|
||||
|
||||
/*!
|
||||
以后的时间
|
||||
*/
|
||||
RCIMIWTimeOrderAfter = 1,
|
||||
};
|
||||
|
||||
#pragma mark 加载消息策略
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMessageOperationPolicy) {
|
||||
RCIMIWMessageOperationPolicyLocal = 0,
|
||||
RCIMIWMessageOperationPolicyRemote = 1,
|
||||
RCIMIWMessageOperationPolicyLocalRemote = 2,
|
||||
};
|
||||
|
||||
#pragma mark 聊天室状态
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWChatRoomStatus) {
|
||||
RCIMIWChatRoomStatusReset = 0,
|
||||
RCIMIWChatRoomStatusDestroyManual = 1,
|
||||
RCIMIWChatRoomStatusDestroyAuto = 2,
|
||||
};
|
||||
|
||||
#pragma mark 聊天室成员加入或者退出
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWChatRoomMemberActionType) {
|
||||
|
||||
RCIMIWChatRoomMemberActionTypeUnknown = 0,
|
||||
|
||||
/*!
|
||||
聊天室成员加入
|
||||
*/
|
||||
RCIMIWChatRoomMemberActionTypeJoin = 1,
|
||||
|
||||
/*!
|
||||
聊天室成员退出
|
||||
*/
|
||||
RCIMIWChatRoomMemberActionTypeLeave = 2,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWBlacklistStatus) {
|
||||
RCIMIWBlacklistStatusUnknown = 0,
|
||||
RCIMIWBlacklistStatusInBlacklist = 1,
|
||||
RCIMIWBlacklistStatusNotInBlacklist = 2,
|
||||
};
|
||||
|
||||
#pragma mark 消息被拦截类型
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMessageBlockType) {
|
||||
|
||||
RCIMIWMessageBlockTypeUnknown = 0,
|
||||
|
||||
/*!
|
||||
全局敏感词:命中了融云内置的全局敏感词
|
||||
*/
|
||||
RCIMIWMessageBlockTypeGlobal,
|
||||
|
||||
/*!
|
||||
自定义敏感词拦截:命中了客户在融云自定义的敏感词
|
||||
*/
|
||||
RCIMIWMessageBlockTypeCustom,
|
||||
|
||||
/*!
|
||||
第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
|
||||
*/
|
||||
RCIMIWMessageBlockTypeThirdParty,
|
||||
};
|
||||
|
||||
|
||||
#pragma mark 通知状态
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWNotificationStatus) {
|
||||
RCIMIWNotificationStatusUnknown = 0,
|
||||
RCIMIWNotificationStatusMute = 1,
|
||||
RCIMIWNotificationStatusUnmute = 2,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWUltraGroupTypingStatus) {
|
||||
/*!
|
||||
正在输入文本
|
||||
*/
|
||||
RCIMIWUltraGroupTypingStatusText = 0,
|
||||
};
|
||||
|
||||
/**
|
||||
VIVO 推送通道类options.typeVivo型
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWVIVOPushType) {
|
||||
/**
|
||||
运营消息
|
||||
*/
|
||||
RCIMIWVIVOPushTypeOperate,
|
||||
|
||||
/**
|
||||
系统消息
|
||||
*/
|
||||
RCIMIWVIVOPushTypeSystem,
|
||||
};
|
||||
|
||||
#pragma mark 日志级别
|
||||
/*!
|
||||
日志级别
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWLogLevel) {
|
||||
|
||||
/*!
|
||||
* 不输出任何日志
|
||||
*/
|
||||
RCIMIWLogLevelNone = 0,
|
||||
|
||||
/*!
|
||||
* 只输出错误的日志
|
||||
*/
|
||||
RCIMIWLogLevelError = 1,
|
||||
|
||||
/*!
|
||||
* 输出错误和警告的日志
|
||||
*/
|
||||
RCIMIWLogLevelWarn = 2,
|
||||
|
||||
/*!
|
||||
* 输出错误、警告和一般的日志
|
||||
*/
|
||||
RCIMIWLogLevelInfo = 3,
|
||||
|
||||
/*!
|
||||
* 输出输出错误、警告和一般的日志以及 debug 日志
|
||||
*/
|
||||
RCIMIWLogLevelDebug = 4,
|
||||
|
||||
/*!
|
||||
* 输出所有日志
|
||||
*/
|
||||
RCIMIWLogLevelVerbose = 5,
|
||||
};
|
||||
|
||||
#pragma mark 消息免打扰级别
|
||||
/*!
|
||||
消息免打扰级别
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCIMIWPushNotificationQuietHoursLevel) {
|
||||
|
||||
/*!
|
||||
未设置(向上查询群或者APP级别设置)
|
||||
*/
|
||||
RCIMIWPushNotificationQuietHoursLevelNone = 0,
|
||||
/*!
|
||||
群聊超级群仅@消息通知,单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationQuietHoursLevelMention = 1,
|
||||
/*!
|
||||
消息通知被屏蔽,即不接收消息通知
|
||||
*/
|
||||
RCIMIWPushNotificationQuietHoursLevelBlocked = 5,
|
||||
};
|
||||
|
||||
#pragma mark 消息通知级别
|
||||
/*!
|
||||
消息通知级别
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCIMIWPushNotificationLevel) {
|
||||
/*!
|
||||
全部消息通知(接收全部消息通知 -- 显示指定关闭免打扰功能)
|
||||
*/
|
||||
RCIMIWPushNotificationLevelAllMessage = -1,
|
||||
/*!
|
||||
未设置(向上查询群或者APP级别设置),存量数据中0表示未设置
|
||||
*/
|
||||
RCIMIWPushNotificationLevelNone = 0,
|
||||
/*!
|
||||
群聊,超级群 @所有人 或者 @成员列表有自己 时通知;单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelMention = 1,
|
||||
/*!
|
||||
群聊,超级群 @成员列表有自己时通知,@所有人不通知;单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelMentionUsers = 2,
|
||||
/*!
|
||||
群聊,超级群 @所有人通知,其他情况都不通知;单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelMentionAll = 4,
|
||||
/*!
|
||||
消息通知被屏蔽,即不接收消息通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelBlocked = 5,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWChatRoomEntriesOperationType) {
|
||||
RCIMIWChatRoomEntriesOperationTypeUpdate = 0,
|
||||
RCIMIWChatRoomEntriesOperationTypeRemove = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
华为推送消息级别
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWImportanceHW) {
|
||||
/*!
|
||||
华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。
|
||||
*/
|
||||
RCIMIWImportanceHWNormal = 0,
|
||||
|
||||
/*!
|
||||
华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。
|
||||
*/
|
||||
RCIMIWImportanceHWLow = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
荣耀推送消息级别
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWImportanceHonor) {
|
||||
/*!
|
||||
华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。
|
||||
*/
|
||||
RCIMIWImportanceHonorNormal = 0,
|
||||
|
||||
/*!
|
||||
华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。
|
||||
*/
|
||||
RCIMIWImportanceHonorLow = 1,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWAreaCode) {
|
||||
/// 默认值,北京数据中心
|
||||
RCIMIWAreaCodeBJ = 1,
|
||||
/// 新加坡数据中心
|
||||
RCIMIWAreaCodeSG = 2,
|
||||
/// 北美数据中心
|
||||
RCIMIWAreaCodeNA = 3,
|
||||
/// 新增的新加坡数据中心
|
||||
RCIMIWAreaCodeSGB = 4,
|
||||
/// 沙特数据中心
|
||||
RCIMIWAreaCodeSA = 5,
|
||||
};
|
||||
|
||||
#endif /* RCIMIWDefines_h */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,664 @@
|
||||
//
|
||||
// RCIMIWEngineDelegate.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWConversation.h>
|
||||
#import <RongIMWrapper/RCIMIWChatRoomMemberAction.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWMessage;
|
||||
@class RCIMIWMediaMessage;
|
||||
@class RCIMIWConversation;
|
||||
@class RCIMIWTypingStatus;
|
||||
@class RCIMIWTagInfo;
|
||||
@class RCIMIWConversationTagInfo;
|
||||
@class RCIMIWBlockedMessageInfo;
|
||||
@class RCIMIWUltraGroupTypingStatusInfo;
|
||||
@class RCIMIWSearchConversationResult;
|
||||
|
||||
#ifndef RCIMIWEngineDelegate_h
|
||||
#define RCIMIWEngineDelegate_h
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RCIMIWEngineDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
|
||||
#pragma mark - 事件监听
|
||||
|
||||
/*!
|
||||
连接状态监听
|
||||
*/
|
||||
- (void)onConnectionStatusChanged:(RCIMIWConnectionStatus)status;
|
||||
|
||||
/*!
|
||||
接收消息的回调方法
|
||||
|
||||
@param message 当前接收到的消息
|
||||
@param left 还剩余的未接收的消息数,left>=0
|
||||
@param offline 是否是离线消息
|
||||
@param hasPackage SDK 拉取服务器的消息以包(package)的形式批量拉取,有 package 存在就意味着远端服务器还有消息尚未被 SDK
|
||||
拉取
|
||||
@discussion 和上面的 - (void)onReceived:(RCMessage *)message left:(int)nLeft object:(id)object 功能完全一致,额外把
|
||||
offline 和 hasPackage 参数暴露,开发者可以根据 nLeft、offline、hasPackage 来决定何时的时机刷新 UI ;建议当 hasPackage=0
|
||||
并且 nLeft=0 时刷新 UI
|
||||
@warning 如果使用此方法,那么就不能再使用 RCIM 中 - (void)onReceived:(RCMessage *)message left:(int)nLeft
|
||||
object:(id)object 的使用,否则会出现重复操作的情形
|
||||
*/
|
||||
- (void)onMessageReceived:(RCIMIWMessage *)message
|
||||
left:(NSInteger)left
|
||||
offline:(BOOL)offline
|
||||
hasPackage:(BOOL)hasPackage;
|
||||
|
||||
#pragma mark - 接口调用回调
|
||||
|
||||
- (void)onConnected:(NSInteger)code userId:(nullable NSString *)userId;
|
||||
|
||||
- (void)onDatabaseOpened:(NSInteger)code;
|
||||
// 消息插入本地数据库
|
||||
- (void)onMessageAttached:(RCIMIWMessage *)message;
|
||||
|
||||
- (void)onMediaMessageAttached:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onMessageSent:(NSInteger)code message:(nullable RCIMIWMessage *)message;
|
||||
|
||||
- (void)onMediaMessageSent:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onMediaMessageSending:(RCIMIWMediaMessage*)message progress:(int)progress;
|
||||
|
||||
- (void)onSendingMediaMessageCanceled:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onMediaMessageDownloading:(RCIMIWMediaMessage *)message progress:(int)progress;
|
||||
|
||||
- (void)onMediaMessageDownloaded:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onDownloadingMediaMessageCanceled:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onGroupMessageToDesignatedUsersAttached:(RCIMIWMessage *)message;
|
||||
|
||||
- (void)onGroupMessageToDesignatedUsersSent:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
#pragma mark - 获取历史消息
|
||||
|
||||
- (void)onMessagesLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
sentTime:(long long)sentTime
|
||||
order:(RCIMIWTimeOrder)order
|
||||
messages:(nullable NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onUnreadMentionedMessagesLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onFirstUnreadMessageLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
message:(RCIMIWMessage *)message;
|
||||
|
||||
#pragma mark - 插入消息
|
||||
|
||||
- (void)onMessageInserted:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
/*!
|
||||
批量插入消息
|
||||
*/
|
||||
- (void)onMessagesInserted:(NSInteger)code messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
#pragma mark - 删除消息
|
||||
|
||||
- (void)onMessagesCleared:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)recordTime;
|
||||
|
||||
- (void)onLocalMessagesDeleted:(NSInteger)code messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onMessagesDeleted:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
#pragma mark - 撤回消息
|
||||
|
||||
/*!
|
||||
本端调用撤回消息的回调
|
||||
*/
|
||||
- (void)onMessageRecalled:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
/*!
|
||||
远端撤回消息
|
||||
*/
|
||||
- (void)onRemoteMessageRecalled:(RCIMIWMessage *)message;
|
||||
|
||||
- (void)onPrivateReadReceiptMessageSent:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
- (void)onMessageExpansionUpdated:(NSInteger)code
|
||||
messageUId:(NSString *)messageUId
|
||||
expansion:(NSDictionary<NSString *, NSString *> *)expansion;
|
||||
|
||||
- (void)onMessageExpansionForKeysRemoved:(NSInteger)code
|
||||
messageUId:(NSString *)messageUId
|
||||
keys:(NSArray<NSString *> *)keys;
|
||||
/**
|
||||
远端更改消息扩展信息的回调
|
||||
|
||||
@param expansion 消息扩展信息中更新的键值对
|
||||
@param message 消息
|
||||
|
||||
@discussion expansionDic 只包含更新的键值对,不是全部的数据。如果想获取全部的键值对,请使用 message 的 expansion 属性。
|
||||
*/
|
||||
- (void)onRemoteMessageExpansionUpdated:(NSDictionary<NSString *,NSString *> *)expansion message:(RCIMIWMessage *)message;
|
||||
|
||||
/**
|
||||
远端删除消息扩展信息的回调
|
||||
*/
|
||||
- (void)onRemoteMessageExpansionForKeyRemoved:(RCIMIWMessage *)message keys:(NSArray<NSString *> *)keys;
|
||||
|
||||
- (void)onMessageReceiveStatusChanged:(NSInteger)code messageId:(long)messageId;
|
||||
|
||||
- (void)onMessageSentStatusChanged:(NSInteger)code messageId:(long)messageId;
|
||||
|
||||
- (void)onMessageBlocked:(RCIMIWBlockedMessageInfo *)info;
|
||||
|
||||
#pragma mark - Conversation
|
||||
|
||||
- (void)onConversationLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
conversation:(nullable RCIMIWConversation *)conversation;
|
||||
|
||||
- (void)onConversationsLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
startTime:(long long)startTime
|
||||
count:(int)count
|
||||
conversations:(nullable NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onConversationRemoved:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId;
|
||||
|
||||
- (void)onConversationsRemoved:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId;
|
||||
|
||||
- (void)onMessageCountLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
count:(int)count;
|
||||
|
||||
- (void)onTotalUnreadCountLoaded:(NSInteger)code channelId:(NSString *)channelId count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadCountLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadCountByConversationTypesLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
contain:(BOOL)contain
|
||||
count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadMentionedCountLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadCountCleared:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
#pragma mark - 会话草稿
|
||||
|
||||
- (void)onDraftMessageSaved:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
draft:(NSString *)draft;
|
||||
|
||||
- (void)onDraftMessageLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
draft:(NSString *)draft;
|
||||
|
||||
- (void)onDraftMessageCleared:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId;
|
||||
|
||||
#pragma mark - 会话免打扰
|
||||
|
||||
- (void)onConversationNotificationLevelChanged:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onConversationNotificationLevelLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onBlockedConversationsLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
conversations:(nullable NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onConversationNotificationLevelSynced:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onConversationTypeNotificationLevelChanged:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onConversationTypeNotificationLevelLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
#pragma mark - 会话置顶
|
||||
|
||||
- (void)onConversationTopStatusChanged:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onConversationTopStatusLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onTopConversationsLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
conversations:(nullable NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onConversationTopStatusSynced:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
top:(BOOL)top;
|
||||
|
||||
|
||||
#pragma mark - 多端状态同步
|
||||
|
||||
- (void)onConversationReadStatusSynced:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
#pragma mark - 单聊回执
|
||||
|
||||
- (void)onPrivateReadReceiptReceived:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
/**
|
||||
* 收到自己登录的其他端消息同步阅读状态
|
||||
* @param type 会话类型
|
||||
* @param targetId 目标 ID
|
||||
* 消息时间戳,表示小于或等于此时间戳之前的消息为已读
|
||||
*/
|
||||
- (void)onConversationReadStatusSyncMessageReceived:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
#pragma mark - 群聊回执
|
||||
|
||||
/*!
|
||||
发起回执请求
|
||||
*/
|
||||
- (void)onGroupReadReceiptRequestSent:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
/*!
|
||||
发起回执响应
|
||||
*/
|
||||
- (void)onGroupReadReceiptResponseSent:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
messages:(NSArray <RCIMIWMessage *> *)messages;
|
||||
|
||||
/*!
|
||||
群聊消息回执请求监听
|
||||
*/
|
||||
- (void)onGroupMessageReadReceiptRequestReceived:(NSString *)targetId messageUId:(NSString *)messageUId;
|
||||
|
||||
/*!
|
||||
群聊消息回执响应监听
|
||||
*/
|
||||
- (void)onGroupMessageReadReceiptResponseReceived:(NSString *)targetId messageUId:(NSString *)messageUId respondUserIds:(NSDictionary<NSString *, NSNumber *> *)respondUserIds;
|
||||
|
||||
#pragma mark - 输入状态
|
||||
|
||||
- (void)onTypingStatusChanged:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
userTypingStatus:(NSArray<RCIMIWTypingStatus *> *)userTypingStatus;
|
||||
|
||||
#pragma mark - 聊天室
|
||||
|
||||
- (void)onChatRoomJoining:(NSString *)targetId;
|
||||
|
||||
- (void)onChatRoomJoined:(NSInteger)code targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onChatRoomLeft:(NSInteger)code targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onChatRoomStatusChanged:(NSString *)targetId status:(RCIMIWChatRoomStatus)status;
|
||||
|
||||
- (void)onChatRoomMemberChanged:(NSString *)targetId actions:(NSArray<RCIMIWChatRoomMemberAction *> *)actions;
|
||||
|
||||
- (void)onChatRoomMessagesLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages
|
||||
syncTime:(long long)syncTime;
|
||||
|
||||
- (void)onChatRoomEntryAdded:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key;
|
||||
|
||||
- (void)onChatRoomEntriesAdded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
entries:(NSDictionary<NSString *, NSString *> *)entries
|
||||
errorEntries:(NSDictionary<NSString *, NSNumber *> *)errorEntries;
|
||||
|
||||
- (void)onChatRoomEntryLoaded:(NSInteger)code targetId:(NSString *)targetId entry:(NSDictionary<NSString *, NSString *> *)entry;
|
||||
|
||||
- (void)onChatRoomAllEntriesLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
entries:(NSDictionary<NSString *, NSString*> *)entries;
|
||||
|
||||
- (void)onChatRoomEntryRemoved:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key;
|
||||
|
||||
- (void)onChatRoomEntriesRemoved:(NSInteger)code targetId:(NSString *)targetId keys:(NSArray<NSString *> *)keys;
|
||||
|
||||
// kv 同步完成
|
||||
- (void)onChatRoomEntriesSynced:(NSString *)roomId;
|
||||
|
||||
// kv 改变回调,包含更新和删除
|
||||
- (void)onChatRoomEntriesChanged:(RCIMIWChatRoomEntriesOperationType)operationType
|
||||
roomId:(NSString *)roomId
|
||||
entries:(NSDictionary<NSString *, NSString*> *)entries;
|
||||
|
||||
#pragma mark - 用户管理
|
||||
|
||||
- (void)onBlacklistAdded:(NSInteger)code userId:(NSString *)userId;
|
||||
|
||||
- (void)onBlacklistRemoved:(NSInteger)code userId:(NSString *)userId;
|
||||
|
||||
- (void)onBlacklistLoaded:(NSInteger)code userIds:(NSArray<NSString *> *)userIds;
|
||||
|
||||
- (void)onBlacklistStatusLoaded:(NSInteger)code userId:(NSString *)userId status:(RCIMIWBlacklistStatus)status;
|
||||
|
||||
#pragma mark - 搜索消息
|
||||
|
||||
- (void)onMessagesSearched:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
keyword:(NSString *)keyword
|
||||
startTime:(long long)startTime
|
||||
count:(int)count
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onMessagesSearchedByTimeRange:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
keyword:(NSString *)keyword
|
||||
startTime:(long long)startTime
|
||||
endTime:(long long)endTime
|
||||
offset:(int)offset
|
||||
count:(int)count
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onMessagesSearchedByUserId:(NSInteger)code
|
||||
userId:(NSString *)userId
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
startTime:(long long)startTime
|
||||
count:(int)count
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onConversationsSearched:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
messageTypes:(NSArray <NSNumber *>*)messageTypes
|
||||
keyword:(NSString *)keyword
|
||||
conversations:(NSArray<RCIMIWSearchConversationResult *> *)conversations;
|
||||
|
||||
#pragma mark - 会话标签
|
||||
|
||||
- (void)onTagCreated:(NSInteger)code tagId:(NSString *)tagId tagName:(NSString *)tagName;
|
||||
|
||||
- (void)onTagRemoved:(NSInteger)code tagId:(NSString *)tagId;
|
||||
|
||||
- (void)onTagNameUpdatedByName:(NSInteger)code tagId:(NSString *)tagId newName:(NSString *)newName;
|
||||
|
||||
- (void)onTagsLoaded:(NSInteger)code tags:(NSArray<RCIMIWTagInfo *> *)tags;
|
||||
|
||||
- (void)onConversationsAddedToTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onConversationsRemovedFromTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType: (RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onTagsRemovedFromConversation:(NSInteger)code
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
tagIds:(NSArray<NSString *> *)tagIds;
|
||||
|
||||
- (void)onTagsLoadedFromConversation:(NSInteger)code
|
||||
tags:(NSArray<RCIMIWConversationTagInfo *> *)tags
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onConversationsLoadedFromTagByPage:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
timestamp:(long long)timestamp
|
||||
count:(int)count;
|
||||
|
||||
- (void)onUnreadCountLoadedByTag:(NSInteger)code
|
||||
count:(NSInteger)count
|
||||
tagId:(NSString *)tagId
|
||||
containBlocked:(BOOL)containBlocked;
|
||||
|
||||
- (void)onConversationTopStatusChangedInTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onConversationTopStatusLoadedInTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onMessagesUnreadStatusClearedByTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId;
|
||||
|
||||
- (void)onConversationClearedByTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
deleteMessage:(BOOL)deleteMessage;
|
||||
|
||||
#pragma mark - 全局免打扰
|
||||
|
||||
- (void)onNotificationQuietHoursChanged:(NSInteger)code
|
||||
startTime:(NSString *)startTime
|
||||
spanMinutes:(int)spanMinutes
|
||||
level:(RCIMIWPushNotificationQuietHoursLevel)level;
|
||||
|
||||
- (void)onNotificationQuietHoursRemoved:(NSInteger)code;
|
||||
|
||||
- (void)onNotificationQuietHoursLoaded:(NSInteger)code
|
||||
startTime:(NSString *)startTime
|
||||
spanMinutes:(int)spanMinutes
|
||||
level:(RCIMIWPushNotificationQuietHoursLevel)level;
|
||||
|
||||
- (void)onPushContentShowStatusChanged:(NSInteger)code showContent:(BOOL)showContent;
|
||||
|
||||
- (void)onPushLanguageChanged:(NSInteger)code language:(NSString *)language;
|
||||
|
||||
- (void)onPushReceiveStatusChanged:(NSInteger)code receive:(BOOL)receive;
|
||||
|
||||
#pragma mark - 超级群
|
||||
|
||||
|
||||
- (void)onUltraGroupConversationsSynced;
|
||||
|
||||
- (void)onUltraGroupReadStatusSynced:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
- (void)onConversationsLoadedForAllChannel:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
conversations:(NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onUltraGroupMessageModified:(NSInteger)code messageUId:(NSString *)messageUId;
|
||||
|
||||
- (void)onUltraGroupMessageRecalled:(NSInteger)code message:(RCIMIWMessage *)message deleteRemote:(BOOL)deleteRemote;
|
||||
|
||||
- (void)onUltraGroupMessagesCleared:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp
|
||||
policy:(RCIMIWMessageOperationPolicy)policy;
|
||||
|
||||
- (void)onUltraGroupMessagesClearedForAllChannel:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
- (void)onUltraGroupTypingStatusSent:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
typingStatus:(RCIMIWUltraGroupTypingStatus)typingStatus;
|
||||
|
||||
- (void)onBatchRemoteUltraGroupMessagesLoaded:(NSInteger)code
|
||||
matchedMessages:(NSArray<RCIMIWMessage *> *)matchedMessages
|
||||
notMatchedMessages:(NSArray<RCIMIWMessage *> *)notMatchMessages;
|
||||
|
||||
- (void)onUltraGroupMessageExpansionUpdated:(NSInteger)code
|
||||
expansion:(NSDictionary<NSString *, NSString *> *)expansion
|
||||
messageUId:(NSString *)messageUId;
|
||||
|
||||
- (void)onUltraGroupMessageExpansionForKeysRemoved:(NSInteger)code
|
||||
messageUId:(NSString *)messageUId
|
||||
keys:(NSArray<NSString *> *)keys;
|
||||
|
||||
/**
|
||||
超级群已读时间同步
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param channelId 频道 ID
|
||||
@param timestamp 已读时间
|
||||
*/
|
||||
- (void)onUltraGroupReadTimeReceived:(NSString *)targetId channelId:(NSString *)channelId timestamp:(long long)timestamp;
|
||||
|
||||
/**
|
||||
超级群远端更新消息扩展的回调
|
||||
*/
|
||||
- (void)onRemoteUltraGroupMessageExpansionUpdated:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
/**
|
||||
超级群远端修改消息的回调
|
||||
*/
|
||||
- (void)onRemoteUltraGroupMessageModified:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onRemoteUltraGroupMessageRecalled:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onUltraGroupTypingStatusChanged:(NSArray<RCIMIWUltraGroupTypingStatusInfo *> *)info;
|
||||
|
||||
|
||||
/*!
|
||||
设置超级群的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param level 消息通知级别
|
||||
*/
|
||||
- (void)onUltraGroupDefaultNotificationLevelChanged:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
/*!
|
||||
获取超级群的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
*/
|
||||
- (void)onUltraGroupDefaultNotificationLevelLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
/*!
|
||||
设置超级群频道的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param channelId 频道 ID
|
||||
@param level 消息通知级别
|
||||
*/
|
||||
- (void)onUltraGroupChannelDefaultNotificationLevelChanged:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
/*!
|
||||
获取超级群频道的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param channelId 频道 ID
|
||||
*/
|
||||
- (void)onUltraGroupChannelDefaultNotificationLevelLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
// 获取超级群所有会话的未读消息数
|
||||
- (void)onUltraGroupAllUnreadCountLoaded:(NSInteger)code count:(NSInteger)count;
|
||||
// 获取超级群所有会话的未读 @ 消息数
|
||||
- (void)onUltraGroupAllUnreadMentionedCountLoaded:(NSInteger)code count:(NSInteger)count;
|
||||
// 获取超级群指定会话的未读消息数
|
||||
- (void)onUltraGroupUnreadCountLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
count:(NSInteger)count;
|
||||
// 获取指定会话的未读 @ 消息数
|
||||
- (void)onUltraGroupUnreadMentionedCountLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
count:(NSInteger)count;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
#endif /* RCIMIWEngineDelegate_h */
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// RCIMIWEngineOptions.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "RCIMIWDefines.h"
|
||||
|
||||
@class RCIMIWCompressOptions;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWEngineOptions : NSObject
|
||||
|
||||
/*!
|
||||
导航服务器地址
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *naviServer;
|
||||
|
||||
/*!
|
||||
文件服务器地址
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *fileServer;
|
||||
|
||||
/*!
|
||||
统计服务器地址
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *statisticServer;
|
||||
|
||||
/// 区域码
|
||||
///
|
||||
/// 默认为北京数据中心,用户可以根据实际情况设置区域码,设置之后,SDK 将会使用特定区域的服务地址
|
||||
/// 每个数据中心都会有对应的 naviServer 、statisticServer 、logServer
|
||||
/// 如果开发者手动设置了本类的 naviServer 、statisticServer 、logServer 将会覆盖对应区域的配置
|
||||
/// 例如:设置 areaCode 为北美数据中心,同时又设置了此处的 naviServer ,那么最终会使用此处的 naviServer 而不是北美数据中心的 naviServer
|
||||
@property (nonatomic, assign) RCIMIWAreaCode areaCode;
|
||||
|
||||
/*!
|
||||
是否踢出重连设备
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL kickReconnectDevice;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWCompressOptions *compressOptions;
|
||||
|
||||
@property (nonatomic, assign) RCIMIWLogLevel logLevel;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// RCIMIWFileMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWFileMessage : RCIMIWMediaMessage
|
||||
|
||||
/**
|
||||
文件名
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
|
||||
/**
|
||||
文件类型
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *fileType;
|
||||
|
||||
/**
|
||||
文件大小
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long size;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// RCIMIWGIFMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/8/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWGIFMessage : RCIMIWMediaMessage
|
||||
|
||||
/*!
|
||||
GIF 图的大小,单位字节
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long dataSize;
|
||||
|
||||
/*!
|
||||
GIF 图的宽
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long width;
|
||||
|
||||
/*!
|
||||
GIF 图的高
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long height;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// RCIMIWGroupReadReceiptInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 4/7/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWGroupReadReceiptInfo : NSObject
|
||||
|
||||
/*!
|
||||
是否需要回执消息
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL readReceiptMessage;
|
||||
|
||||
/**
|
||||
是否已经发送回执
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL hasRespond;
|
||||
|
||||
/*!
|
||||
发送回执的用户 ID 列表
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) NSDictionary<NSString *, NSNumber *> *respondUserIds;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// RCIMIWImageMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWImageMessage : RCIMIWMediaMessage
|
||||
|
||||
/*!
|
||||
图片消息的缩略图
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *thumbnailBase64String;
|
||||
|
||||
/*!
|
||||
是否发送原图
|
||||
|
||||
@discussion 在发送图片的时候,是否发送原图,默认值为 NO。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL original;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// RCIMIWLocationMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 8/15/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWLocationMessage : RCIMIWMessage
|
||||
|
||||
/**
|
||||
经度
|
||||
*/
|
||||
@property(nonatomic, assign) double longitude;
|
||||
|
||||
/**
|
||||
纬度
|
||||
*/
|
||||
@property(nonatomic, assign) double latitude;
|
||||
|
||||
/**
|
||||
兴趣点名称
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *poiName;
|
||||
|
||||
/*!
|
||||
地理位置的缩略图
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *thumbnailPath;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// RCIMIWMediaMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWMediaMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *local;
|
||||
@property (nonatomic, copy, readonly) NSString *remote;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// RCIMIWMentionedInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/18/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWMentionedInfo : NSObject
|
||||
|
||||
/*!
|
||||
@ 提醒的类型
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWMentionedType type;
|
||||
|
||||
/*!
|
||||
@ 的用户 ID 列表
|
||||
|
||||
@discussion 如果 type 是 @ 所有人,则可以传 nil
|
||||
*/
|
||||
@property (nonatomic, copy) NSArray<NSString *> *userIdList;
|
||||
|
||||
/*!
|
||||
包含 @ 提醒的消息,本地通知和远程推送显示的内容
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *mentionedContent;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// RCIMIWMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWMessagePushOptions.h>
|
||||
#import <RongIMWrapper/RCIMIWConversation.h>
|
||||
#import <RongIMWrapper/RCIMIWMentionedInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWUserInfo;
|
||||
@class RCIMIWGroupReadReceiptInfo;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWMessage : NSObject
|
||||
|
||||
/*!
|
||||
* 会话类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWConversationType conversationType;
|
||||
|
||||
/*!
|
||||
* 消息类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWMessageType messageType;
|
||||
|
||||
/*!
|
||||
* 会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
* 所属会话的业务标识,长度限制 20 字符
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *channelId;
|
||||
|
||||
/*!
|
||||
* 消息的 ID
|
||||
|
||||
@discussion 本地存储的消息的唯一值(数据库索引唯一值)
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long messageId;
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *messageUId;
|
||||
|
||||
/*!
|
||||
* 是否是离线消息,只在接收消息的回调方法中有效,如果消息为离线消息,则为 YES ,其他情况均为 NO
|
||||
*/
|
||||
@property(nonatomic, assign, readonly) BOOL offLine;
|
||||
|
||||
@property(nonatomic, strong, readonly) RCIMIWGroupReadReceiptInfo *groupReadReceiptInfo;
|
||||
|
||||
/*!
|
||||
* 消息的接收时间(Unix 时间戳、毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign) long long receivedTime;
|
||||
|
||||
/*!
|
||||
* 消息的发送时间(Unix 时间戳、毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign) long long sentTime;
|
||||
|
||||
/*!
|
||||
* 消息的接收状态
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWReceivedStatus receivedStatus;
|
||||
|
||||
/*!
|
||||
* 消息的发送状态
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWSentStatus sentStatus;
|
||||
|
||||
/*!
|
||||
* 消息的发送者 ID
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *senderUserId;
|
||||
|
||||
/*!
|
||||
* 消息的方向
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWMessageDirection direction;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWUserInfo *userInfo;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWMentionedInfo *mentionedInfo;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWMessagePushOptions *pushOptions;
|
||||
|
||||
/*!
|
||||
* 消息的附加字段
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *extra;
|
||||
|
||||
/*!
|
||||
* 消息扩展信息列表
|
||||
@discussion 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息。
|
||||
* 如果消息发送后需要更新扩展信息,必须在消息发送前设置此值不为空。
|
||||
@discussion 默认消息扩展字典 key 长度不超过 32 ,value 长度不超过 64 ,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300
|
||||
*/
|
||||
@property (nonatomic, strong) NSDictionary<NSString *, NSString *> *expansion;
|
||||
|
||||
//- (instancetype)init __attribute__((unavailable("请使用 RCIMIWEngine 中 createXXMessage 系列方法创建对应的 message ")));
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,225 @@
|
||||
//
|
||||
// RCIMIWMessagePushOptions.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWIOSPushOptions;
|
||||
@class RCIMIWAndroidPushOptions;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#pragma mark - RCIMIWMessagePushOptions
|
||||
|
||||
@interface RCIMIWMessagePushOptions : NSObject
|
||||
|
||||
/*!
|
||||
是否关闭通知
|
||||
YES: 关闭通知(不发送通知)
|
||||
NO: 不关闭通知(发送通知)
|
||||
默认 NO
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL disableNotification;
|
||||
|
||||
/*!
|
||||
是否屏蔽通知标题
|
||||
YES: 不显示通知标题
|
||||
NO: 显示通知标题
|
||||
|
||||
@discussion 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。
|
||||
@discussion 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL disablePushTitle;
|
||||
|
||||
/*!
|
||||
推送标题
|
||||
如果没有设置,会使用下面的默认标题显示规则
|
||||
默认标题显示规则:
|
||||
内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。
|
||||
自定义消息:默认不显示标题。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *pushTitle;
|
||||
|
||||
/*!
|
||||
推送内容
|
||||
优先使用 RCIMIWMessagePushOptions 的 pushContent。如果一个接口 RCIMIWMessage 和 pushContent 同时存在,且 RCIMIWMessagePushOptions.pushContent 为有效值,会优先使用 RCIMIWMessagePushOptions.pushContent 当做最终的 pushContent,例如 sendMessage 、 sendMediaMessage、recallMessage 接口。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *pushContent;
|
||||
|
||||
/*!
|
||||
远程推送附加信息
|
||||
优先使用 MessagePushConfig 的 pushData。如果一个接口 RCMessage 和 pushData 同时存在,且 MessagePushConfig.pushData 为有效值,会优先使用 MessagePushConfig.pushData 当做最终的 pushData,例如 sendMessage 、 sendMediaMessage 接口。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *pushData;
|
||||
|
||||
/*!
|
||||
是否强制显示通知详情
|
||||
当目标用户通过 RCIMIWEngine 中的 changePushContentShowStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL forceShowDetailContent;
|
||||
|
||||
/*!
|
||||
推送模板 ID,设置后根据目标用户通过 SDK 的 changePushLanguage 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送,模板内容在“开发者后台-自定义推送文案”中进行设置。
|
||||
注: pushTitle 和 pushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *templateId;
|
||||
|
||||
@property (nonatomic, assign) BOOL voIPPush;
|
||||
|
||||
/*!
|
||||
iOS 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCIMIWIOSPushOptions *iOSPushOptions;
|
||||
|
||||
/*!
|
||||
Android 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCIMIWAndroidPushOptions *androidPushOptions;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - RCIMIWIOSPushOptions
|
||||
|
||||
@interface RCIMIWIOSPushOptions : NSObject
|
||||
|
||||
/*!
|
||||
iOS 平台通知栏分组 ID
|
||||
相同的 thread-id 推送分为一组
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *threadId;
|
||||
|
||||
/*!
|
||||
iOS 标识推送的类型
|
||||
如果不设置后台默认取消息类型字符串,如 RC:TxtMsg
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *category;
|
||||
|
||||
/*!
|
||||
iOS 平台通知覆盖 ID
|
||||
apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *apnsCollapseId;
|
||||
|
||||
/*!
|
||||
iOS 富文本推送内容
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *richMediaUri;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - RCIMIWAndroidPushOptions
|
||||
|
||||
@interface RCIMIWAndroidPushOptions : NSObject
|
||||
|
||||
/*!
|
||||
Android 平台 Push 唯一标识
|
||||
目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *notificationId;
|
||||
|
||||
/*!
|
||||
小米的渠道 ID
|
||||
该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdMi;
|
||||
|
||||
/*!
|
||||
华为的渠道 ID
|
||||
该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdHW;
|
||||
|
||||
/*!
|
||||
华为推送消息分类
|
||||
|
||||
社交通讯:即时通讯[IM],音频、视频通话[VOIP]
|
||||
服务提醒:订阅[SUBSCRIPTION],出行[TRAVEL],健康[HEALTH],工作事项提醒[WORK],帐号动态[ACCOUNT],订单&物流[EXPRESS],财务[FINANCE],系统提示[SYSTEM_REMINDER],邮件[MAIL]
|
||||
资讯营销类:内容资讯/新闻/财经动态/生活资讯/社交动态/调研/其他[MARKETING]
|
||||
营销活动:产品促销/功能推荐/运营活动/MARKETING
|
||||
更多信息请参考华为消息分类标准文档: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.0
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryHW;
|
||||
|
||||
/*!
|
||||
OPPO 的渠道 ID
|
||||
该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdOPPO;
|
||||
|
||||
/*!
|
||||
VIVO 推送通道类型
|
||||
开发者集成了 VIVO 推送,需要指定推送类型时,可进行设置。
|
||||
目前可选值 "0"(运营消息) 和 "1"(系统消息)
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWVIVOPushType pushTypeVIVO;
|
||||
|
||||
/*!
|
||||
FCM 通知类型推送时所使用的分组 id
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *collapseKeyFCM;
|
||||
|
||||
/*!
|
||||
FCM 通知类型的推送所使用的通知图片 url
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlFCM;
|
||||
|
||||
/*!
|
||||
华为推送消息级别
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWImportanceHW importanceHW;
|
||||
|
||||
/*!
|
||||
华为通知栏消息右侧大图标 URL
|
||||
如果不设置,则不展示通知栏右侧图标。URL使用的协议必须是HTTPS协议,取值样例:https://example.com/image.png。
|
||||
图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlHW;
|
||||
|
||||
/*!
|
||||
小米 Large icon 链接
|
||||
Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlMi;
|
||||
|
||||
/*!
|
||||
FCM 通知的频道 ID
|
||||
该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdFCM;
|
||||
|
||||
|
||||
/*!
|
||||
Vivo 推送消息分类
|
||||
|
||||
系统消息分类
|
||||
即时消息[IM],账号与资产[ACCOUNT],日程待办[TODO],设备信息[DEVICE_REMINDER],订单与物流[ORDER],订阅提醒[SUBSCRIPTION]
|
||||
运营消息分类
|
||||
新闻[NEWS],内容推荐[CONTENT],运营活动[MARKETING],社交动态[SOCIAL]
|
||||
更多信息请参考 Vivo 消息分类标准文档: https://dev.vivo.com.cn/documentCenter/doc/359
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.3
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryVivo;
|
||||
|
||||
/*!
|
||||
荣耀推送消息级别
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWImportanceHonor importanceHonor;
|
||||
|
||||
@property (nonatomic, copy) NSString *imageUrlHonor;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWNativeCustomMediaMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by Lang on 2024/6/3.
|
||||
// Copyright © 2024 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWNativeCustomMediaMessage : RCIMIWMediaMessage
|
||||
|
||||
/// 自定义消息的内容
|
||||
@property (nonatomic, copy) NSDictionary<NSString *, NSString *> *fields;
|
||||
|
||||
/// 消息搜索关键字
|
||||
@property (nonatomic, copy) NSArray<NSString *> *searchableWords;
|
||||
|
||||
/// 消息类型名
|
||||
@property (nonatomic, copy, readonly) NSString *messageIdentifier;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWNativeCustomMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by Lang on 2024/5/30.
|
||||
// Copyright © 2024 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWNativeCustomMessage : RCIMIWMessage
|
||||
|
||||
/// 自定义消息的 json 内容
|
||||
@property (nonatomic, copy) NSDictionary<NSString *, NSString *> *fields;
|
||||
|
||||
/// 消息搜索关键字
|
||||
@property (nonatomic, copy) NSArray<NSString *> *searchableWords;
|
||||
|
||||
/// 消息类型名
|
||||
@property (nonatomic, copy, readonly) NSString *messageIdentifier;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,99 @@
|
||||
//
|
||||
// RCIMIWPlatformConverter.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by zhangyifan on 2022/5/10.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
@class RCIMIWChatRoomMemberAction;
|
||||
@class RCIMIWBlockedMessageInfo;
|
||||
@class RCIMIWGroupReadReceiptInfo;
|
||||
@class RCIMIWBlockedMessageInfo;
|
||||
@class RCIMIWTypingStatus;
|
||||
@class RCIMIWUltraGroupTypingStatusInfo;
|
||||
@class RCIMIWMessage;
|
||||
@class RCIMIWMediaMessage;
|
||||
@class RCIMIWMessagePushOptions;
|
||||
@class RCIMIWCompressOptions;
|
||||
@class RCIMIWEngineOptions;
|
||||
@class RCIMIWSearchConversationResult;
|
||||
@class RCIMIWAndroidPushOptions;
|
||||
@class RCIMIWIOSPushOptions;
|
||||
@class RCIMIWConversation;
|
||||
@class RCIMIWTagInfo;
|
||||
@class RCIMIWConversationTagInfo;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWPlatformConverter : NSObject
|
||||
|
||||
|
||||
// ChatRoomMemberAction
|
||||
+ (NSDictionary *)convertChatRoomMemberActionToDict:(RCIMIWChatRoomMemberAction *)chatRoomMemberAction;
|
||||
+ (RCIMIWChatRoomMemberAction *)convertChatRoomMemberActionFromDict:(NSDictionary *)chatRoomMemberAction;
|
||||
|
||||
// BlockedMessageInfo
|
||||
+ (NSDictionary *)convertBlockedMessageInfoToDict:(RCIMIWBlockedMessageInfo *)blockedMessageInfo;
|
||||
+ (RCIMIWBlockedMessageInfo *)convertBlockedMessageInfoFromDict:(NSDictionary *)blockedMessageInfo;
|
||||
|
||||
// GroupReadReceiptInfo
|
||||
+ (NSDictionary *)convertGroupReadReceiptInfoToDict:(RCIMIWGroupReadReceiptInfo *)groupReadReceiptInfo;
|
||||
+ (RCIMIWGroupReadReceiptInfo *)convertGroupReadReceiptInfoFromDict:(NSDictionary *)groupReadReceiptInfo;
|
||||
|
||||
|
||||
// TypingStatus
|
||||
+ (NSDictionary *)convertTypingStatusToDict:(RCIMIWTypingStatus *)typingStatus;
|
||||
+ (RCIMIWTypingStatus *)convertTypingStatusFromDict:(NSDictionary *)typingStatus;
|
||||
|
||||
// UltraGroupTypingStatusInfo
|
||||
+ (NSDictionary *)convertUltraGroupTypingStatusInfoToDict:(RCIMIWUltraGroupTypingStatusInfo *)ultraGroupTypingStatusInfo;
|
||||
+ (RCIMIWUltraGroupTypingStatusInfo *)convertUltraGroupTypingStatusInfoFromDict:(NSDictionary *)ultraGroupTypingStatusInfo;
|
||||
|
||||
|
||||
// Message
|
||||
+ (NSDictionary *)convertMessageToDict:(RCIMIWMessage *)message;
|
||||
+ (RCIMIWMessage *)convertMessageFromDict:(NSDictionary *)message;
|
||||
|
||||
+ (NSDictionary *)convertMediaMessageToDict:(RCIMIWMediaMessage *)message;
|
||||
+ (RCIMIWMediaMessage *)convertMediaMessageFromDict:(NSDictionary *)message;
|
||||
|
||||
|
||||
// AndroidPushOptions
|
||||
//+ (NSDictionary *)convertAndroidPushOptionsToDict:(RCIMIWAndroidPushOptions *)androidPushOptions;
|
||||
//+ (RCIMIWAndroidPushOptions *)convertAndroidPushOptionsFromDict:(NSDictionary *)androidPushOptions;
|
||||
|
||||
|
||||
// EngineOptions
|
||||
+ (NSDictionary *)convertEngineOptionsToDict:(RCIMIWEngineOptions *)engineOptions;
|
||||
+ (RCIMIWEngineOptions *)convertEngineOptionsFromDict:(NSDictionary *)engineOptions;
|
||||
|
||||
|
||||
// IOSPushOptions
|
||||
//+ (NSDictionary *)convertIOSPushOptionsToDict:(RCIMIWIOSPushOptions *)iosPushOptions;
|
||||
//+ (RCIMIWIOSPushOptions *)convertIOSPushOptionsFromDict:(NSDictionary *)iosPushOptions;
|
||||
|
||||
|
||||
// MessagePushOptions
|
||||
+ (NSDictionary *)convertMessagePushOptionsToDict:(RCIMIWMessagePushOptions *)messagePushOptions;
|
||||
+ (RCIMIWMessagePushOptions *)convertMessagePushOptionsFromDict:(NSDictionary *)messagePushOptions;
|
||||
|
||||
|
||||
// Conversation
|
||||
+ (NSDictionary *)convertConversationToDict:(RCIMIWConversation *)conversation;
|
||||
|
||||
// SearchConversationResult
|
||||
+ (NSDictionary *)convertSearchConversationResultToDict:(RCIMIWSearchConversationResult *)searchConversationResult;
|
||||
|
||||
// SearchConversationResult
|
||||
+ (NSDictionary *)convertTagInfoToDict:(RCIMIWTagInfo *)tagInfo;
|
||||
|
||||
// SearchConversationResult
|
||||
+ (NSDictionary *)convertConversationTagInfoToDict:(RCIMIWConversationTagInfo *)tagInfo;
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// RCIMIWRecallNotificationMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
撤回通知消息类
|
||||
@discussion 撤回通知消息,此消息会进行本地存储,但不计入未读消息数。
|
||||
|
||||
@remarks 通知类消息
|
||||
*/
|
||||
@interface RCIMIWRecallNotificationMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
是否是管理员操作
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL admin;
|
||||
|
||||
/*!
|
||||
是否删除
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL deleted;
|
||||
|
||||
/*!
|
||||
撤回的时间(毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long recallTime;
|
||||
|
||||
/*!
|
||||
撤回动作的时间(毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long recallActionTime;
|
||||
|
||||
/*!
|
||||
被撤回的原消息
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWMessage *originalMessage;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWReferenceMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/8/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWReferenceMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
文本
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) NSString *text;
|
||||
|
||||
/*!
|
||||
被引用消息体
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWMessage *referenceMessage;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// RCIMIWSearchConversationResult.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/17/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class RCIMIWConversation;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWSearchConversationResult : NSObject
|
||||
|
||||
/*!
|
||||
匹配的会话对象
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWConversation *conversation;
|
||||
|
||||
/*
|
||||
会话匹配的消息条数
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) int count;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// RCIMIWSightMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWSightMessage : RCIMIWMediaMessage
|
||||
|
||||
/**
|
||||
视频时长,以秒为单位
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSUInteger duration;
|
||||
|
||||
/**
|
||||
文件大小
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long size;
|
||||
|
||||
/**
|
||||
小视频文件名
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *thumbnailBase64String;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// RCIMIWTagInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/3/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWTagInfo : NSObject
|
||||
|
||||
/*!
|
||||
标签 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *tagId;
|
||||
|
||||
/*!
|
||||
标签名称
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *tagName;
|
||||
|
||||
/*!
|
||||
该标签下的会话个数
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger count;
|
||||
|
||||
/*!
|
||||
标签创建时间
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long timestamp;
|
||||
|
||||
/*!
|
||||
初始化方法
|
||||
|
||||
@param tagId 标签 id
|
||||
@param tagName 标签名称
|
||||
*/
|
||||
- (instancetype)initWithTagId:(NSString *)tagId
|
||||
tagName:(NSString *)tagName;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// RCIMIWTextMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWTextMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy) NSString *text;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// RCIMIWTypingStatus.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/3/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWTypingStatus : NSObject
|
||||
|
||||
/*!
|
||||
当前正在输入的用户 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *userId;
|
||||
|
||||
/*!
|
||||
当前正在输入的消息类型名
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *contentType;
|
||||
|
||||
@property (nonatomic, assign, readonly) long long sentTime;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// RCIMIWUltraGroupTypingStatusInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/21/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWUltraGroupTypingStatusInfo : NSObject
|
||||
|
||||
/*!
|
||||
会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
所属会话的业务标识
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *channelId;
|
||||
|
||||
/*!
|
||||
用户id
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *userId;
|
||||
|
||||
/*!
|
||||
用户数
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger userNums;
|
||||
|
||||
/*!
|
||||
输入状态
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWUltraGroupTypingStatus status;
|
||||
|
||||
/*!
|
||||
服务端收到用户操作的上行时间.
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long timestamp;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// RCIMIWUnknownMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWUnknownMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *rawData;
|
||||
@property (nonatomic, copy, readonly) NSString *objectName;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// RCIMIWUserInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/18/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWUserInfo : NSObject
|
||||
|
||||
/*!
|
||||
用户 ID
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *userId;
|
||||
|
||||
/*!
|
||||
用户名称
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
|
||||
/*!
|
||||
用户头像的 URL
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *portrait;
|
||||
|
||||
/*!
|
||||
用户备注
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *alias;
|
||||
|
||||
/**
|
||||
用户信息附加字段
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *extra;
|
||||
|
||||
/*!
|
||||
用户信息的初始化方法
|
||||
|
||||
@param userId 用户 ID
|
||||
@param name 用户名称
|
||||
@param portraitUri 用户头像的 URL
|
||||
@return 用户信息对象
|
||||
*/
|
||||
- (instancetype)initWithUserId:(NSString *)userId name:(NSString *)name portraitUri:(NSString *)portraitUri;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// RCIMIWVoiceMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWVoiceMessage : RCIMIWMediaMessage
|
||||
|
||||
/**
|
||||
语音时长,以秒为单位
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSUInteger duration;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// RongIMWrapper.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
//! Project version number for RongIMWrapper.
|
||||
FOUNDATION_EXPORT double RongIMWrapperVersionNumber;
|
||||
|
||||
//! Project version string for RongIMWrapper.
|
||||
FOUNDATION_EXPORT const unsigned char RongIMWrapperVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <RongIMWrapper/PublicHeader.h>
|
||||
|
||||
|
||||
#import <RongIMWrapper/RCIMIWEngine.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWEngineOptions.h>
|
||||
#import <RongIMWrapper/RCIMIWMessagePushOptions.h>
|
||||
#import <RongIMWrapper/RCIMIWCompressOptions.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWTextMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWImageMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWVoiceMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWSightMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWFileMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWGIFMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWCustomMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWCommandMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWReferenceMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWCommandNotificationMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWRecallNotificationMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWLocationMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWUnknownMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWNativeCustomMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWNativeCustomMediaMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWConversation.h>
|
||||
#import <RongIMWrapper/RCIMIWSearchConversationResult.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWGroupReadReceiptInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWBlockedMessageInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWMentionedInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWUserInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWTypingStatus.h>
|
||||
#import <RongIMWrapper/RCIMIWTagInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWConversationTagInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWUltraGroupTypingStatusInfo.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWPlatformConverter.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
framework module RongIMWrapper {
|
||||
umbrella header "RongIMWrapper.h"
|
||||
export *
|
||||
|
||||
module * { export * }
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,657 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Headers/RCIMIWBlockedMessageInfo.h</key>
|
||||
<data>
|
||||
oFtw97CuFfdFacaQCYa0vlc7X8w=
|
||||
</data>
|
||||
<key>Headers/RCIMIWChatRoomMemberAction.h</key>
|
||||
<data>
|
||||
Irj/sfQvPSbDI155s7oeMqPcawg=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCommandMessage.h</key>
|
||||
<data>
|
||||
Qx757Ked5q26cEvzSx+fAp6GI9M=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCommandNotificationMessage.h</key>
|
||||
<data>
|
||||
OG3jeKw+nw3SaLkg9FWDi2X3lrc=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCompressOptions.h</key>
|
||||
<data>
|
||||
xHum9csO4h31oM4ThiqfGWmExVE=
|
||||
</data>
|
||||
<key>Headers/RCIMIWConversation.h</key>
|
||||
<data>
|
||||
9eTyDyAkPaqkeLDtc3BXetXSxYY=
|
||||
</data>
|
||||
<key>Headers/RCIMIWConversationTagInfo.h</key>
|
||||
<data>
|
||||
C5vgJNgPATsesPBQufy4L5gpSnQ=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCustomMessage.h</key>
|
||||
<data>
|
||||
rrUBcrcJmz829fv4diEcXP4H5YE=
|
||||
</data>
|
||||
<key>Headers/RCIMIWDefines.h</key>
|
||||
<data>
|
||||
eol/yMMWxD5sCT05wcGeXcYmqUM=
|
||||
</data>
|
||||
<key>Headers/RCIMIWEngine.h</key>
|
||||
<data>
|
||||
64Y+xrsLW0p1FIexk8K8ICOLCw0=
|
||||
</data>
|
||||
<key>Headers/RCIMIWEngineDelegate.h</key>
|
||||
<data>
|
||||
ZyHi3S2t7/25g9YxWxmKpUVHm9w=
|
||||
</data>
|
||||
<key>Headers/RCIMIWEngineOptions.h</key>
|
||||
<data>
|
||||
ud+wnRuziaUxwXm6wxNrhO2bBRc=
|
||||
</data>
|
||||
<key>Headers/RCIMIWFileMessage.h</key>
|
||||
<data>
|
||||
UPDum8Tj3FXB+ldQidm+r+tr01s=
|
||||
</data>
|
||||
<key>Headers/RCIMIWGIFMessage.h</key>
|
||||
<data>
|
||||
mpVdornL+JqEIlGXyJ7F9b7MJZ4=
|
||||
</data>
|
||||
<key>Headers/RCIMIWGroupReadReceiptInfo.h</key>
|
||||
<data>
|
||||
03Hkay3rOYHjnhURsy8rsK2tX/k=
|
||||
</data>
|
||||
<key>Headers/RCIMIWImageMessage.h</key>
|
||||
<data>
|
||||
KYDTFZHSu5lEYa4l+lg1KBxDKOs=
|
||||
</data>
|
||||
<key>Headers/RCIMIWLocationMessage.h</key>
|
||||
<data>
|
||||
5mU4FWewcdpZyIUwjF8GOXihTmQ=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMediaMessage.h</key>
|
||||
<data>
|
||||
Jqjv39goLbc6GSwraJ9Wspz/vpA=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMentionedInfo.h</key>
|
||||
<data>
|
||||
2LvZ0xCmos1SX4KawuSJY1Tkd98=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMessage.h</key>
|
||||
<data>
|
||||
KUjzmIGwOMx9PT8vTkFgWYjdSwU=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMessagePushOptions.h</key>
|
||||
<data>
|
||||
INZw8eqQqHxDVlRDBufb3BzB0zw=
|
||||
</data>
|
||||
<key>Headers/RCIMIWNativeCustomMediaMessage.h</key>
|
||||
<data>
|
||||
TtJvIjR75Xsdwui1Xgi2LDy7sQo=
|
||||
</data>
|
||||
<key>Headers/RCIMIWNativeCustomMessage.h</key>
|
||||
<data>
|
||||
jl/KqekfUeoiPBsnZx9uSXwL604=
|
||||
</data>
|
||||
<key>Headers/RCIMIWPlatformConverter.h</key>
|
||||
<data>
|
||||
qBfombP/fhIyPE4YuBePNjby9DI=
|
||||
</data>
|
||||
<key>Headers/RCIMIWRecallNotificationMessage.h</key>
|
||||
<data>
|
||||
hfpwloo0psjA3Do5qKerrEEGxwI=
|
||||
</data>
|
||||
<key>Headers/RCIMIWReferenceMessage.h</key>
|
||||
<data>
|
||||
grgrdiQxBQgcjcv5n0veJ+CAziI=
|
||||
</data>
|
||||
<key>Headers/RCIMIWSearchConversationResult.h</key>
|
||||
<data>
|
||||
qxxZUH0k9fzbrwHlwWHhHBxJ5R0=
|
||||
</data>
|
||||
<key>Headers/RCIMIWSightMessage.h</key>
|
||||
<data>
|
||||
sHEoJgaWKxvOUA1AsuPuaXTQZOM=
|
||||
</data>
|
||||
<key>Headers/RCIMIWTagInfo.h</key>
|
||||
<data>
|
||||
nay+4cxqaKWFfJAFjRSFwhInC/8=
|
||||
</data>
|
||||
<key>Headers/RCIMIWTextMessage.h</key>
|
||||
<data>
|
||||
Rm8BdDUpfiiOteZNWkBihhndJ9k=
|
||||
</data>
|
||||
<key>Headers/RCIMIWTypingStatus.h</key>
|
||||
<data>
|
||||
akJLOB7HKoppJFBl7M+CRqVnzsE=
|
||||
</data>
|
||||
<key>Headers/RCIMIWUltraGroupTypingStatusInfo.h</key>
|
||||
<data>
|
||||
bbwfwGtOchVmLKU/iOe3eDHptik=
|
||||
</data>
|
||||
<key>Headers/RCIMIWUnknownMessage.h</key>
|
||||
<data>
|
||||
qgUrjxdq+sCU6/1/T4I9sq4LcHA=
|
||||
</data>
|
||||
<key>Headers/RCIMIWUserInfo.h</key>
|
||||
<data>
|
||||
5g7vzLQk3tcFraYj6LiXTofflNA=
|
||||
</data>
|
||||
<key>Headers/RCIMIWVoiceMessage.h</key>
|
||||
<data>
|
||||
qsVZR8GP7n2O5FqQcKtBfAChfbM=
|
||||
</data>
|
||||
<key>Headers/RongIMWrapper.h</key>
|
||||
<data>
|
||||
YdH8Ujk85GPUJ+MR6roHGiP+3tU=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
JEjrQsRzdqV0hZBP0cKNNZUHjkI=
|
||||
</data>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<data>
|
||||
Vh9vdNQkaXreFCi1krLgoYVDvCg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Headers/RCIMIWBlockedMessageInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
oFtw97CuFfdFacaQCYa0vlc7X8w=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
nNHHGlz3h+zRUQ/VsvRQ0Xyqx9kgRY4NHDprJKhsDO4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWChatRoomMemberAction.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Irj/sfQvPSbDI155s7oeMqPcawg=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
dJEENT/QimJq1ZJ8juxcIs3g2V+UwfgDdKPLV6JWzKE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCommandMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Qx757Ked5q26cEvzSx+fAp6GI9M=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
A9QP8rCAngk9gKWqr4RNV6DGmW5fLwrb7DPjG0eEcAQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCommandNotificationMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
OG3jeKw+nw3SaLkg9FWDi2X3lrc=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
d7RxZ/a+a2wBKPE09QvuXYbEoFH9QbpPuiPKgkLJLIw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCompressOptions.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
xHum9csO4h31oM4ThiqfGWmExVE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Xb4YsZJJ9PUPGBvsmbDufy2NBIti11o4QSQQFC4fUZo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWConversation.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
9eTyDyAkPaqkeLDtc3BXetXSxYY=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Ce0mpcf06Wl3c56Ree9dpQJxyw0eXrQFSOSbW6aWe90=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWConversationTagInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
C5vgJNgPATsesPBQufy4L5gpSnQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
yLRPC+dWbAoNGPmwjd8jVNHZIlaphbKuehQWY93v28w=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCustomMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
rrUBcrcJmz829fv4diEcXP4H5YE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
g1szSyNUGQlIdSQREcs8KG0fudaJVU5WO83PHR7lABM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWDefines.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
eol/yMMWxD5sCT05wcGeXcYmqUM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
BVGBRSwY5wKEat5PE4nFqps1FVWTbwCiBdItmLNcK8o=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWEngine.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
64Y+xrsLW0p1FIexk8K8ICOLCw0=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
UrxJREgUJC9UUYi/wE70/8Fgbg8xckI7i9xH1h/Wc54=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWEngineDelegate.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ZyHi3S2t7/25g9YxWxmKpUVHm9w=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
YrXKrToIMLnsY3hFS4qYUPmJAxQxIU7sWDyF/7qLBac=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWEngineOptions.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ud+wnRuziaUxwXm6wxNrhO2bBRc=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
fx4bU9ekLddFW8qP+iwvOFcOUPzUBbAxoTLD8Cq0PyM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWFileMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
UPDum8Tj3FXB+ldQidm+r+tr01s=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
EXIbvs8fvoqaNmk6DEtStlqa1b/GSwp/IMD+q+Uzqyg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWGIFMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
mpVdornL+JqEIlGXyJ7F9b7MJZ4=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
9gw+eXxC5N3mDzYscVLCwN3YlIHO+Chge5egYeGrKDA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWGroupReadReceiptInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
03Hkay3rOYHjnhURsy8rsK2tX/k=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
mO8PiMP6mtcgKMmAHp0RtXS3S2DWkw/zJebC7+B576g=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWImageMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
KYDTFZHSu5lEYa4l+lg1KBxDKOs=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
9vSrnft9SHddZuUKxnqwi3dqhwEcDSeDqpGrXGPjWy4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWLocationMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
5mU4FWewcdpZyIUwjF8GOXihTmQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4aN0WFOisK9iWsIfPYpaiemEqSkLKjSBHp0AKzwFDbI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMediaMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Jqjv39goLbc6GSwraJ9Wspz/vpA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
UYTeVsVzOiRxW6tvDrjUCFzDtAJ59EcdumZOhPe6fuc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMentionedInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
2LvZ0xCmos1SX4KawuSJY1Tkd98=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
a8e+yr5CJavd91kN/ceqjRtkVqnL3WGKd96FSaIYn1M=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
KUjzmIGwOMx9PT8vTkFgWYjdSwU=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
8+94KpgMMid7dfHc81WzTIFeRWUvKg9FOfB0i45IOXQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMessagePushOptions.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
INZw8eqQqHxDVlRDBufb3BzB0zw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
H0JJfmDTazbk58Jx/4KfuloerPu+JFrxF8b7kwmAGqw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWNativeCustomMediaMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
TtJvIjR75Xsdwui1Xgi2LDy7sQo=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
x0bXk2B/V8CSuGyipr38ldRg4z5VlJewFFik2dIfKQc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWNativeCustomMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
jl/KqekfUeoiPBsnZx9uSXwL604=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
zJCZ22Musnlgmz168nQy/X2928Pf0VqeH3OBJJ0ALA8=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWPlatformConverter.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qBfombP/fhIyPE4YuBePNjby9DI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Qp/Je6EMWPamGGqKOzxdrGy0S8nJgak5S/PNUKIj2VY=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWRecallNotificationMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
hfpwloo0psjA3Do5qKerrEEGxwI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
gihBvLY/5dIi3+f0eAk+x/6AP3p7qmm23Las654a+pE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWReferenceMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
grgrdiQxBQgcjcv5n0veJ+CAziI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
p7uOCVt34XJnhVyZuh3WEsfeEtytZqBrCro2sjG3HGQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWSearchConversationResult.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qxxZUH0k9fzbrwHlwWHhHBxJ5R0=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
BILRIt1LsrKPy8ElRc5Iwhi/2lKbizV4Pq4sqJuRLzA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWSightMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
sHEoJgaWKxvOUA1AsuPuaXTQZOM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4CmK0XgLeudMWN1ykqHcl7IdgL02aWI+jYabboUNE1M=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWTagInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
nay+4cxqaKWFfJAFjRSFwhInC/8=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
OvNot8iVhndDHQ1NSkK/1XvSCv8+FZiwVSSJTR3zcVk=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWTextMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Rm8BdDUpfiiOteZNWkBihhndJ9k=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
AYeHN9oWIpMsiyefGcxC7jFEpauDhASYP4RcxB9Kl08=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWTypingStatus.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
akJLOB7HKoppJFBl7M+CRqVnzsE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
YPGPyuROOdLhtyhf3E331BOPgHc5YfeK1PN7idp54Cc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWUltraGroupTypingStatusInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
bbwfwGtOchVmLKU/iOe3eDHptik=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
0AdngedKL3OJA0QFjGXRtRR1hwUdvsTWcoEvcyaEPTc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWUnknownMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qgUrjxdq+sCU6/1/T4I9sq4LcHA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
7p4NYJJwAMXAwYqWwWuhBA438tLXAy24c4QzH5/IZDk=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWUserInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
5g7vzLQk3tcFraYj6LiXTofflNA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
V10qEawgeZq8vDYhIOHCHovrNnRR7oXom02wtpweU6I=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWVoiceMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qsVZR8GP7n2O5FqQcKtBfAChfbM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
b6rItb69TZZsbwvHeE4AtW3UE1msdPiF/u+hCT1jJ9k=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RongIMWrapper.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
YdH8Ujk85GPUJ+MR6roHGiP+3tU=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
FMIRQbrWJ0ecIdMZivMktP0aloY6adherETYM/denrQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Vh9vdNQkaXreFCi1krLgoYVDvCg=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
6yfqbvnbVio5ptAdCyz4sU2INYt+rvxvT8q9gkJ+AkQ=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// RCIMIWBlockedMessageInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/20/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWBlockedMessageInfo : NSObject
|
||||
|
||||
/**
|
||||
* 会话类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWConversationType conversationType;
|
||||
|
||||
/**
|
||||
* 会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/**
|
||||
* 被拦截的消息 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *blockedMsgUId;
|
||||
|
||||
/**
|
||||
* 拦截原因
|
||||
* 1,全局敏感词:命中了融云内置的全局敏感词
|
||||
* 2,自定义敏感词拦截:命中了客户在融云自定义的敏感词
|
||||
* 3,第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWMessageBlockType blockType;
|
||||
|
||||
/**
|
||||
* 附加信息
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *extra;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// RCIMIWChatRoomMemberAction.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/23/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWChatRoomMemberAction : NSObject
|
||||
|
||||
/*!
|
||||
成员 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *userId;
|
||||
|
||||
/*!
|
||||
成员加入或者退出
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWChatRoomMemberActionType actionType;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,36 @@
|
||||
//
|
||||
// RCIMIWCommandMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
命令消息类
|
||||
|
||||
@discussion 命令消息类,此消息不存储不计入未读消息数。
|
||||
与 RCIMIWCommandNotificationMessage 的区别是,此消息不存储,也不会在界面上显示。
|
||||
|
||||
@remarks 通知类消息
|
||||
*/
|
||||
@interface RCIMIWCommandMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
命令的名称
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
/*!
|
||||
命令的扩展数据
|
||||
|
||||
@discussion 命令的扩展数据,可以为任意字符串,如存放您定义的json数据。
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *data;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,36 @@
|
||||
//
|
||||
// RCIMIWCommandNotificationMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
命令提醒消息类
|
||||
|
||||
@discussion 命令消息类,此消息会进行存储,但不计入未读消息数。
|
||||
与 RCIMIWCommandMessage 的区别是,此消息会进行存储并在界面上显示。
|
||||
|
||||
@remarks 通知类消息
|
||||
*/
|
||||
@interface RCIMIWCommandNotificationMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
命令提醒的名称
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
/*!
|
||||
命令提醒消息的扩展数据
|
||||
|
||||
@discussion 命令提醒消息的扩展数据,可以为任意字符串,如存放您定义的 json 数据。
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *data;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// RCIMIWCompressOptions.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/21/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWCompressOptions : NSObject
|
||||
|
||||
/*!
|
||||
原图质量压缩比 0 ~ 100,内部需要除 100
|
||||
*/
|
||||
@property (nonatomic, assign) int originalImageQuality;
|
||||
/*!
|
||||
原图最大尺寸 对应的 width height
|
||||
*/
|
||||
@property (nonatomic, assign) int originalImageSize;
|
||||
// 原图最大限制,如果图片大小不超过此值,发送原图,超过则进行压缩
|
||||
@property (nonatomic, assign) int originalImageMaxSize;
|
||||
|
||||
// 缩略图 0 ~ 1
|
||||
@property (nonatomic, assign) int thumbnailQuality;
|
||||
@property (nonatomic, assign) int thumbnailMaxSize;
|
||||
@property (nonatomic, assign) int thumbnailMinSize;
|
||||
@property (nonatomic, assign) int sightCompressWidth;
|
||||
@property (nonatomic, assign) int sightCompressHeight;
|
||||
|
||||
/**
|
||||
位置消息预览图压缩比 0 ~ 100
|
||||
*/
|
||||
@property (nonatomic, assign) int locationThumbnailQuality;
|
||||
@property (nonatomic, assign) int locationThumbnailWidth;
|
||||
@property (nonatomic, assign) int locationThumbnailHeight;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,73 @@
|
||||
//
|
||||
// Created by RongCloud on 2/16/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWMessage;
|
||||
|
||||
@interface RCIMIWConversation : NSObject
|
||||
|
||||
/*!
|
||||
会话类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWConversationType conversationType;
|
||||
|
||||
/*!
|
||||
会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
该会话的业务标识,长度限制 20 字符
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *channelId;
|
||||
|
||||
/*!
|
||||
会话中的未读消息数量
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger unreadCount;
|
||||
|
||||
/*!
|
||||
会话中 @ 消息的个数
|
||||
|
||||
@discussion 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此值置成 0。
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger mentionedCount;
|
||||
|
||||
/*!
|
||||
是否置顶,默认值为 NO
|
||||
|
||||
@discussion
|
||||
如果设置了置顶,在 IMKit 的 RCConversationListViewController 中会将此会话置顶显示。
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL top;
|
||||
|
||||
/*!
|
||||
会话中存在的草稿
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *draft;
|
||||
|
||||
/*!
|
||||
会话中最后一条消息的内容
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWMessage *lastMessage;
|
||||
|
||||
/*!
|
||||
免打扰级别
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWPushNotificationLevel notificationLevel;
|
||||
|
||||
/*!
|
||||
会话中第一条未读消息时间戳(Unix时间戳、毫秒)
|
||||
|
||||
仅支持 超级群会话
|
||||
@Since 5.2.5
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long firstUnreadMsgSendTime;
|
||||
|
||||
/// 对应原生会话对象的 sentTime
|
||||
@property (nonatomic, assign, readonly) long long operationTime;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,27 @@
|
||||
//
|
||||
// RCIMIWConversationTagInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/10/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
@class RCIMIWTagInfo;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWConversationTagInfo : NSObject
|
||||
|
||||
/*!
|
||||
标签 ID
|
||||
*/
|
||||
@property (nonatomic, strong) RCIMIWTagInfo *tagInfo;
|
||||
|
||||
/*!
|
||||
会话是否置顶
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL top;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWCustomMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWCustomMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *identifier;
|
||||
|
||||
@property (nonatomic, assign, readonly) RCIMIWCustomMessagePolicy policy;
|
||||
|
||||
/*!
|
||||
消息字段
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) NSDictionary<NSString*, NSString*> *fields;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,592 @@
|
||||
//
|
||||
// RCIMIWDefines.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/24/22.
|
||||
//
|
||||
|
||||
#ifndef RCIMIWDefines_h
|
||||
#define RCIMIWDefines_h
|
||||
|
||||
#pragma mark 错误码
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWErrorCode) {
|
||||
RCIMIWErrorCodeSuccess = 0,
|
||||
RCIMIWErrorCodeParamError = -101,
|
||||
RCIMIWErrorCodeEngineDestroyed = -102,
|
||||
RCIMIWErrorCodeNativeOperationError = -103,
|
||||
RCIMIWErrorCodeResultUnknown = -104,
|
||||
};
|
||||
|
||||
#pragma mark 连接状态
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWConnectionStatus) {
|
||||
|
||||
/*!
|
||||
连接过程中,当前设备网络不可用
|
||||
|
||||
@discussion 当网络恢复可用时,SDK 会做好自动重连,开发者无须处理。
|
||||
*/
|
||||
RCIMIWConnectionStatusNetworkUnavailable = 0,
|
||||
|
||||
/*!
|
||||
连接成功
|
||||
*/
|
||||
RCIMIWConnectionStatusConnected = 1,
|
||||
|
||||
/*!
|
||||
连接中
|
||||
*/
|
||||
RCIMIWConnectionStatusConnecting = 2,
|
||||
|
||||
/*!
|
||||
连接失败或未连接
|
||||
*/
|
||||
RCIMIWConnectionStatusUnconnected = 3,
|
||||
|
||||
/*!
|
||||
当前用户在其他设备上登录,此设备被踢下线
|
||||
*/
|
||||
RCIMIWConnectionStatusKickedOfflineByOtherClient = 4,
|
||||
|
||||
/*!
|
||||
Token无效
|
||||
|
||||
@discussion
|
||||
Token 无效一般有两种原因。一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey
|
||||
是否一致;二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token
|
||||
并再次用新的 token 建立连接。
|
||||
*/
|
||||
RCIMIWConnectionStatusTokenIncorrect = 5,
|
||||
|
||||
/*!
|
||||
与服务器的连接已断开,用户被封禁
|
||||
*/
|
||||
RCIMIWConnectionStatusConnUserBlocked = 6,
|
||||
|
||||
/*!
|
||||
已登出
|
||||
*/
|
||||
RCIMIWConnectionStatusSignOut = 7,
|
||||
|
||||
/*!
|
||||
连接暂时挂起(多是由于网络问题导致),SDK 会在合适时机进行自动重连
|
||||
*/
|
||||
RCIMIWConnectionStatusSuspend = 8,
|
||||
|
||||
/*!
|
||||
自动连接超时,SDK 将不会继续连接,用户需要做超时处理,再自行调用 connectWithToken 接口进行连接
|
||||
*/
|
||||
RCIMIWConnectionStatusTimeout = 9,
|
||||
|
||||
/*!
|
||||
未知状态
|
||||
|
||||
@discussion 建立连接中出现异常的临时状态,SDK 会做好自动重连,开发者无须处理。
|
||||
*/
|
||||
RCIMIWConnectionStatusUnknown = 10,
|
||||
};
|
||||
|
||||
|
||||
#pragma mark 会话类型
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWConversationType) {
|
||||
/*!
|
||||
无效类型
|
||||
*/
|
||||
RCIMIWConversationTypeInvalid = 0,
|
||||
|
||||
/*!
|
||||
单聊
|
||||
*/
|
||||
RCIMIWConversationTypePrivate = 1,
|
||||
|
||||
/*!
|
||||
群组
|
||||
*/
|
||||
RCIMIWConversationTypeGroup = 2,
|
||||
|
||||
/*!
|
||||
聊天室
|
||||
*/
|
||||
RCIMIWConversationTypeChatroom = 3,
|
||||
|
||||
/*!
|
||||
系统会话
|
||||
*/
|
||||
RCIMIWConversationTypeSystem = 4,
|
||||
|
||||
/*!
|
||||
超级群
|
||||
*/
|
||||
RCIMIWConversationTypeUltraGroup = 5,
|
||||
|
||||
};
|
||||
|
||||
#pragma mark 消息类型
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWMessageType) {
|
||||
|
||||
/*!
|
||||
未知消息
|
||||
*/
|
||||
RCIMIWMessageTypeUnknown = 0,
|
||||
|
||||
/*!
|
||||
自定义
|
||||
*/
|
||||
RCIMIWMessageTypeCustom = 1,
|
||||
|
||||
/*!
|
||||
文本
|
||||
*/
|
||||
RCIMIWMessageTypeText = 2,
|
||||
|
||||
/*!
|
||||
语音
|
||||
*/
|
||||
RCIMIWMessageTypeVoice = 3,
|
||||
|
||||
/*!
|
||||
图片
|
||||
*/
|
||||
RCIMIWMessageTypeImage = 4,
|
||||
|
||||
/*!
|
||||
其他文件
|
||||
*/
|
||||
RCIMIWMessageTypeFile = 5,
|
||||
|
||||
/*!
|
||||
小视频
|
||||
*/
|
||||
RCIMIWMessageTypeSight = 6,
|
||||
|
||||
/*!
|
||||
动图
|
||||
*/
|
||||
RCIMIWMessageTypeGIF = 7,
|
||||
|
||||
/*!
|
||||
撤回
|
||||
*/
|
||||
RCIMIWMessageTypeRecall = 8,
|
||||
|
||||
/*!
|
||||
引用消息
|
||||
*/
|
||||
RCIMIWMessageTypeReference = 9,
|
||||
|
||||
/*!
|
||||
命令消息
|
||||
*/
|
||||
RCIMIWMessageTypeCommand = 10,
|
||||
|
||||
/*!
|
||||
命令通知消息
|
||||
*/
|
||||
RCIMIWMessageTypeCommandNotification = 11,
|
||||
|
||||
/*!
|
||||
位置消息
|
||||
*/
|
||||
RCIMIWMessageTypeLocation = 12,
|
||||
|
||||
/*!
|
||||
用户自定义消息
|
||||
*/
|
||||
RCIMIWMessageTypeUserCustom = 13,
|
||||
|
||||
/*!
|
||||
原生自定义普通消息
|
||||
*/
|
||||
RCIMIWMessageTypeNativeCustom = 14,
|
||||
|
||||
/*!
|
||||
原生自定义媒体消息
|
||||
*/
|
||||
RCIMIWMessageTypeNativeCustomMedia = 15,
|
||||
};
|
||||
|
||||
#pragma mark 自定义消息的类别
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWCustomMessagePolicy) {
|
||||
RCIMIWCustomMessagePolicyCommand = 0,
|
||||
RCIMIWCustomMessagePolicyNormal,
|
||||
RCIMIWCustomMessagePolicyStatus,
|
||||
RCIMIWCustomMessagePolicyStorage,
|
||||
};
|
||||
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWNativeCustomMessagePersistentFlag) {
|
||||
RCIMIWNativeCustomMessagePersistentNone,
|
||||
/// 在本地只存储,但不计入未读数
|
||||
RCIMIWNativeCustomMessagePersistentPersisted,
|
||||
/// 在本地进行存储并计入未读数
|
||||
RCIMIWNativeCustomMessagePersistentCounted,
|
||||
/// 在本地不存储,不计入未读数,并且如果对方不在线,服务器会直接丢弃该消息,对方如果之后再上线也不会再收到此消息。
|
||||
/// 一般用于发送输入状态之类的消息。
|
||||
RCIMIWNativeCustomMessagePersistentStatus,
|
||||
};
|
||||
|
||||
#pragma mark 消息的方向
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMessageDirection) {
|
||||
/*!
|
||||
* 发送
|
||||
*/
|
||||
RCIMIWMessageDirectionSend = 0,
|
||||
|
||||
/*!
|
||||
* 接收
|
||||
*/
|
||||
RCIMIWMessageDirectionReceive = 1,
|
||||
};
|
||||
|
||||
/*!
|
||||
* 消息的发送状态
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWSentStatus) {
|
||||
/*!
|
||||
* 发送中
|
||||
*/
|
||||
RCIMIWSentStatusSending = 0,
|
||||
|
||||
/*!
|
||||
* 发送失败
|
||||
*/
|
||||
RCIMIWSentStatusFailed = 1,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已发送成功
|
||||
*/
|
||||
RCIMIWSentStatusSent = 2,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
对方已接收
|
||||
*/
|
||||
RCIMIWSentStatusReceived = 3,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
对方已阅读
|
||||
*/
|
||||
RCIMIWSentStatusRead = 4,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
对方已销毁
|
||||
*/
|
||||
RCIMIWSentStatusDestroyed = 5,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
发送已取消
|
||||
*/
|
||||
RCIMIWSentStatusCanceled = 6,
|
||||
};
|
||||
|
||||
#pragma mark 消息的接收状态
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWReceivedStatus) {
|
||||
/*!
|
||||
* \~chinese
|
||||
未读
|
||||
*/
|
||||
RCIMIWReceivedStatusUnread = 0,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已读
|
||||
*/
|
||||
RCIMIWReceivedStatusRead = 1,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已听
|
||||
|
||||
@discussion 仅用于语音消息
|
||||
*/
|
||||
RCIMIWReceivedStatusListened = 2,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
已下载
|
||||
*/
|
||||
RCIMIWReceivedStatusDownloaded = 3,
|
||||
|
||||
/*!
|
||||
* \~chinese
|
||||
该消息已经被其他登录的多端收取过。(即该消息已经被其他端收取过后。当前端才登录,并重新拉取了这条消息。客户可以通过这个状态更新
|
||||
UI,比如不再提示)。
|
||||
*/
|
||||
RCIMIWReceivedStatusRetrieved = 4,
|
||||
|
||||
/*!
|
||||
* 该消息是被多端同时收取的。(即其他端正同时登录,一条消息被同时发往多端。客户可以通过这个状态值更新自己的某些 UI
|
||||
* 状态)。
|
||||
*/
|
||||
RCIMIWReceivedStatusMultipleReceive = 5,
|
||||
|
||||
};
|
||||
|
||||
#pragma mark @消息的类型
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMentionedType) {
|
||||
|
||||
/*!
|
||||
@ 所有人
|
||||
*/
|
||||
RCIMIWMentionedTypeAll = 0,
|
||||
|
||||
/*!
|
||||
@ 部分人
|
||||
*/
|
||||
RCIMIWMentionedTypePart = 1,
|
||||
};
|
||||
|
||||
#pragma mark 时间顺序
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWTimeOrder) {
|
||||
/*!
|
||||
以前的时间
|
||||
*/
|
||||
RCIMIWTimeOrderBefore = 0,
|
||||
|
||||
/*!
|
||||
以后的时间
|
||||
*/
|
||||
RCIMIWTimeOrderAfter = 1,
|
||||
};
|
||||
|
||||
#pragma mark 加载消息策略
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMessageOperationPolicy) {
|
||||
RCIMIWMessageOperationPolicyLocal = 0,
|
||||
RCIMIWMessageOperationPolicyRemote = 1,
|
||||
RCIMIWMessageOperationPolicyLocalRemote = 2,
|
||||
};
|
||||
|
||||
#pragma mark 聊天室状态
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWChatRoomStatus) {
|
||||
RCIMIWChatRoomStatusReset = 0,
|
||||
RCIMIWChatRoomStatusDestroyManual = 1,
|
||||
RCIMIWChatRoomStatusDestroyAuto = 2,
|
||||
};
|
||||
|
||||
#pragma mark 聊天室成员加入或者退出
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWChatRoomMemberActionType) {
|
||||
|
||||
RCIMIWChatRoomMemberActionTypeUnknown = 0,
|
||||
|
||||
/*!
|
||||
聊天室成员加入
|
||||
*/
|
||||
RCIMIWChatRoomMemberActionTypeJoin = 1,
|
||||
|
||||
/*!
|
||||
聊天室成员退出
|
||||
*/
|
||||
RCIMIWChatRoomMemberActionTypeLeave = 2,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWBlacklistStatus) {
|
||||
RCIMIWBlacklistStatusUnknown = 0,
|
||||
RCIMIWBlacklistStatusInBlacklist = 1,
|
||||
RCIMIWBlacklistStatusNotInBlacklist = 2,
|
||||
};
|
||||
|
||||
#pragma mark 消息被拦截类型
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWMessageBlockType) {
|
||||
|
||||
RCIMIWMessageBlockTypeUnknown = 0,
|
||||
|
||||
/*!
|
||||
全局敏感词:命中了融云内置的全局敏感词
|
||||
*/
|
||||
RCIMIWMessageBlockTypeGlobal,
|
||||
|
||||
/*!
|
||||
自定义敏感词拦截:命中了客户在融云自定义的敏感词
|
||||
*/
|
||||
RCIMIWMessageBlockTypeCustom,
|
||||
|
||||
/*!
|
||||
第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
|
||||
*/
|
||||
RCIMIWMessageBlockTypeThirdParty,
|
||||
};
|
||||
|
||||
|
||||
#pragma mark 通知状态
|
||||
|
||||
typedef NS_ENUM(NSInteger, RCIMIWNotificationStatus) {
|
||||
RCIMIWNotificationStatusUnknown = 0,
|
||||
RCIMIWNotificationStatusMute = 1,
|
||||
RCIMIWNotificationStatusUnmute = 2,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWUltraGroupTypingStatus) {
|
||||
/*!
|
||||
正在输入文本
|
||||
*/
|
||||
RCIMIWUltraGroupTypingStatusText = 0,
|
||||
};
|
||||
|
||||
/**
|
||||
VIVO 推送通道类options.typeVivo型
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWVIVOPushType) {
|
||||
/**
|
||||
运营消息
|
||||
*/
|
||||
RCIMIWVIVOPushTypeOperate,
|
||||
|
||||
/**
|
||||
系统消息
|
||||
*/
|
||||
RCIMIWVIVOPushTypeSystem,
|
||||
};
|
||||
|
||||
#pragma mark 日志级别
|
||||
/*!
|
||||
日志级别
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWLogLevel) {
|
||||
|
||||
/*!
|
||||
* 不输出任何日志
|
||||
*/
|
||||
RCIMIWLogLevelNone = 0,
|
||||
|
||||
/*!
|
||||
* 只输出错误的日志
|
||||
*/
|
||||
RCIMIWLogLevelError = 1,
|
||||
|
||||
/*!
|
||||
* 输出错误和警告的日志
|
||||
*/
|
||||
RCIMIWLogLevelWarn = 2,
|
||||
|
||||
/*!
|
||||
* 输出错误、警告和一般的日志
|
||||
*/
|
||||
RCIMIWLogLevelInfo = 3,
|
||||
|
||||
/*!
|
||||
* 输出输出错误、警告和一般的日志以及 debug 日志
|
||||
*/
|
||||
RCIMIWLogLevelDebug = 4,
|
||||
|
||||
/*!
|
||||
* 输出所有日志
|
||||
*/
|
||||
RCIMIWLogLevelVerbose = 5,
|
||||
};
|
||||
|
||||
#pragma mark 消息免打扰级别
|
||||
/*!
|
||||
消息免打扰级别
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCIMIWPushNotificationQuietHoursLevel) {
|
||||
|
||||
/*!
|
||||
未设置(向上查询群或者APP级别设置)
|
||||
*/
|
||||
RCIMIWPushNotificationQuietHoursLevelNone = 0,
|
||||
/*!
|
||||
群聊超级群仅@消息通知,单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationQuietHoursLevelMention = 1,
|
||||
/*!
|
||||
消息通知被屏蔽,即不接收消息通知
|
||||
*/
|
||||
RCIMIWPushNotificationQuietHoursLevelBlocked = 5,
|
||||
};
|
||||
|
||||
#pragma mark 消息通知级别
|
||||
/*!
|
||||
消息通知级别
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, RCIMIWPushNotificationLevel) {
|
||||
/*!
|
||||
全部消息通知(接收全部消息通知 -- 显示指定关闭免打扰功能)
|
||||
*/
|
||||
RCIMIWPushNotificationLevelAllMessage = -1,
|
||||
/*!
|
||||
未设置(向上查询群或者APP级别设置),存量数据中0表示未设置
|
||||
*/
|
||||
RCIMIWPushNotificationLevelNone = 0,
|
||||
/*!
|
||||
群聊,超级群 @所有人 或者 @成员列表有自己 时通知;单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelMention = 1,
|
||||
/*!
|
||||
群聊,超级群 @成员列表有自己时通知,@所有人不通知;单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelMentionUsers = 2,
|
||||
/*!
|
||||
群聊,超级群 @所有人通知,其他情况都不通知;单聊代表消息不通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelMentionAll = 4,
|
||||
/*!
|
||||
消息通知被屏蔽,即不接收消息通知
|
||||
*/
|
||||
RCIMIWPushNotificationLevelBlocked = 5,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWChatRoomEntriesOperationType) {
|
||||
RCIMIWChatRoomEntriesOperationTypeUpdate = 0,
|
||||
RCIMIWChatRoomEntriesOperationTypeRemove = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
华为推送消息级别
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWImportanceHW) {
|
||||
/*!
|
||||
华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。
|
||||
*/
|
||||
RCIMIWImportanceHWNormal = 0,
|
||||
|
||||
/*!
|
||||
华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。
|
||||
*/
|
||||
RCIMIWImportanceHWLow = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
荣耀推送消息级别
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWImportanceHonor) {
|
||||
/*!
|
||||
华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。
|
||||
*/
|
||||
RCIMIWImportanceHonorNormal = 0,
|
||||
|
||||
/*!
|
||||
华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。
|
||||
*/
|
||||
RCIMIWImportanceHonorLow = 1,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RCIMIWAreaCode) {
|
||||
/// 默认值,北京数据中心
|
||||
RCIMIWAreaCodeBJ = 1,
|
||||
/// 新加坡数据中心
|
||||
RCIMIWAreaCodeSG = 2,
|
||||
/// 北美数据中心
|
||||
RCIMIWAreaCodeNA = 3,
|
||||
/// 新增的新加坡数据中心
|
||||
RCIMIWAreaCodeSGB = 4,
|
||||
/// 沙特数据中心
|
||||
RCIMIWAreaCodeSA = 5,
|
||||
};
|
||||
|
||||
#endif /* RCIMIWDefines_h */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,664 @@
|
||||
//
|
||||
// RCIMIWEngineDelegate.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWConversation.h>
|
||||
#import <RongIMWrapper/RCIMIWChatRoomMemberAction.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWMessage;
|
||||
@class RCIMIWMediaMessage;
|
||||
@class RCIMIWConversation;
|
||||
@class RCIMIWTypingStatus;
|
||||
@class RCIMIWTagInfo;
|
||||
@class RCIMIWConversationTagInfo;
|
||||
@class RCIMIWBlockedMessageInfo;
|
||||
@class RCIMIWUltraGroupTypingStatusInfo;
|
||||
@class RCIMIWSearchConversationResult;
|
||||
|
||||
#ifndef RCIMIWEngineDelegate_h
|
||||
#define RCIMIWEngineDelegate_h
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RCIMIWEngineDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
|
||||
#pragma mark - 事件监听
|
||||
|
||||
/*!
|
||||
连接状态监听
|
||||
*/
|
||||
- (void)onConnectionStatusChanged:(RCIMIWConnectionStatus)status;
|
||||
|
||||
/*!
|
||||
接收消息的回调方法
|
||||
|
||||
@param message 当前接收到的消息
|
||||
@param left 还剩余的未接收的消息数,left>=0
|
||||
@param offline 是否是离线消息
|
||||
@param hasPackage SDK 拉取服务器的消息以包(package)的形式批量拉取,有 package 存在就意味着远端服务器还有消息尚未被 SDK
|
||||
拉取
|
||||
@discussion 和上面的 - (void)onReceived:(RCMessage *)message left:(int)nLeft object:(id)object 功能完全一致,额外把
|
||||
offline 和 hasPackage 参数暴露,开发者可以根据 nLeft、offline、hasPackage 来决定何时的时机刷新 UI ;建议当 hasPackage=0
|
||||
并且 nLeft=0 时刷新 UI
|
||||
@warning 如果使用此方法,那么就不能再使用 RCIM 中 - (void)onReceived:(RCMessage *)message left:(int)nLeft
|
||||
object:(id)object 的使用,否则会出现重复操作的情形
|
||||
*/
|
||||
- (void)onMessageReceived:(RCIMIWMessage *)message
|
||||
left:(NSInteger)left
|
||||
offline:(BOOL)offline
|
||||
hasPackage:(BOOL)hasPackage;
|
||||
|
||||
#pragma mark - 接口调用回调
|
||||
|
||||
- (void)onConnected:(NSInteger)code userId:(nullable NSString *)userId;
|
||||
|
||||
- (void)onDatabaseOpened:(NSInteger)code;
|
||||
// 消息插入本地数据库
|
||||
- (void)onMessageAttached:(RCIMIWMessage *)message;
|
||||
|
||||
- (void)onMediaMessageAttached:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onMessageSent:(NSInteger)code message:(nullable RCIMIWMessage *)message;
|
||||
|
||||
- (void)onMediaMessageSent:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onMediaMessageSending:(RCIMIWMediaMessage*)message progress:(int)progress;
|
||||
|
||||
- (void)onSendingMediaMessageCanceled:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onMediaMessageDownloading:(RCIMIWMediaMessage *)message progress:(int)progress;
|
||||
|
||||
- (void)onMediaMessageDownloaded:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onDownloadingMediaMessageCanceled:(NSInteger)code message:(RCIMIWMediaMessage *)message;
|
||||
|
||||
- (void)onGroupMessageToDesignatedUsersAttached:(RCIMIWMessage *)message;
|
||||
|
||||
- (void)onGroupMessageToDesignatedUsersSent:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
#pragma mark - 获取历史消息
|
||||
|
||||
- (void)onMessagesLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
sentTime:(long long)sentTime
|
||||
order:(RCIMIWTimeOrder)order
|
||||
messages:(nullable NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onUnreadMentionedMessagesLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onFirstUnreadMessageLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
message:(RCIMIWMessage *)message;
|
||||
|
||||
#pragma mark - 插入消息
|
||||
|
||||
- (void)onMessageInserted:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
/*!
|
||||
批量插入消息
|
||||
*/
|
||||
- (void)onMessagesInserted:(NSInteger)code messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
#pragma mark - 删除消息
|
||||
|
||||
- (void)onMessagesCleared:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)recordTime;
|
||||
|
||||
- (void)onLocalMessagesDeleted:(NSInteger)code messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onMessagesDeleted:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
#pragma mark - 撤回消息
|
||||
|
||||
/*!
|
||||
本端调用撤回消息的回调
|
||||
*/
|
||||
- (void)onMessageRecalled:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
/*!
|
||||
远端撤回消息
|
||||
*/
|
||||
- (void)onRemoteMessageRecalled:(RCIMIWMessage *)message;
|
||||
|
||||
- (void)onPrivateReadReceiptMessageSent:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
- (void)onMessageExpansionUpdated:(NSInteger)code
|
||||
messageUId:(NSString *)messageUId
|
||||
expansion:(NSDictionary<NSString *, NSString *> *)expansion;
|
||||
|
||||
- (void)onMessageExpansionForKeysRemoved:(NSInteger)code
|
||||
messageUId:(NSString *)messageUId
|
||||
keys:(NSArray<NSString *> *)keys;
|
||||
/**
|
||||
远端更改消息扩展信息的回调
|
||||
|
||||
@param expansion 消息扩展信息中更新的键值对
|
||||
@param message 消息
|
||||
|
||||
@discussion expansionDic 只包含更新的键值对,不是全部的数据。如果想获取全部的键值对,请使用 message 的 expansion 属性。
|
||||
*/
|
||||
- (void)onRemoteMessageExpansionUpdated:(NSDictionary<NSString *,NSString *> *)expansion message:(RCIMIWMessage *)message;
|
||||
|
||||
/**
|
||||
远端删除消息扩展信息的回调
|
||||
*/
|
||||
- (void)onRemoteMessageExpansionForKeyRemoved:(RCIMIWMessage *)message keys:(NSArray<NSString *> *)keys;
|
||||
|
||||
- (void)onMessageReceiveStatusChanged:(NSInteger)code messageId:(long)messageId;
|
||||
|
||||
- (void)onMessageSentStatusChanged:(NSInteger)code messageId:(long)messageId;
|
||||
|
||||
- (void)onMessageBlocked:(RCIMIWBlockedMessageInfo *)info;
|
||||
|
||||
#pragma mark - Conversation
|
||||
|
||||
- (void)onConversationLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
conversation:(nullable RCIMIWConversation *)conversation;
|
||||
|
||||
- (void)onConversationsLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
startTime:(long long)startTime
|
||||
count:(int)count
|
||||
conversations:(nullable NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onConversationRemoved:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId;
|
||||
|
||||
- (void)onConversationsRemoved:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId;
|
||||
|
||||
- (void)onMessageCountLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
count:(int)count;
|
||||
|
||||
- (void)onTotalUnreadCountLoaded:(NSInteger)code channelId:(NSString *)channelId count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadCountLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadCountByConversationTypesLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
contain:(BOOL)contain
|
||||
count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadMentionedCountLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
count:(NSInteger)count;
|
||||
|
||||
- (void)onUnreadCountCleared:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
#pragma mark - 会话草稿
|
||||
|
||||
- (void)onDraftMessageSaved:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
draft:(NSString *)draft;
|
||||
|
||||
- (void)onDraftMessageLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
draft:(NSString *)draft;
|
||||
|
||||
- (void)onDraftMessageCleared:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId;
|
||||
|
||||
#pragma mark - 会话免打扰
|
||||
|
||||
- (void)onConversationNotificationLevelChanged:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onConversationNotificationLevelLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onBlockedConversationsLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
conversations:(nullable NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onConversationNotificationLevelSynced:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onConversationTypeNotificationLevelChanged:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
- (void)onConversationTypeNotificationLevelLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
#pragma mark - 会话置顶
|
||||
|
||||
- (void)onConversationTopStatusChanged:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onConversationTopStatusLoaded:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onTopConversationsLoaded:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
conversations:(nullable NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onConversationTopStatusSynced:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
top:(BOOL)top;
|
||||
|
||||
|
||||
#pragma mark - 多端状态同步
|
||||
|
||||
- (void)onConversationReadStatusSynced:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
#pragma mark - 单聊回执
|
||||
|
||||
- (void)onPrivateReadReceiptReceived:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
/**
|
||||
* 收到自己登录的其他端消息同步阅读状态
|
||||
* @param type 会话类型
|
||||
* @param targetId 目标 ID
|
||||
* 消息时间戳,表示小于或等于此时间戳之前的消息为已读
|
||||
*/
|
||||
- (void)onConversationReadStatusSyncMessageReceived:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
#pragma mark - 群聊回执
|
||||
|
||||
/*!
|
||||
发起回执请求
|
||||
*/
|
||||
- (void)onGroupReadReceiptRequestSent:(NSInteger)code message:(RCIMIWMessage *)message;
|
||||
|
||||
/*!
|
||||
发起回执响应
|
||||
*/
|
||||
- (void)onGroupReadReceiptResponseSent:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
messages:(NSArray <RCIMIWMessage *> *)messages;
|
||||
|
||||
/*!
|
||||
群聊消息回执请求监听
|
||||
*/
|
||||
- (void)onGroupMessageReadReceiptRequestReceived:(NSString *)targetId messageUId:(NSString *)messageUId;
|
||||
|
||||
/*!
|
||||
群聊消息回执响应监听
|
||||
*/
|
||||
- (void)onGroupMessageReadReceiptResponseReceived:(NSString *)targetId messageUId:(NSString *)messageUId respondUserIds:(NSDictionary<NSString *, NSNumber *> *)respondUserIds;
|
||||
|
||||
#pragma mark - 输入状态
|
||||
|
||||
- (void)onTypingStatusChanged:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
userTypingStatus:(NSArray<RCIMIWTypingStatus *> *)userTypingStatus;
|
||||
|
||||
#pragma mark - 聊天室
|
||||
|
||||
- (void)onChatRoomJoining:(NSString *)targetId;
|
||||
|
||||
- (void)onChatRoomJoined:(NSInteger)code targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onChatRoomLeft:(NSInteger)code targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onChatRoomStatusChanged:(NSString *)targetId status:(RCIMIWChatRoomStatus)status;
|
||||
|
||||
- (void)onChatRoomMemberChanged:(NSString *)targetId actions:(NSArray<RCIMIWChatRoomMemberAction *> *)actions;
|
||||
|
||||
- (void)onChatRoomMessagesLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages
|
||||
syncTime:(long long)syncTime;
|
||||
|
||||
- (void)onChatRoomEntryAdded:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key;
|
||||
|
||||
- (void)onChatRoomEntriesAdded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
entries:(NSDictionary<NSString *, NSString *> *)entries
|
||||
errorEntries:(NSDictionary<NSString *, NSNumber *> *)errorEntries;
|
||||
|
||||
- (void)onChatRoomEntryLoaded:(NSInteger)code targetId:(NSString *)targetId entry:(NSDictionary<NSString *, NSString *> *)entry;
|
||||
|
||||
- (void)onChatRoomAllEntriesLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
entries:(NSDictionary<NSString *, NSString*> *)entries;
|
||||
|
||||
- (void)onChatRoomEntryRemoved:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key;
|
||||
|
||||
- (void)onChatRoomEntriesRemoved:(NSInteger)code targetId:(NSString *)targetId keys:(NSArray<NSString *> *)keys;
|
||||
|
||||
// kv 同步完成
|
||||
- (void)onChatRoomEntriesSynced:(NSString *)roomId;
|
||||
|
||||
// kv 改变回调,包含更新和删除
|
||||
- (void)onChatRoomEntriesChanged:(RCIMIWChatRoomEntriesOperationType)operationType
|
||||
roomId:(NSString *)roomId
|
||||
entries:(NSDictionary<NSString *, NSString*> *)entries;
|
||||
|
||||
#pragma mark - 用户管理
|
||||
|
||||
- (void)onBlacklistAdded:(NSInteger)code userId:(NSString *)userId;
|
||||
|
||||
- (void)onBlacklistRemoved:(NSInteger)code userId:(NSString *)userId;
|
||||
|
||||
- (void)onBlacklistLoaded:(NSInteger)code userIds:(NSArray<NSString *> *)userIds;
|
||||
|
||||
- (void)onBlacklistStatusLoaded:(NSInteger)code userId:(NSString *)userId status:(RCIMIWBlacklistStatus)status;
|
||||
|
||||
#pragma mark - 搜索消息
|
||||
|
||||
- (void)onMessagesSearched:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
keyword:(NSString *)keyword
|
||||
startTime:(long long)startTime
|
||||
count:(int)count
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onMessagesSearchedByTimeRange:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
keyword:(NSString *)keyword
|
||||
startTime:(long long)startTime
|
||||
endTime:(long long)endTime
|
||||
offset:(int)offset
|
||||
count:(int)count
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onMessagesSearchedByUserId:(NSInteger)code
|
||||
userId:(NSString *)userId
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
startTime:(long long)startTime
|
||||
count:(int)count
|
||||
messages:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onConversationsSearched:(NSInteger)code
|
||||
conversationTypes:(NSArray<NSNumber *> *)conversationTypes
|
||||
channelId:(NSString *)channelId
|
||||
messageTypes:(NSArray <NSNumber *>*)messageTypes
|
||||
keyword:(NSString *)keyword
|
||||
conversations:(NSArray<RCIMIWSearchConversationResult *> *)conversations;
|
||||
|
||||
#pragma mark - 会话标签
|
||||
|
||||
- (void)onTagCreated:(NSInteger)code tagId:(NSString *)tagId tagName:(NSString *)tagName;
|
||||
|
||||
- (void)onTagRemoved:(NSInteger)code tagId:(NSString *)tagId;
|
||||
|
||||
- (void)onTagNameUpdatedByName:(NSInteger)code tagId:(NSString *)tagId newName:(NSString *)newName;
|
||||
|
||||
- (void)onTagsLoaded:(NSInteger)code tags:(NSArray<RCIMIWTagInfo *> *)tags;
|
||||
|
||||
- (void)onConversationsAddedToTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onConversationsRemovedFromTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType: (RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onTagsRemovedFromConversation:(NSInteger)code
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
tagIds:(NSArray<NSString *> *)tagIds;
|
||||
|
||||
- (void)onTagsLoadedFromConversation:(NSInteger)code
|
||||
tags:(NSArray<RCIMIWConversationTagInfo *> *)tags
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId;
|
||||
|
||||
- (void)onConversationsLoadedFromTagByPage:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
timestamp:(long long)timestamp
|
||||
count:(int)count;
|
||||
|
||||
- (void)onUnreadCountLoadedByTag:(NSInteger)code
|
||||
count:(NSInteger)count
|
||||
tagId:(NSString *)tagId
|
||||
containBlocked:(BOOL)containBlocked;
|
||||
|
||||
- (void)onConversationTopStatusChangedInTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onConversationTopStatusLoadedInTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
conversationType:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
top:(BOOL)top;
|
||||
|
||||
- (void)onMessagesUnreadStatusClearedByTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId;
|
||||
|
||||
- (void)onConversationClearedByTag:(NSInteger)code
|
||||
tagId:(NSString *)tagId
|
||||
deleteMessage:(BOOL)deleteMessage;
|
||||
|
||||
#pragma mark - 全局免打扰
|
||||
|
||||
- (void)onNotificationQuietHoursChanged:(NSInteger)code
|
||||
startTime:(NSString *)startTime
|
||||
spanMinutes:(int)spanMinutes
|
||||
level:(RCIMIWPushNotificationQuietHoursLevel)level;
|
||||
|
||||
- (void)onNotificationQuietHoursRemoved:(NSInteger)code;
|
||||
|
||||
- (void)onNotificationQuietHoursLoaded:(NSInteger)code
|
||||
startTime:(NSString *)startTime
|
||||
spanMinutes:(int)spanMinutes
|
||||
level:(RCIMIWPushNotificationQuietHoursLevel)level;
|
||||
|
||||
- (void)onPushContentShowStatusChanged:(NSInteger)code showContent:(BOOL)showContent;
|
||||
|
||||
- (void)onPushLanguageChanged:(NSInteger)code language:(NSString *)language;
|
||||
|
||||
- (void)onPushReceiveStatusChanged:(NSInteger)code receive:(BOOL)receive;
|
||||
|
||||
#pragma mark - 超级群
|
||||
|
||||
|
||||
- (void)onUltraGroupConversationsSynced;
|
||||
|
||||
- (void)onUltraGroupReadStatusSynced:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
- (void)onConversationsLoadedForAllChannel:(NSInteger)code
|
||||
type:(RCIMIWConversationType)type
|
||||
targetId:(NSString *)targetId
|
||||
conversations:(NSArray<RCIMIWConversation *> *)conversations;
|
||||
|
||||
- (void)onUltraGroupMessageModified:(NSInteger)code messageUId:(NSString *)messageUId;
|
||||
|
||||
- (void)onUltraGroupMessageRecalled:(NSInteger)code message:(RCIMIWMessage *)message deleteRemote:(BOOL)deleteRemote;
|
||||
|
||||
- (void)onUltraGroupMessagesCleared:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
timestamp:(long long)timestamp
|
||||
policy:(RCIMIWMessageOperationPolicy)policy;
|
||||
|
||||
- (void)onUltraGroupMessagesClearedForAllChannel:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
timestamp:(long long)timestamp;
|
||||
|
||||
- (void)onUltraGroupTypingStatusSent:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
typingStatus:(RCIMIWUltraGroupTypingStatus)typingStatus;
|
||||
|
||||
- (void)onBatchRemoteUltraGroupMessagesLoaded:(NSInteger)code
|
||||
matchedMessages:(NSArray<RCIMIWMessage *> *)matchedMessages
|
||||
notMatchedMessages:(NSArray<RCIMIWMessage *> *)notMatchMessages;
|
||||
|
||||
- (void)onUltraGroupMessageExpansionUpdated:(NSInteger)code
|
||||
expansion:(NSDictionary<NSString *, NSString *> *)expansion
|
||||
messageUId:(NSString *)messageUId;
|
||||
|
||||
- (void)onUltraGroupMessageExpansionForKeysRemoved:(NSInteger)code
|
||||
messageUId:(NSString *)messageUId
|
||||
keys:(NSArray<NSString *> *)keys;
|
||||
|
||||
/**
|
||||
超级群已读时间同步
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param channelId 频道 ID
|
||||
@param timestamp 已读时间
|
||||
*/
|
||||
- (void)onUltraGroupReadTimeReceived:(NSString *)targetId channelId:(NSString *)channelId timestamp:(long long)timestamp;
|
||||
|
||||
/**
|
||||
超级群远端更新消息扩展的回调
|
||||
*/
|
||||
- (void)onRemoteUltraGroupMessageExpansionUpdated:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
/**
|
||||
超级群远端修改消息的回调
|
||||
*/
|
||||
- (void)onRemoteUltraGroupMessageModified:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onRemoteUltraGroupMessageRecalled:(NSArray<RCIMIWMessage *> *)messages;
|
||||
|
||||
- (void)onUltraGroupTypingStatusChanged:(NSArray<RCIMIWUltraGroupTypingStatusInfo *> *)info;
|
||||
|
||||
|
||||
/*!
|
||||
设置超级群的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param level 消息通知级别
|
||||
*/
|
||||
- (void)onUltraGroupDefaultNotificationLevelChanged:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
/*!
|
||||
获取超级群的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
*/
|
||||
- (void)onUltraGroupDefaultNotificationLevelLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
/*!
|
||||
设置超级群频道的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param channelId 频道 ID
|
||||
@param level 消息通知级别
|
||||
*/
|
||||
- (void)onUltraGroupChannelDefaultNotificationLevelChanged:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
/*!
|
||||
获取超级群频道的默认消息状态
|
||||
|
||||
@param targetId 会话 ID
|
||||
@param channelId 频道 ID
|
||||
*/
|
||||
- (void)onUltraGroupChannelDefaultNotificationLevelLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
channelId:(NSString *)channelId
|
||||
level:(RCIMIWPushNotificationLevel)level;
|
||||
|
||||
// 获取超级群所有会话的未读消息数
|
||||
- (void)onUltraGroupAllUnreadCountLoaded:(NSInteger)code count:(NSInteger)count;
|
||||
// 获取超级群所有会话的未读 @ 消息数
|
||||
- (void)onUltraGroupAllUnreadMentionedCountLoaded:(NSInteger)code count:(NSInteger)count;
|
||||
// 获取超级群指定会话的未读消息数
|
||||
- (void)onUltraGroupUnreadCountLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
count:(NSInteger)count;
|
||||
// 获取指定会话的未读 @ 消息数
|
||||
- (void)onUltraGroupUnreadMentionedCountLoaded:(NSInteger)code
|
||||
targetId:(NSString *)targetId
|
||||
count:(NSInteger)count;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
#endif /* RCIMIWEngineDelegate_h */
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// RCIMIWEngineOptions.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "RCIMIWDefines.h"
|
||||
|
||||
@class RCIMIWCompressOptions;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWEngineOptions : NSObject
|
||||
|
||||
/*!
|
||||
导航服务器地址
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *naviServer;
|
||||
|
||||
/*!
|
||||
文件服务器地址
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *fileServer;
|
||||
|
||||
/*!
|
||||
统计服务器地址
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *statisticServer;
|
||||
|
||||
/// 区域码
|
||||
///
|
||||
/// 默认为北京数据中心,用户可以根据实际情况设置区域码,设置之后,SDK 将会使用特定区域的服务地址
|
||||
/// 每个数据中心都会有对应的 naviServer 、statisticServer 、logServer
|
||||
/// 如果开发者手动设置了本类的 naviServer 、statisticServer 、logServer 将会覆盖对应区域的配置
|
||||
/// 例如:设置 areaCode 为北美数据中心,同时又设置了此处的 naviServer ,那么最终会使用此处的 naviServer 而不是北美数据中心的 naviServer
|
||||
@property (nonatomic, assign) RCIMIWAreaCode areaCode;
|
||||
|
||||
/*!
|
||||
是否踢出重连设备
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL kickReconnectDevice;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWCompressOptions *compressOptions;
|
||||
|
||||
@property (nonatomic, assign) RCIMIWLogLevel logLevel;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// RCIMIWFileMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWFileMessage : RCIMIWMediaMessage
|
||||
|
||||
/**
|
||||
文件名
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
|
||||
/**
|
||||
文件类型
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *fileType;
|
||||
|
||||
/**
|
||||
文件大小
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long size;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// RCIMIWGIFMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/8/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWGIFMessage : RCIMIWMediaMessage
|
||||
|
||||
/*!
|
||||
GIF 图的大小,单位字节
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long dataSize;
|
||||
|
||||
/*!
|
||||
GIF 图的宽
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long width;
|
||||
|
||||
/*!
|
||||
GIF 图的高
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long height;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,32 @@
|
||||
//
|
||||
// RCIMIWGroupReadReceiptInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 4/7/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWGroupReadReceiptInfo : NSObject
|
||||
|
||||
/*!
|
||||
是否需要回执消息
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL readReceiptMessage;
|
||||
|
||||
/**
|
||||
是否已经发送回执
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL hasRespond;
|
||||
|
||||
/*!
|
||||
发送回执的用户 ID 列表
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) NSDictionary<NSString *, NSNumber *> *respondUserIds;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// RCIMIWImageMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWImageMessage : RCIMIWMediaMessage
|
||||
|
||||
/*!
|
||||
图片消息的缩略图
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *thumbnailBase64String;
|
||||
|
||||
/*!
|
||||
是否发送原图
|
||||
|
||||
@discussion 在发送图片的时候,是否发送原图,默认值为 NO。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL original;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,37 @@
|
||||
//
|
||||
// RCIMIWLocationMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 8/15/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWLocationMessage : RCIMIWMessage
|
||||
|
||||
/**
|
||||
经度
|
||||
*/
|
||||
@property(nonatomic, assign) double longitude;
|
||||
|
||||
/**
|
||||
纬度
|
||||
*/
|
||||
@property(nonatomic, assign) double latitude;
|
||||
|
||||
/**
|
||||
兴趣点名称
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *poiName;
|
||||
|
||||
/*!
|
||||
地理位置的缩略图
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *thumbnailPath;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// RCIMIWMediaMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWMediaMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *local;
|
||||
@property (nonatomic, copy, readonly) NSString *remote;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,34 @@
|
||||
//
|
||||
// RCIMIWMentionedInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/18/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWMentionedInfo : NSObject
|
||||
|
||||
/*!
|
||||
@ 提醒的类型
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWMentionedType type;
|
||||
|
||||
/*!
|
||||
@ 的用户 ID 列表
|
||||
|
||||
@discussion 如果 type 是 @ 所有人,则可以传 nil
|
||||
*/
|
||||
@property (nonatomic, copy) NSArray<NSString *> *userIdList;
|
||||
|
||||
/*!
|
||||
包含 @ 提醒的消息,本地通知和远程推送显示的内容
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *mentionedContent;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// RCIMIWMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWMessagePushOptions.h>
|
||||
#import <RongIMWrapper/RCIMIWConversation.h>
|
||||
#import <RongIMWrapper/RCIMIWMentionedInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWUserInfo;
|
||||
@class RCIMIWGroupReadReceiptInfo;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWMessage : NSObject
|
||||
|
||||
/*!
|
||||
* 会话类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWConversationType conversationType;
|
||||
|
||||
/*!
|
||||
* 消息类型
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWMessageType messageType;
|
||||
|
||||
/*!
|
||||
* 会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
* 所属会话的业务标识,长度限制 20 字符
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *channelId;
|
||||
|
||||
/*!
|
||||
* 消息的 ID
|
||||
|
||||
@discussion 本地存储的消息的唯一值(数据库索引唯一值)
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long messageId;
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *messageUId;
|
||||
|
||||
/*!
|
||||
* 是否是离线消息,只在接收消息的回调方法中有效,如果消息为离线消息,则为 YES ,其他情况均为 NO
|
||||
*/
|
||||
@property(nonatomic, assign, readonly) BOOL offLine;
|
||||
|
||||
@property(nonatomic, strong, readonly) RCIMIWGroupReadReceiptInfo *groupReadReceiptInfo;
|
||||
|
||||
/*!
|
||||
* 消息的接收时间(Unix 时间戳、毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign) long long receivedTime;
|
||||
|
||||
/*!
|
||||
* 消息的发送时间(Unix 时间戳、毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign) long long sentTime;
|
||||
|
||||
/*!
|
||||
* 消息的接收状态
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWReceivedStatus receivedStatus;
|
||||
|
||||
/*!
|
||||
* 消息的发送状态
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWSentStatus sentStatus;
|
||||
|
||||
/*!
|
||||
* 消息的发送者 ID
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *senderUserId;
|
||||
|
||||
/*!
|
||||
* 消息的方向
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWMessageDirection direction;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWUserInfo *userInfo;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWMentionedInfo *mentionedInfo;
|
||||
|
||||
@property (nonatomic, strong) RCIMIWMessagePushOptions *pushOptions;
|
||||
|
||||
/*!
|
||||
* 消息的附加字段
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *extra;
|
||||
|
||||
/*!
|
||||
* 消息扩展信息列表
|
||||
@discussion 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息。
|
||||
* 如果消息发送后需要更新扩展信息,必须在消息发送前设置此值不为空。
|
||||
@discussion 默认消息扩展字典 key 长度不超过 32 ,value 长度不超过 64 ,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300
|
||||
*/
|
||||
@property (nonatomic, strong) NSDictionary<NSString *, NSString *> *expansion;
|
||||
|
||||
//- (instancetype)init __attribute__((unavailable("请使用 RCIMIWEngine 中 createXXMessage 系列方法创建对应的 message ")));
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,225 @@
|
||||
//
|
||||
// RCIMIWMessagePushOptions.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
@class RCIMIWIOSPushOptions;
|
||||
@class RCIMIWAndroidPushOptions;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
#pragma mark - RCIMIWMessagePushOptions
|
||||
|
||||
@interface RCIMIWMessagePushOptions : NSObject
|
||||
|
||||
/*!
|
||||
是否关闭通知
|
||||
YES: 关闭通知(不发送通知)
|
||||
NO: 不关闭通知(发送通知)
|
||||
默认 NO
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL disableNotification;
|
||||
|
||||
/*!
|
||||
是否屏蔽通知标题
|
||||
YES: 不显示通知标题
|
||||
NO: 显示通知标题
|
||||
|
||||
@discussion 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。
|
||||
@discussion 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL disablePushTitle;
|
||||
|
||||
/*!
|
||||
推送标题
|
||||
如果没有设置,会使用下面的默认标题显示规则
|
||||
默认标题显示规则:
|
||||
内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。
|
||||
自定义消息:默认不显示标题。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *pushTitle;
|
||||
|
||||
/*!
|
||||
推送内容
|
||||
优先使用 RCIMIWMessagePushOptions 的 pushContent。如果一个接口 RCIMIWMessage 和 pushContent 同时存在,且 RCIMIWMessagePushOptions.pushContent 为有效值,会优先使用 RCIMIWMessagePushOptions.pushContent 当做最终的 pushContent,例如 sendMessage 、 sendMediaMessage、recallMessage 接口。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *pushContent;
|
||||
|
||||
/*!
|
||||
远程推送附加信息
|
||||
优先使用 MessagePushConfig 的 pushData。如果一个接口 RCMessage 和 pushData 同时存在,且 MessagePushConfig.pushData 为有效值,会优先使用 MessagePushConfig.pushData 当做最终的 pushData,例如 sendMessage 、 sendMediaMessage 接口。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *pushData;
|
||||
|
||||
/*!
|
||||
是否强制显示通知详情
|
||||
当目标用户通过 RCIMIWEngine 中的 changePushContentShowStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL forceShowDetailContent;
|
||||
|
||||
/*!
|
||||
推送模板 ID,设置后根据目标用户通过 SDK 的 changePushLanguage 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送,模板内容在“开发者后台-自定义推送文案”中进行设置。
|
||||
注: pushTitle 和 pushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *templateId;
|
||||
|
||||
@property (nonatomic, assign) BOOL voIPPush;
|
||||
|
||||
/*!
|
||||
iOS 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCIMIWIOSPushOptions *iOSPushOptions;
|
||||
|
||||
/*!
|
||||
Android 平台相关配置
|
||||
*/
|
||||
@property (nonatomic, strong) RCIMIWAndroidPushOptions *androidPushOptions;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - RCIMIWIOSPushOptions
|
||||
|
||||
@interface RCIMIWIOSPushOptions : NSObject
|
||||
|
||||
/*!
|
||||
iOS 平台通知栏分组 ID
|
||||
相同的 thread-id 推送分为一组
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *threadId;
|
||||
|
||||
/*!
|
||||
iOS 标识推送的类型
|
||||
如果不设置后台默认取消息类型字符串,如 RC:TxtMsg
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *category;
|
||||
|
||||
/*!
|
||||
iOS 平台通知覆盖 ID
|
||||
apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节
|
||||
iOS10 开始支持
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *apnsCollapseId;
|
||||
|
||||
/*!
|
||||
iOS 富文本推送内容
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *richMediaUri;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - RCIMIWAndroidPushOptions
|
||||
|
||||
@interface RCIMIWAndroidPushOptions : NSObject
|
||||
|
||||
/*!
|
||||
Android 平台 Push 唯一标识
|
||||
目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *notificationId;
|
||||
|
||||
/*!
|
||||
小米的渠道 ID
|
||||
该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdMi;
|
||||
|
||||
/*!
|
||||
华为的渠道 ID
|
||||
该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdHW;
|
||||
|
||||
/*!
|
||||
华为推送消息分类
|
||||
|
||||
社交通讯:即时通讯[IM],音频、视频通话[VOIP]
|
||||
服务提醒:订阅[SUBSCRIPTION],出行[TRAVEL],健康[HEALTH],工作事项提醒[WORK],帐号动态[ACCOUNT],订单&物流[EXPRESS],财务[FINANCE],系统提示[SYSTEM_REMINDER],邮件[MAIL]
|
||||
资讯营销类:内容资讯/新闻/财经动态/生活资讯/社交动态/调研/其他[MARKETING]
|
||||
营销活动:产品促销/功能推荐/运营活动/MARKETING
|
||||
更多信息请参考华为消息分类标准文档: https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/message-classification-0000001149358835
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.0
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryHW;
|
||||
|
||||
/*!
|
||||
OPPO 的渠道 ID
|
||||
该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdOPPO;
|
||||
|
||||
/*!
|
||||
VIVO 推送通道类型
|
||||
开发者集成了 VIVO 推送,需要指定推送类型时,可进行设置。
|
||||
目前可选值 "0"(运营消息) 和 "1"(系统消息)
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWVIVOPushType pushTypeVIVO;
|
||||
|
||||
/*!
|
||||
FCM 通知类型推送时所使用的分组 id
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *collapseKeyFCM;
|
||||
|
||||
/*!
|
||||
FCM 通知类型的推送所使用的通知图片 url
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlFCM;
|
||||
|
||||
/*!
|
||||
华为推送消息级别
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWImportanceHW importanceHW;
|
||||
|
||||
/*!
|
||||
华为通知栏消息右侧大图标 URL
|
||||
如果不设置,则不展示通知栏右侧图标。URL使用的协议必须是HTTPS协议,取值样例:https://example.com/image.png。
|
||||
图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlHW;
|
||||
|
||||
/*!
|
||||
小米 Large icon 链接
|
||||
Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *imageUrlMi;
|
||||
|
||||
/*!
|
||||
FCM 通知的频道 ID
|
||||
该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *channelIdFCM;
|
||||
|
||||
|
||||
/*!
|
||||
Vivo 推送消息分类
|
||||
|
||||
系统消息分类
|
||||
即时消息[IM],账号与资产[ACCOUNT],日程待办[TODO],设备信息[DEVICE_REMINDER],订单与物流[ORDER],订阅提醒[SUBSCRIPTION]
|
||||
运营消息分类
|
||||
新闻[NEWS],内容推荐[CONTENT],运营活动[MARKETING],社交动态[SOCIAL]
|
||||
更多信息请参考 Vivo 消息分类标准文档: https://dev.vivo.com.cn/documentCenter/doc/359
|
||||
|
||||
@discussion 默认值为 null,如果为 null,则以服务配置为准
|
||||
|
||||
@since 5.4.3
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *categoryVivo;
|
||||
|
||||
/*!
|
||||
荣耀推送消息级别
|
||||
*/
|
||||
@property (nonatomic, assign) RCIMIWImportanceHonor importanceHonor;
|
||||
|
||||
@property (nonatomic, copy) NSString *imageUrlHonor;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWNativeCustomMediaMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by Lang on 2024/6/3.
|
||||
// Copyright © 2024 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWNativeCustomMediaMessage : RCIMIWMediaMessage
|
||||
|
||||
/// 自定义消息的内容
|
||||
@property (nonatomic, copy) NSDictionary<NSString *, NSString *> *fields;
|
||||
|
||||
/// 消息搜索关键字
|
||||
@property (nonatomic, copy) NSArray<NSString *> *searchableWords;
|
||||
|
||||
/// 消息类型名
|
||||
@property (nonatomic, copy, readonly) NSString *messageIdentifier;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWNativeCustomMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by Lang on 2024/5/30.
|
||||
// Copyright © 2024 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWNativeCustomMessage : RCIMIWMessage
|
||||
|
||||
/// 自定义消息的 json 内容
|
||||
@property (nonatomic, copy) NSDictionary<NSString *, NSString *> *fields;
|
||||
|
||||
/// 消息搜索关键字
|
||||
@property (nonatomic, copy) NSArray<NSString *> *searchableWords;
|
||||
|
||||
/// 消息类型名
|
||||
@property (nonatomic, copy, readonly) NSString *messageIdentifier;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,99 @@
|
||||
//
|
||||
// RCIMIWPlatformConverter.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by zhangyifan on 2022/5/10.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
@class RCIMIWChatRoomMemberAction;
|
||||
@class RCIMIWBlockedMessageInfo;
|
||||
@class RCIMIWGroupReadReceiptInfo;
|
||||
@class RCIMIWBlockedMessageInfo;
|
||||
@class RCIMIWTypingStatus;
|
||||
@class RCIMIWUltraGroupTypingStatusInfo;
|
||||
@class RCIMIWMessage;
|
||||
@class RCIMIWMediaMessage;
|
||||
@class RCIMIWMessagePushOptions;
|
||||
@class RCIMIWCompressOptions;
|
||||
@class RCIMIWEngineOptions;
|
||||
@class RCIMIWSearchConversationResult;
|
||||
@class RCIMIWAndroidPushOptions;
|
||||
@class RCIMIWIOSPushOptions;
|
||||
@class RCIMIWConversation;
|
||||
@class RCIMIWTagInfo;
|
||||
@class RCIMIWConversationTagInfo;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWPlatformConverter : NSObject
|
||||
|
||||
|
||||
// ChatRoomMemberAction
|
||||
+ (NSDictionary *)convertChatRoomMemberActionToDict:(RCIMIWChatRoomMemberAction *)chatRoomMemberAction;
|
||||
+ (RCIMIWChatRoomMemberAction *)convertChatRoomMemberActionFromDict:(NSDictionary *)chatRoomMemberAction;
|
||||
|
||||
// BlockedMessageInfo
|
||||
+ (NSDictionary *)convertBlockedMessageInfoToDict:(RCIMIWBlockedMessageInfo *)blockedMessageInfo;
|
||||
+ (RCIMIWBlockedMessageInfo *)convertBlockedMessageInfoFromDict:(NSDictionary *)blockedMessageInfo;
|
||||
|
||||
// GroupReadReceiptInfo
|
||||
+ (NSDictionary *)convertGroupReadReceiptInfoToDict:(RCIMIWGroupReadReceiptInfo *)groupReadReceiptInfo;
|
||||
+ (RCIMIWGroupReadReceiptInfo *)convertGroupReadReceiptInfoFromDict:(NSDictionary *)groupReadReceiptInfo;
|
||||
|
||||
|
||||
// TypingStatus
|
||||
+ (NSDictionary *)convertTypingStatusToDict:(RCIMIWTypingStatus *)typingStatus;
|
||||
+ (RCIMIWTypingStatus *)convertTypingStatusFromDict:(NSDictionary *)typingStatus;
|
||||
|
||||
// UltraGroupTypingStatusInfo
|
||||
+ (NSDictionary *)convertUltraGroupTypingStatusInfoToDict:(RCIMIWUltraGroupTypingStatusInfo *)ultraGroupTypingStatusInfo;
|
||||
+ (RCIMIWUltraGroupTypingStatusInfo *)convertUltraGroupTypingStatusInfoFromDict:(NSDictionary *)ultraGroupTypingStatusInfo;
|
||||
|
||||
|
||||
// Message
|
||||
+ (NSDictionary *)convertMessageToDict:(RCIMIWMessage *)message;
|
||||
+ (RCIMIWMessage *)convertMessageFromDict:(NSDictionary *)message;
|
||||
|
||||
+ (NSDictionary *)convertMediaMessageToDict:(RCIMIWMediaMessage *)message;
|
||||
+ (RCIMIWMediaMessage *)convertMediaMessageFromDict:(NSDictionary *)message;
|
||||
|
||||
|
||||
// AndroidPushOptions
|
||||
//+ (NSDictionary *)convertAndroidPushOptionsToDict:(RCIMIWAndroidPushOptions *)androidPushOptions;
|
||||
//+ (RCIMIWAndroidPushOptions *)convertAndroidPushOptionsFromDict:(NSDictionary *)androidPushOptions;
|
||||
|
||||
|
||||
// EngineOptions
|
||||
+ (NSDictionary *)convertEngineOptionsToDict:(RCIMIWEngineOptions *)engineOptions;
|
||||
+ (RCIMIWEngineOptions *)convertEngineOptionsFromDict:(NSDictionary *)engineOptions;
|
||||
|
||||
|
||||
// IOSPushOptions
|
||||
//+ (NSDictionary *)convertIOSPushOptionsToDict:(RCIMIWIOSPushOptions *)iosPushOptions;
|
||||
//+ (RCIMIWIOSPushOptions *)convertIOSPushOptionsFromDict:(NSDictionary *)iosPushOptions;
|
||||
|
||||
|
||||
// MessagePushOptions
|
||||
+ (NSDictionary *)convertMessagePushOptionsToDict:(RCIMIWMessagePushOptions *)messagePushOptions;
|
||||
+ (RCIMIWMessagePushOptions *)convertMessagePushOptionsFromDict:(NSDictionary *)messagePushOptions;
|
||||
|
||||
|
||||
// Conversation
|
||||
+ (NSDictionary *)convertConversationToDict:(RCIMIWConversation *)conversation;
|
||||
|
||||
// SearchConversationResult
|
||||
+ (NSDictionary *)convertSearchConversationResultToDict:(RCIMIWSearchConversationResult *)searchConversationResult;
|
||||
|
||||
// SearchConversationResult
|
||||
+ (NSDictionary *)convertTagInfoToDict:(RCIMIWTagInfo *)tagInfo;
|
||||
|
||||
// SearchConversationResult
|
||||
+ (NSDictionary *)convertConversationTagInfoToDict:(RCIMIWConversationTagInfo *)tagInfo;
|
||||
|
||||
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,47 @@
|
||||
//
|
||||
// RCIMIWRecallNotificationMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/*!
|
||||
撤回通知消息类
|
||||
@discussion 撤回通知消息,此消息会进行本地存储,但不计入未读消息数。
|
||||
|
||||
@remarks 通知类消息
|
||||
*/
|
||||
@interface RCIMIWRecallNotificationMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
是否是管理员操作
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL admin;
|
||||
|
||||
/*!
|
||||
是否删除
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) BOOL deleted;
|
||||
|
||||
/*!
|
||||
撤回的时间(毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long recallTime;
|
||||
|
||||
/*!
|
||||
撤回动作的时间(毫秒)
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long recallActionTime;
|
||||
|
||||
/*!
|
||||
被撤回的原消息
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWMessage *originalMessage;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// RCIMIWReferenceMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/8/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWReferenceMessage : RCIMIWMessage
|
||||
|
||||
/*!
|
||||
文本
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) NSString *text;
|
||||
|
||||
/*!
|
||||
被引用消息体
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWMessage *referenceMessage;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// RCIMIWSearchConversationResult.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/17/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class RCIMIWConversation;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWSearchConversationResult : NSObject
|
||||
|
||||
/*!
|
||||
匹配的会话对象
|
||||
*/
|
||||
@property (nonatomic, strong, readonly) RCIMIWConversation *conversation;
|
||||
|
||||
/*
|
||||
会话匹配的消息条数
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) int count;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// RCIMIWSightMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWSightMessage : RCIMIWMediaMessage
|
||||
|
||||
/**
|
||||
视频时长,以秒为单位
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSUInteger duration;
|
||||
|
||||
/**
|
||||
文件大小
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long size;
|
||||
|
||||
/**
|
||||
小视频文件名
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *name;
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *thumbnailBase64String;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// RCIMIWTagInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/3/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWTagInfo : NSObject
|
||||
|
||||
/*!
|
||||
标签 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *tagId;
|
||||
|
||||
/*!
|
||||
标签名称
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *tagName;
|
||||
|
||||
/*!
|
||||
该标签下的会话个数
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger count;
|
||||
|
||||
/*!
|
||||
标签创建时间
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long timestamp;
|
||||
|
||||
/*!
|
||||
初始化方法
|
||||
|
||||
@param tagId 标签 id
|
||||
@param tagName 标签名称
|
||||
*/
|
||||
- (instancetype)initWithTagId:(NSString *)tagId
|
||||
tagName:(NSString *)tagName;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// RCIMIWTextMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWTextMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy) NSString *text;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// RCIMIWTypingStatus.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/3/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWTypingStatus : NSObject
|
||||
|
||||
/*!
|
||||
当前正在输入的用户 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *userId;
|
||||
|
||||
/*!
|
||||
当前正在输入的消息类型名
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *contentType;
|
||||
|
||||
@property (nonatomic, assign, readonly) long long sentTime;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// RCIMIWUltraGroupTypingStatusInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/21/22.
|
||||
// Copyright © 2022 RongCloud. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWUltraGroupTypingStatusInfo : NSObject
|
||||
|
||||
/*!
|
||||
会话 ID
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *targetId;
|
||||
|
||||
/*!
|
||||
所属会话的业务标识
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *channelId;
|
||||
|
||||
/*!
|
||||
用户id
|
||||
*/
|
||||
@property (nonatomic, copy, readonly) NSString *userId;
|
||||
|
||||
/*!
|
||||
用户数
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSInteger userNums;
|
||||
|
||||
/*!
|
||||
输入状态
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) RCIMIWUltraGroupTypingStatus status;
|
||||
|
||||
/*!
|
||||
服务端收到用户操作的上行时间.
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) long long timestamp;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,19 @@
|
||||
//
|
||||
// RCIMIWUnknownMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/9/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWUnknownMessage : RCIMIWMessage
|
||||
|
||||
@property (nonatomic, copy, readonly) NSString *rawData;
|
||||
@property (nonatomic, copy, readonly) NSString *objectName;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// RCIMIWUserInfo.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/18/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWUserInfo : NSObject
|
||||
|
||||
/*!
|
||||
用户 ID
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *userId;
|
||||
|
||||
/*!
|
||||
用户名称
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *name;
|
||||
|
||||
/*!
|
||||
用户头像的 URL
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *portrait;
|
||||
|
||||
/*!
|
||||
用户备注
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *alias;
|
||||
|
||||
/**
|
||||
用户信息附加字段
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *extra;
|
||||
|
||||
/*!
|
||||
用户信息的初始化方法
|
||||
|
||||
@param userId 用户 ID
|
||||
@param name 用户名称
|
||||
@param portraitUri 用户头像的 URL
|
||||
@return 用户信息对象
|
||||
*/
|
||||
- (instancetype)initWithUserId:(NSString *)userId name:(NSString *)name portraitUri:(NSString *)portraitUri;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,21 @@
|
||||
//
|
||||
// RCIMIWVoiceMessage.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 3/7/22.
|
||||
//
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RCIMIWVoiceMessage : RCIMIWMediaMessage
|
||||
|
||||
/**
|
||||
语音时长,以秒为单位
|
||||
*/
|
||||
@property (nonatomic, assign, readonly) NSUInteger duration;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// RongIMWrapper.h
|
||||
// RongIMWrapper
|
||||
//
|
||||
// Created by RongCloud on 2/15/22.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
//! Project version number for RongIMWrapper.
|
||||
FOUNDATION_EXPORT double RongIMWrapperVersionNumber;
|
||||
|
||||
//! Project version string for RongIMWrapper.
|
||||
FOUNDATION_EXPORT const unsigned char RongIMWrapperVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <RongIMWrapper/PublicHeader.h>
|
||||
|
||||
|
||||
#import <RongIMWrapper/RCIMIWEngine.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWEngineOptions.h>
|
||||
#import <RongIMWrapper/RCIMIWMessagePushOptions.h>
|
||||
#import <RongIMWrapper/RCIMIWCompressOptions.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWMediaMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWTextMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWImageMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWVoiceMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWSightMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWFileMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWGIFMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWCustomMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWCommandMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWReferenceMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWCommandNotificationMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWRecallNotificationMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWLocationMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWUnknownMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWNativeCustomMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWNativeCustomMediaMessage.h>
|
||||
#import <RongIMWrapper/RCIMIWConversation.h>
|
||||
#import <RongIMWrapper/RCIMIWSearchConversationResult.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWGroupReadReceiptInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWBlockedMessageInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWMentionedInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWUserInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWTypingStatus.h>
|
||||
#import <RongIMWrapper/RCIMIWTagInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWConversationTagInfo.h>
|
||||
#import <RongIMWrapper/RCIMIWUltraGroupTypingStatusInfo.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWPlatformConverter.h>
|
||||
|
||||
#import <RongIMWrapper/RCIMIWDefines.h>
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
framework module RongIMWrapper {
|
||||
umbrella header "RongIMWrapper.h"
|
||||
export *
|
||||
|
||||
module * { export * }
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Location</key>
|
||||
<dict>
|
||||
<key>LocationImageQuality</key>
|
||||
<real>0.7</real>
|
||||
<key>LocationImageWidth</key>
|
||||
<string>480</string>
|
||||
<key>LocationImageHeight</key>
|
||||
<string>240</string>
|
||||
</dict>
|
||||
<key>File</key>
|
||||
<dict>
|
||||
<key>RelativePath</key>
|
||||
<string>Documents/MyFile</string>
|
||||
<key>MaxRangeUnit</key>
|
||||
<real>1048576</real>
|
||||
</dict>
|
||||
<key>Voice</key>
|
||||
<dict>
|
||||
<key>AudioEncodingBitRate</key>
|
||||
<real>7950</real>
|
||||
</dict>
|
||||
<key>Image</key>
|
||||
<dict>
|
||||
<key>ThumbnailQuality</key>
|
||||
<string>0.3</string>
|
||||
<key>ThumbnailMaxSize</key>
|
||||
<string>240</string>
|
||||
<key>ThumbnailMinSize</key>
|
||||
<string>100</string>
|
||||
<key>ImageQuality</key>
|
||||
<real>0.85</real>
|
||||
<key>ImageWidth</key>
|
||||
<integer>1080</integer>
|
||||
<key>ImageHeight</key>
|
||||
<integer>1080</integer>
|
||||
</dict>
|
||||
<key>CustomerService</key>
|
||||
<dict>
|
||||
<key>SuspendWhenLeave</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Download</key>
|
||||
<dict>
|
||||
<key>DownloadSliceSize</key>
|
||||
<real>20971520</real>
|
||||
</dict>
|
||||
<key>Sight</key>
|
||||
<dict>
|
||||
<key>SightCompressWidth</key>
|
||||
<integer>540</integer>
|
||||
<key>SightCompressHeight</key>
|
||||
<integer>960</integer>
|
||||
</dict>
|
||||
<key>HeartBeatInterval</key>
|
||||
<integer>15</integer>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -0,0 +1,672 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Headers/RCIMIWBlockedMessageInfo.h</key>
|
||||
<data>
|
||||
oFtw97CuFfdFacaQCYa0vlc7X8w=
|
||||
</data>
|
||||
<key>Headers/RCIMIWChatRoomMemberAction.h</key>
|
||||
<data>
|
||||
Irj/sfQvPSbDI155s7oeMqPcawg=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCommandMessage.h</key>
|
||||
<data>
|
||||
Qx757Ked5q26cEvzSx+fAp6GI9M=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCommandNotificationMessage.h</key>
|
||||
<data>
|
||||
OG3jeKw+nw3SaLkg9FWDi2X3lrc=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCompressOptions.h</key>
|
||||
<data>
|
||||
xHum9csO4h31oM4ThiqfGWmExVE=
|
||||
</data>
|
||||
<key>Headers/RCIMIWConversation.h</key>
|
||||
<data>
|
||||
9eTyDyAkPaqkeLDtc3BXetXSxYY=
|
||||
</data>
|
||||
<key>Headers/RCIMIWConversationTagInfo.h</key>
|
||||
<data>
|
||||
C5vgJNgPATsesPBQufy4L5gpSnQ=
|
||||
</data>
|
||||
<key>Headers/RCIMIWCustomMessage.h</key>
|
||||
<data>
|
||||
rrUBcrcJmz829fv4diEcXP4H5YE=
|
||||
</data>
|
||||
<key>Headers/RCIMIWDefines.h</key>
|
||||
<data>
|
||||
eol/yMMWxD5sCT05wcGeXcYmqUM=
|
||||
</data>
|
||||
<key>Headers/RCIMIWEngine.h</key>
|
||||
<data>
|
||||
64Y+xrsLW0p1FIexk8K8ICOLCw0=
|
||||
</data>
|
||||
<key>Headers/RCIMIWEngineDelegate.h</key>
|
||||
<data>
|
||||
ZyHi3S2t7/25g9YxWxmKpUVHm9w=
|
||||
</data>
|
||||
<key>Headers/RCIMIWEngineOptions.h</key>
|
||||
<data>
|
||||
ud+wnRuziaUxwXm6wxNrhO2bBRc=
|
||||
</data>
|
||||
<key>Headers/RCIMIWFileMessage.h</key>
|
||||
<data>
|
||||
UPDum8Tj3FXB+ldQidm+r+tr01s=
|
||||
</data>
|
||||
<key>Headers/RCIMIWGIFMessage.h</key>
|
||||
<data>
|
||||
mpVdornL+JqEIlGXyJ7F9b7MJZ4=
|
||||
</data>
|
||||
<key>Headers/RCIMIWGroupReadReceiptInfo.h</key>
|
||||
<data>
|
||||
03Hkay3rOYHjnhURsy8rsK2tX/k=
|
||||
</data>
|
||||
<key>Headers/RCIMIWImageMessage.h</key>
|
||||
<data>
|
||||
KYDTFZHSu5lEYa4l+lg1KBxDKOs=
|
||||
</data>
|
||||
<key>Headers/RCIMIWLocationMessage.h</key>
|
||||
<data>
|
||||
5mU4FWewcdpZyIUwjF8GOXihTmQ=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMediaMessage.h</key>
|
||||
<data>
|
||||
Jqjv39goLbc6GSwraJ9Wspz/vpA=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMentionedInfo.h</key>
|
||||
<data>
|
||||
2LvZ0xCmos1SX4KawuSJY1Tkd98=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMessage.h</key>
|
||||
<data>
|
||||
KUjzmIGwOMx9PT8vTkFgWYjdSwU=
|
||||
</data>
|
||||
<key>Headers/RCIMIWMessagePushOptions.h</key>
|
||||
<data>
|
||||
INZw8eqQqHxDVlRDBufb3BzB0zw=
|
||||
</data>
|
||||
<key>Headers/RCIMIWNativeCustomMediaMessage.h</key>
|
||||
<data>
|
||||
TtJvIjR75Xsdwui1Xgi2LDy7sQo=
|
||||
</data>
|
||||
<key>Headers/RCIMIWNativeCustomMessage.h</key>
|
||||
<data>
|
||||
jl/KqekfUeoiPBsnZx9uSXwL604=
|
||||
</data>
|
||||
<key>Headers/RCIMIWPlatformConverter.h</key>
|
||||
<data>
|
||||
qBfombP/fhIyPE4YuBePNjby9DI=
|
||||
</data>
|
||||
<key>Headers/RCIMIWRecallNotificationMessage.h</key>
|
||||
<data>
|
||||
hfpwloo0psjA3Do5qKerrEEGxwI=
|
||||
</data>
|
||||
<key>Headers/RCIMIWReferenceMessage.h</key>
|
||||
<data>
|
||||
grgrdiQxBQgcjcv5n0veJ+CAziI=
|
||||
</data>
|
||||
<key>Headers/RCIMIWSearchConversationResult.h</key>
|
||||
<data>
|
||||
qxxZUH0k9fzbrwHlwWHhHBxJ5R0=
|
||||
</data>
|
||||
<key>Headers/RCIMIWSightMessage.h</key>
|
||||
<data>
|
||||
sHEoJgaWKxvOUA1AsuPuaXTQZOM=
|
||||
</data>
|
||||
<key>Headers/RCIMIWTagInfo.h</key>
|
||||
<data>
|
||||
nay+4cxqaKWFfJAFjRSFwhInC/8=
|
||||
</data>
|
||||
<key>Headers/RCIMIWTextMessage.h</key>
|
||||
<data>
|
||||
Rm8BdDUpfiiOteZNWkBihhndJ9k=
|
||||
</data>
|
||||
<key>Headers/RCIMIWTypingStatus.h</key>
|
||||
<data>
|
||||
akJLOB7HKoppJFBl7M+CRqVnzsE=
|
||||
</data>
|
||||
<key>Headers/RCIMIWUltraGroupTypingStatusInfo.h</key>
|
||||
<data>
|
||||
bbwfwGtOchVmLKU/iOe3eDHptik=
|
||||
</data>
|
||||
<key>Headers/RCIMIWUnknownMessage.h</key>
|
||||
<data>
|
||||
qgUrjxdq+sCU6/1/T4I9sq4LcHA=
|
||||
</data>
|
||||
<key>Headers/RCIMIWUserInfo.h</key>
|
||||
<data>
|
||||
5g7vzLQk3tcFraYj6LiXTofflNA=
|
||||
</data>
|
||||
<key>Headers/RCIMIWVoiceMessage.h</key>
|
||||
<data>
|
||||
qsVZR8GP7n2O5FqQcKtBfAChfbM=
|
||||
</data>
|
||||
<key>Headers/RongIMWrapper.h</key>
|
||||
<data>
|
||||
YdH8Ujk85GPUJ+MR6roHGiP+3tU=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
HTOWT29pO5aqD+CmuzFlvT9wnww=
|
||||
</data>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<data>
|
||||
Vh9vdNQkaXreFCi1krLgoYVDvCg=
|
||||
</data>
|
||||
<key>RCConfig.plist</key>
|
||||
<data>
|
||||
QA7nn/q1j2Y4AJbaGtBBs8g71xE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Headers/RCIMIWBlockedMessageInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
oFtw97CuFfdFacaQCYa0vlc7X8w=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
nNHHGlz3h+zRUQ/VsvRQ0Xyqx9kgRY4NHDprJKhsDO4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWChatRoomMemberAction.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Irj/sfQvPSbDI155s7oeMqPcawg=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
dJEENT/QimJq1ZJ8juxcIs3g2V+UwfgDdKPLV6JWzKE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCommandMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Qx757Ked5q26cEvzSx+fAp6GI9M=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
A9QP8rCAngk9gKWqr4RNV6DGmW5fLwrb7DPjG0eEcAQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCommandNotificationMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
OG3jeKw+nw3SaLkg9FWDi2X3lrc=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
d7RxZ/a+a2wBKPE09QvuXYbEoFH9QbpPuiPKgkLJLIw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCompressOptions.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
xHum9csO4h31oM4ThiqfGWmExVE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Xb4YsZJJ9PUPGBvsmbDufy2NBIti11o4QSQQFC4fUZo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWConversation.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
9eTyDyAkPaqkeLDtc3BXetXSxYY=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Ce0mpcf06Wl3c56Ree9dpQJxyw0eXrQFSOSbW6aWe90=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWConversationTagInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
C5vgJNgPATsesPBQufy4L5gpSnQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
yLRPC+dWbAoNGPmwjd8jVNHZIlaphbKuehQWY93v28w=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWCustomMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
rrUBcrcJmz829fv4diEcXP4H5YE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
g1szSyNUGQlIdSQREcs8KG0fudaJVU5WO83PHR7lABM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWDefines.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
eol/yMMWxD5sCT05wcGeXcYmqUM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
BVGBRSwY5wKEat5PE4nFqps1FVWTbwCiBdItmLNcK8o=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWEngine.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
64Y+xrsLW0p1FIexk8K8ICOLCw0=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
UrxJREgUJC9UUYi/wE70/8Fgbg8xckI7i9xH1h/Wc54=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWEngineDelegate.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ZyHi3S2t7/25g9YxWxmKpUVHm9w=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
YrXKrToIMLnsY3hFS4qYUPmJAxQxIU7sWDyF/7qLBac=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWEngineOptions.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
ud+wnRuziaUxwXm6wxNrhO2bBRc=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
fx4bU9ekLddFW8qP+iwvOFcOUPzUBbAxoTLD8Cq0PyM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWFileMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
UPDum8Tj3FXB+ldQidm+r+tr01s=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
EXIbvs8fvoqaNmk6DEtStlqa1b/GSwp/IMD+q+Uzqyg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWGIFMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
mpVdornL+JqEIlGXyJ7F9b7MJZ4=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
9gw+eXxC5N3mDzYscVLCwN3YlIHO+Chge5egYeGrKDA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWGroupReadReceiptInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
03Hkay3rOYHjnhURsy8rsK2tX/k=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
mO8PiMP6mtcgKMmAHp0RtXS3S2DWkw/zJebC7+B576g=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWImageMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
KYDTFZHSu5lEYa4l+lg1KBxDKOs=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
9vSrnft9SHddZuUKxnqwi3dqhwEcDSeDqpGrXGPjWy4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWLocationMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
5mU4FWewcdpZyIUwjF8GOXihTmQ=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4aN0WFOisK9iWsIfPYpaiemEqSkLKjSBHp0AKzwFDbI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMediaMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Jqjv39goLbc6GSwraJ9Wspz/vpA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
UYTeVsVzOiRxW6tvDrjUCFzDtAJ59EcdumZOhPe6fuc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMentionedInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
2LvZ0xCmos1SX4KawuSJY1Tkd98=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
a8e+yr5CJavd91kN/ceqjRtkVqnL3WGKd96FSaIYn1M=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
KUjzmIGwOMx9PT8vTkFgWYjdSwU=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
8+94KpgMMid7dfHc81WzTIFeRWUvKg9FOfB0i45IOXQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWMessagePushOptions.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
INZw8eqQqHxDVlRDBufb3BzB0zw=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
H0JJfmDTazbk58Jx/4KfuloerPu+JFrxF8b7kwmAGqw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWNativeCustomMediaMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
TtJvIjR75Xsdwui1Xgi2LDy7sQo=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
x0bXk2B/V8CSuGyipr38ldRg4z5VlJewFFik2dIfKQc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWNativeCustomMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
jl/KqekfUeoiPBsnZx9uSXwL604=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
zJCZ22Musnlgmz168nQy/X2928Pf0VqeH3OBJJ0ALA8=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWPlatformConverter.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qBfombP/fhIyPE4YuBePNjby9DI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Qp/Je6EMWPamGGqKOzxdrGy0S8nJgak5S/PNUKIj2VY=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWRecallNotificationMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
hfpwloo0psjA3Do5qKerrEEGxwI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
gihBvLY/5dIi3+f0eAk+x/6AP3p7qmm23Las654a+pE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWReferenceMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
grgrdiQxBQgcjcv5n0veJ+CAziI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
p7uOCVt34XJnhVyZuh3WEsfeEtytZqBrCro2sjG3HGQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWSearchConversationResult.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qxxZUH0k9fzbrwHlwWHhHBxJ5R0=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
BILRIt1LsrKPy8ElRc5Iwhi/2lKbizV4Pq4sqJuRLzA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWSightMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
sHEoJgaWKxvOUA1AsuPuaXTQZOM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4CmK0XgLeudMWN1ykqHcl7IdgL02aWI+jYabboUNE1M=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWTagInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
nay+4cxqaKWFfJAFjRSFwhInC/8=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
OvNot8iVhndDHQ1NSkK/1XvSCv8+FZiwVSSJTR3zcVk=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWTextMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Rm8BdDUpfiiOteZNWkBihhndJ9k=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
AYeHN9oWIpMsiyefGcxC7jFEpauDhASYP4RcxB9Kl08=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWTypingStatus.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
akJLOB7HKoppJFBl7M+CRqVnzsE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
YPGPyuROOdLhtyhf3E331BOPgHc5YfeK1PN7idp54Cc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWUltraGroupTypingStatusInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
bbwfwGtOchVmLKU/iOe3eDHptik=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
0AdngedKL3OJA0QFjGXRtRR1hwUdvsTWcoEvcyaEPTc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWUnknownMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qgUrjxdq+sCU6/1/T4I9sq4LcHA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
7p4NYJJwAMXAwYqWwWuhBA438tLXAy24c4QzH5/IZDk=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWUserInfo.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
5g7vzLQk3tcFraYj6LiXTofflNA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
V10qEawgeZq8vDYhIOHCHovrNnRR7oXom02wtpweU6I=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RCIMIWVoiceMessage.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
qsVZR8GP7n2O5FqQcKtBfAChfbM=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
b6rItb69TZZsbwvHeE4AtW3UE1msdPiF/u+hCT1jJ9k=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Headers/RongIMWrapper.h</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
YdH8Ujk85GPUJ+MR6roHGiP+3tU=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
FMIRQbrWJ0ecIdMZivMktP0aloY6adherETYM/denrQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Modules/module.modulemap</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Vh9vdNQkaXreFCi1krLgoYVDvCg=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
6yfqbvnbVio5ptAdCyz4sU2INYt+rvxvT8q9gkJ+AkQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>RCConfig.plist</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
QA7nn/q1j2Y4AJbaGtBBs8g71xE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in New Issue
Block a user