diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..f72aa50 Binary files /dev/null and b/.DS_Store differ diff --git a/.env b/.env index 151767c..a79e715 100644 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ # API # VITE_SYSTEM_URL = "http://s8e84fdb.natappfree.cc" -VITE_SYSTEM_URL = "https://dev.cqjcteach.cn/prod-api" +VITE_SYSTEM_URL = "https://dev.yxdim.com" # 第三方客户 channelId VITE_CHANNEL_ID = "7b81ec142eca42baa045820793b821bb" diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json index bc92ee1..dfeb35c 100644 --- a/.hbuilderx/launch.json +++ b/.hbuilderx/launch.json @@ -3,17 +3,28 @@ "configurations" : [ { "customPlaygroundType" : "device", + "openVueDevtools" : false, "playground" : "standard", "type" : "uni-app:app-ios" }, { "customPlaygroundType" : "local", + "openVueDevtools" : false, "playground" : "custom", "type" : "uni-app:app-android" }, { "openVueDevtools" : true, "type" : "uni-app:miniProgram" + }, + { + "openVueDevtools" : true, + "type" : "uni-app:h5" + }, + { + "customPlaygroundType" : "device", + "playground" : "custom", + "type" : "uni-app:app-ios_simulator" } ] } diff --git a/manifest.json b/manifest.json index 9800d87..9e70e86 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "name" : "密谈IM", - "appid" : "__UNI__D40A151", + "appid" : "__UNI__44929DB", "description" : "", "versionName" : "1.1.6", "versionCode" : 115, @@ -119,7 +119,7 @@ "description" : "融云实时音视频 SDK uni 原生插件", "platforms" : "Android,iOS", "url" : "https://ext.dcloud.net.cn/plugin?id=6372", - "android_package_name" : "uni.app.UNI9EFDC69WWCC", + "android_package_name" : "uni.app.UNID40A151", "ios_bundle_id" : "", "isCloud" : true, "bought" : 1, @@ -133,7 +133,7 @@ "description" : "融云即时通讯 SDK uni 原生插件V2", "platforms" : "Android,iOS", "url" : "https://ext.dcloud.net.cn/plugin?id=9227", - "android_package_name" : "uni.app.UNI9EFDC69WWCC", + "android_package_name" : "uni.app.UNID40A151", "ios_bundle_id" : "", "isCloud" : true, "bought" : 1, diff --git a/nativeplugins/RongCloud-Call/android/RCUniCall.aar b/nativeplugins/RongCloud-Call/android/RCUniCall.aar new file mode 100644 index 0000000..9186745 Binary files /dev/null and b/nativeplugins/RongCloud-Call/android/RCUniCall.aar differ diff --git a/nativeplugins/RongCloud-Call/android/libs/RCCallWrapper.jar b/nativeplugins/RongCloud-Call/android/libs/RCCallWrapper.jar new file mode 100644 index 0000000..88878f0 Binary files /dev/null and b/nativeplugins/RongCloud-Call/android/libs/RCCallWrapper.jar differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/Info.plist b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/Info.plist new file mode 100644 index 0000000..fc5d249 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/Info.plist @@ -0,0 +1,43 @@ + + + + + AvailableLibraries + + + BinaryPath + RCUniCall.framework/RCUniCall + LibraryIdentifier + ios-arm64 + LibraryPath + RCUniCall.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + RCUniCall.framework/RCUniCall + LibraryIdentifier + ios-x86_64-simulator + LibraryPath + RCUniCall.framework + SupportedArchitectures + + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/Info.plist new file mode 100644 index 0000000..e20601d Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RCConfig.plist b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RCUniCall b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RCUniCall new file mode 100644 index 0000000..6f7ae7a Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RCUniCall differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RongRTCLib.bundle/HwAiVadModel.bin b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RongRTCLib.bundle/HwAiVadModel.bin new file mode 100755 index 0000000..9d48228 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RongRTCLib.bundle/HwAiVadModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RongRTCLib.bundle/HwAinrModel.bin b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RongRTCLib.bundle/HwAinrModel.bin new file mode 100755 index 0000000..5b529e6 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-arm64/RCUniCall.framework/RongRTCLib.bundle/HwAinrModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/Info.plist new file mode 100644 index 0000000..4a54324 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RCConfig.plist b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RCUniCall b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RCUniCall new file mode 100644 index 0000000..cb88f50 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RCUniCall differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RongRTCLib.bundle/HwAiVadModel.bin b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RongRTCLib.bundle/HwAiVadModel.bin new file mode 100755 index 0000000..9d48228 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RongRTCLib.bundle/HwAiVadModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RongRTCLib.bundle/HwAinrModel.bin b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RongRTCLib.bundle/HwAinrModel.bin new file mode 100755 index 0000000..5b529e6 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/RongRTCLib.bundle/HwAinrModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeDirectory b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeDirectory new file mode 100644 index 0000000..3668d11 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeDirectory differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeRequirements b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeRequirements new file mode 100644 index 0000000..dbf9d61 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeRequirements differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeRequirements-1 b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeRequirements-1 new file mode 100644 index 0000000..144bcaf Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeRequirements-1 differ diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..58315d1 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeResources @@ -0,0 +1,147 @@ + + + + + files + + Info.plist + + xFG/8Qcxeh4ZjzDwC444w38zYpA= + + RCConfig.plist + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + RongRTCLib.bundle/HwAiVadModel.bin + + ATcRMel9IwX111oJWJbEEm8fxLw= + + RongRTCLib.bundle/HwAinrModel.bin + + B8kB+UwS+Djpk42nGs6PsuZb4i4= + + + files2 + + RCConfig.plist + + hash + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + hash2 + + q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI= + + + RongRTCLib.bundle/HwAiVadModel.bin + + hash + + ATcRMel9IwX111oJWJbEEm8fxLw= + + hash2 + + rI/0N8nw9Ktvh3flHD50aM1unvKAoT4PXCZogPS4lzo= + + + RongRTCLib.bundle/HwAinrModel.bin + + hash + + B8kB+UwS+Djpk42nGs6PsuZb4i4= + + hash2 + + wWEpSmpBqk1A1pnvwExjRDLmRm4kLI6s07dug5+9ftg= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeSignature b/nativeplugins/RongCloud-Call/ios/RCUniCall.xcframework/ios-x86_64-simulator/RCUniCall.framework/_CodeSignature/CodeSignature new file mode 100644 index 0000000..e69de29 diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/Info.plist new file mode 100644 index 0000000..671fa41 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/Info.plist @@ -0,0 +1,43 @@ + + + + + AvailableLibraries + + + BinaryPath + RongCallLib.framework/RongCallLib + LibraryIdentifier + ios-arm64 + LibraryPath + RongCallLib.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + RongCallLib.framework/RongCallLib + LibraryIdentifier + ios-x86_64-simulator + LibraryPath + RongCallLib.framework + SupportedArchitectures + + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallClient.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallClient.h new file mode 100644 index 0000000..4fd4353 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallClient.h @@ -0,0 +1,536 @@ +// +// RCCallClient.h +// RongCallLib +// +// Created by RongCloud on 16/2/28. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import +#import +#import "RCCallClientSignalServer.h" +#import "RCCallCommonDefine.h" +#import "RCCallSession.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + CallLib全局通话呼入的监听器 + */ +@protocol RCCallReceiveDelegate + +@required +/*! + 接收到通话呼入的回调 + + @param callSession 呼入的通话实体 + @discussion + 接收到通话呼入的回调 + + @remarks 代理 + */ +- (void)didReceiveCall:(RCCallSession *)callSession; + +/*! + +接收到通话呼入的远程通知的回调 + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param userDict 远程推送包含的其他扩展信息 + @param isVoIPPush 是否 VoIP 推送 + @param pushConfig 推送配置 + + @discussion + 接收到通话呼入的远程通知的回调 + + @remarks 代理 + */ +- (void)didReceiveCallRemoteNotification:(nullable NSString *)callId + inviterUserId:(nullable NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(nullable NSArray *)userIdList + userDict:(nullable NSDictionary *)userDict + isVoIPPush:(BOOL)isVoIPPush + pushConfig:(nullable RCMessagePushConfig *)pushConfig; + +/*! + 接收到取消通话的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param pushConfig 推送配置 + @param isRemoteCancel 是否为远端取消呼叫 + @discussion + 接收到取消通话的远程通知的回调 + + @remarks 代理 + */ +- (void)didCancelCallRemoteNotification:(nullable NSString *)callId + inviterUserId:(nullable NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(nullable NSArray *)userIdList + pushConfig:(nullable RCMessagePushConfig *)pushConfig + isRemoteCancel:(BOOL)isRemoteCancel; + +@optional + +/*! + 接收到通话漏接的回调 + + @param callSession 呼入的通话实体 + @discussion + 接收到通话漏接的回调 + + @remarks 代理 + */ +- (void)didMissCall:(RCCallSession *)callSession; + +/*! + 接收到取消通话的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @discussion + 接收到取消通话的远程通知的回调 + + @remarks 代理 + */ +- (void)didCancelCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(NSArray *)userIdList + DEPRECATED_MSG_ATTRIBUTE( + "use didCancelCallRemoteNotification:inviterUserId:mediaType:userIdList:pushConfig:isRemoteCancel: instead"); + +/*! + 接收到通话呼入的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param userDict 远程推送包含的其他扩展信息 + @discussion + 接收到通话呼入的远程通知的回调 + + @remarks 代理 + */ +- (void)didReceiveCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(NSArray *)userIdList + userDict:(NSDictionary *)userDict + DEPRECATED_MSG_ATTRIBUTE( + "use didReceiveCallRemoteNotification:inviterUserId:mediaType:userIdList:userDict:isVoIPPush:pushConfig: " + "instead"); + +/*! + 接收到通话呼入的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param userDict 远程推送包含的其他扩展信息 + @param isVoIPPush 是否 VoIP 推送 + @discussion + 接收到通话呼入的远程通知的回调 + + @remarks 代理 + */ +- (void)didReceiveCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(NSArray *)userIdList + userDict:(NSDictionary *)userDict + isVoIPPush:(BOOL)isVoIPPush + DEPRECATED_MSG_ATTRIBUTE( + "use didReceiveCallRemoteNotification:inviterUserId:mediaType:userIdList:userDict:isVoIPPush:pushConfig: " + "instead"); + +@end + +/*! + 语音识别监听器 + */ +@protocol RCCallASRDelegate + +@optional + +/*! + 语音识别错误通知回调 + + @remarks 代理 + */ +- (void)didASRError:(NSInteger)code; + +/*! + 语音识别服务开启通知回调 + + @remarks 代理 + */ +- (void)didReceiveStartASR; + +/*! + 语音识别服务停止通知回调 + + @remarks 代理 + */ +- (void)didReceiveStopASR; + +/*! + 语音识别信息回调 + + @param asrContent 语音识别信息 + + @remarks 代理 + */ +- (void)didReceiveASRContent:(RCRTCASRContent *)asrContent; + +/*! + 语音翻译内容回调 + + @param content 语音翻译内容 + + @remarks 代理 + */ +- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content; + +@end + +@class RCMessagePushConfig; + +/*! + 融云CallLib核心类 + */ +@interface RCCallClient : NSObject + +/*! + 自定义push消息. 应在startCall之前调用 + */ +@property (nonatomic, strong, nullable) RCMessagePushConfig *invitePushConfig; + +/*! + 自定义push消息. 应在startCall之前调用 + */ +@property (nonatomic, strong, nullable) RCMessagePushConfig *hangupPushConfig; + +/*! + 呼叫或通话过程中, 当收到手机号系统来电时, 是否挂断当前呼叫或通话, 默认: Yes 挂断 +*/ +@property (nonatomic, assign) BOOL canHangupSystemPhonecall; + +/*! + 在开启 IM 链接多端登录的前提下,同一 UserId 的不同端先后加入通话的处理行为 默认: RCCallJoinCallTypeKick 将先加入通话用户踢出通话 + */ +@property (nonatomic, assign) RCCallJoinCallType joinCallType; + +/*! + 获取融云通话能力库 RCCallClient 的核心类单例 + + @discussion + 您可以通过此方法, 获取 RCCallClient 的单例,访问对象中的属性和方法 + + @remarks 通话设置 + @return 融云通话能力库 RCCallClient 的核心类单例 + */ ++ (instancetype)sharedRCCallClient; + +/*! + 设置全局通话呼入的监听器 + + @param delegate CallLib全局通话呼入的监听器 + @discussion + 设置全局通话呼入的监听器 + + @remarks 通话设置 + */ +- (void)setDelegate:(id)delegate; + +/*! + 发起一个通话 + + @param conversationType 会话类型 + @param targetId 目标会话ID, 单人呼叫时targetId为被叫端UserId, 多人呼叫时targetId为群组Id, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param userIdList 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param type 发起的通话媒体类型 + @param delegate 通话监听 + @param extra 附件信息 + @discussion + 发起一个通话 + + @remarks 通话管理 + @return 呼出的通话实体 + */ +- (nullable RCCallSession *)startCall:(RCConversationType)conversationType + targetId:(NSString *)targetId + to:(NSArray *)userIdList + mediaType:(RCCallMediaType)type + sessionDelegate:(id)delegate + extra:(nullable NSString *)extra; + +/*! + 发起一个跨应用通话 + + @param conversationType 会话类型 (仅支持单聊) + @param targetId 目标会话ID, 单人呼叫时targetId为被叫端UserId + @param userIdList 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫;(注意此处ID组成形式为Appkey+UserId, 格式为appkey_userid,注意下划线拼接) + @param type 发起的通话媒体类型 + @param delegate 通话监听 + @param extra 附件信息 + @discussion + 发起一个通话 + + @remarks 通话管理 + @return 呼出的通话实体 + */ +- (RCCallSession *)startCrossCall:(RCConversationType)conversationType + targetId:(NSString *)targetId + to:(NSArray *)userIdList + mediaType:(RCCallMediaType)type + sessionDelegate:(id)delegate + extra:(nullable NSString *)extra; + +/*! + 发起一个通话 + + @param conversationType 会话类型 + @param targetId 目标会话ID, 单人呼叫时targetId为被叫端UserId, 多人呼叫时targetId为群组Id + @param userIdList 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param observerIdList 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId + @param type 发起的通话媒体类型 + @param delegate 通话监听 + @param extra 附件信息 + @discussion + 发起一个通话 + + @remarks 通话管理 + @return 呼出的通话实体 + */ +- (nullable RCCallSession *)startCall:(RCConversationType)conversationType + targetId:(NSString *)targetId + to:(NSArray *)userIdList + observerIdList:(NSArray *)observerIdList + mediaType:(RCCallMediaType)type + sessionDelegate:(id)delegate + extra:(nullable NSString *)extra; + +/*! + 当前会话类型是否支持音频通话 + + @param conversationType 会话类型 + @discussion + 当前会话类型是否支持音频通话 + + @remarks 通话设置 + @return 是否支持音频通话 + */ +- (BOOL)isAudioCallEnabled:(RCConversationType)conversationType; + +/*! + 当前会话类型是否支持视频通话 + + @param conversationType 会话类型 + @discussion + 当前会话类型是否支持视频通话 + + @remarks 通话设置 + @return 是否支持视频通话 + */ +- (BOOL)isVideoCallEnabled:(RCConversationType)conversationType; + +/*! + 设置本地视频分辨率 + + @param profile 通话视频分辨率 + @discussion + 设置本地视频分辨率 + + @remarks 视频设置 + */ +- (void)setVideoProfile:(RCVideoProfile)profile; + +/*! + 设置本地视频属性, 可用此接口设置本地视频方向 + + @param orientation 视频方向, 默认: AVCaptureVideoOrientationPortrait + @discussion + 设置本地视频属性, 可用此接口设置本地视频方向 + + @remarks 视频设置 + */ +- (void)setVideoOrientation:(AVCaptureVideoOrientation)orientation; + +/*! + 设置码率 + + @param rate 码率 单位 kbps + @discussion + 设置码率 + + @remarks 视频设置 + */ +- (void)setBitRate:(NSUInteger)rate; + +/*! + 设置外部信令服务器代理 + + @param signalServerDelegate 外部信令服务器代理 + @discussion + 默认情况下 app 使用融云消息作为信令即可, 不需要设置此代理, 此时有个限制就是所有的通话必须在某一个会话中进行, 比如群组. + 如果您需要摆脱会话的限制, 请使用 server api 服务实现本代理, 然后 startCall 时 conversationType 传 0, targetId 传 nil, calllib 会调用您设置的代理来发送消息. + 请务必使用一个全局代理, 确保在拨打和接听 VoIP 的时候代理对象都存活, 这样才能确保正常通话. + + @remarks 通话设置 + */ +- (void)setSignalServerDelegate:(id)signalServerDelegate; + +/*! + 当前的通话会话实体 + */ +@property (nonatomic, strong, readonly, nullable) RCCallSession *currentCallSession; + +/*! + @remarks 上次通话的通话会话静态实体 + + @discussion + 5.8.0版本callLib修改 + currentCallSession有效生命周期由开始通话直到下次通话开始为止,变为了由开始通话直到这次通话结束为止 + 为了弥补这个逻辑缺失,新增了lastCallSession,从这次通话回调结束以后生效,直到下次通话结束失效 + */ +@property (nonatomic, strong, readonly, nullable) RCCallSessionSnapshot *lastCallSession; + +/*! + 是否生成通话记录消息,默认为YES + */ +@property (nonatomic, assign) BOOL enableCallSummary; + +/*! + 是否开启多平台模式,默认为NO + */ +@property (nonatomic, assign) BOOL enableMultiPlatformMode; + +/*! + 设置是否使用苹果 PushKit 推送 + + @param enable YES 使用, NO 不使用 + @discussion + 是否打开苹果 PushKit 推送, 该推送可以直接激活 App, 注: iOS 13 以后 PushKit 必须结合苹果 CallKit.framework 进行使用, 否则无法正常处理 VoIP 相关推送逻辑, + 如果设置为 NO 则使用普通 APNS 消息推送来处理音视频信令逻辑, 默认关闭. 打开之后 App 默认需要自行处理 VoIP 推送唤起 CallKit.framework 的逻辑. + + @remarks 通话设置 + */ +- (void)setApplePushKitEnable:(BOOL)enable; + +/*! + 设置是否使用音视频预热 + +@param preconnectEnabled YES 使用, NO 不使用 +@discussion +默认情况下 SDK 内部会在发送通话信令或接听信令成功的时候,主动进行音视频的预热 + +@remarks 通话设置 + */ +- (void)setPreconnectEnabled:(BOOL)preconnectEnabled; + +/*! + 设置语音识别监听器 + + @param delegate 语音识别监听器 + @discussion + 设置语音识别监听器 + + @remarks 语音识别设置 + */ +- (void)setASRDelegate:(id)delegate; + +/*! + 设置语音识别源语言 + + @param languageCode 语言代码 + @discussion + 设置语音识别源语言 + + @remarks 语音识别设置 + */ +- (void)setSrcLanguageCode:(NSString *)languageCode; + +/*! + 开启语音识别服务 + + @param completion 开启语音识别服务回调 + + @discussion + 开启语音识别服务,如果房间内没有人发布流,则无法开启语音识别服务,SDK 会在有人发布流后补偿进行开启语音识别服务 + + @remarks 语音识别 + */ +- (void)startASR:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 停止语音识别服务 + + @param completion 停止语音识别服务回调 + + @discussion + 停止语音识别服务 + + @remarks 语音识别设置 + */ +- (void)stopASR:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 设置是否打开语音识别 + +@param enable YES 打开, NO 关闭 +@return 返回值,0 代表成功 +@discussion +1. 通话接通后,可以通过此接口打开或关闭语音识别功能; +2. 默认关闭语音识别功能,开启后会在通话过程中自动识别用户语音并转换为文字。 + +@remarks 语音识别设置 + */ +- (int)setEnableASR:(BOOL)enable; + +/*! + 开启语音翻译 + @param destLangCode 翻译目标语言码 + + @discussion + 1. 语音翻译依赖语音识别服务,需要在收到 RCCallASRDelegate 的 didReceiveStartASR 回调后,调用开启语音翻译 + 2. 开启语音翻译,会通过 RCCallASRDelegate 的 didReceiveRealtimeTranslationContent 回调返回语音翻译结果 + + @remarks 语音识别设置 + */ +- (void)startRealtimeTranslation:(NSString *)destLangCode copmletion:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 关闭语音翻译 + + @discussion + 关闭语音翻译 + + @remarks 语音识别设置 + */ +- (void)stopRealtimeTranslation:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 获取 SDK 版本号 + + @return 版本号 + + @remarks 参数配置 + */ ++ (NSString *)getVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallClientSignalServer.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallClientSignalServer.h new file mode 100644 index 0000000..8bcecf8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallClientSignalServer.h @@ -0,0 +1,69 @@ +// +// RCCallClientSignalServer.h +// RongCallLib +// +// Created by RongCloud on 2017/7/25. +// Copyright © 2017年 Rong Cloud. All rights reserved. +// + +#ifndef RCCallClientSignalServer_h +#define RCCallClientSignalServer_h +#import +#import "RCCallSummaryMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 信令服务代理 + */ +@protocol RCCallSignalServerDelegate + +/*! + 获取通话参与者的唯一媒体ID, 必须保证每次电话会议的每个人的媒体ID都是全局唯一的 + + @param successBlock 为当前用户分配的媒体Id成功的回调 + @param errorBlcok 获取媒体Id失败的回调 + @discussion + 获取通话参与者的唯一媒体ID, 必须保证每次电话会议的每个人的媒体ID都是全局唯一的 + + @remarks 代理 + */ +- (void)getUniqueMediaId:(nullable void (^)(NSString *mediaId))successBlock error:(nullable void (^)(int errorCode))errorBlcok; + +/*! + 发送 VoIP 信令消息 + + @param messageContent 消息内容 + @param toUserIdList 接收者的Id + @param pushContent pushContent + @param pushData pushData + @param successBlock 成功的回调 + @param errorBlcok 失败的回调 + @discussion + 发送 VoIP 信令消息 + + @remarks 代理 + */ +- (void)sendVoipSignalMessage:(RCMessageContent *)messageContent + toUserIdList:(NSArray *)toUserIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(int errorCode))errorBlcok; + +/*! + VoIP 通话结束返回的统计信息 + + @param summary 通话统计 + @discussion + VoIP 通话结束返回的统计信息 + + @remarks 代理 + */ +- (void)onVoipCallSummary:(RCCallSummaryMessage *)summary; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCCallClientSignalServer_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallCommonDefine.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallCommonDefine.h new file mode 100644 index 0000000..10225a8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallCommonDefine.h @@ -0,0 +1,454 @@ +// +// RCCallCommonDefine.h +// RongCallLib +// +// Created by RongCloud on 16/2/28. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#ifndef RCCallCommonDefine_h +#define RCCallCommonDefine_h + +/*! + 引擎类型 + */ +typedef NS_ENUM(NSInteger, RCCallEngineType) { + /*! + 无 + */ + RCCallEngineNone = 0, + /*! + 声网 + */ + RCCallEngineAgora = 1, + /*! + 融云 + */ + RCCallEngineRong = 2, + /*! + Blink + */ + RCCallEngineBlink = 3, + /*! + RTC3.0 + */ + RCCallEngineRongRTC = 4 +}; + +/*! + 媒体类型 + */ +typedef NS_ENUM(NSInteger, RCCallMediaType) { + /*! + 音频 + */ + RCCallMediaAudio = 1, + /*! + 视频 + */ + RCCallMediaVideo = 2 +}; + +/*! + 媒体类型 + */ +typedef NS_ENUM(NSInteger, RCCallRoomType) { + /*! + 同App通话 + */ + RCCallRoomTypeNormalCall = 0, + /*! + 跨App通话 + */ + RCCallRoomTypeCrossCall = 7 +}; + + +/*! + 通话质量 + */ +typedef NS_ENUM(NSUInteger, RCCallQuality) { + /*! + 未知 + */ + RCCall_Quality_Unknown = 0, + /*! + Excellent + */ + RCCall_Quality_Excellent = 1, + /*! + Good + */ + RCCall_Quality_Good = 2, + /*! + Poor + */ + RCCall_Quality_Poor = 3, + /*! + Bad + */ + RCCall_Quality_Bad = 4, + /*! + VBad + */ + RCCall_Quality_VBad = 5, + /*! + Down + */ + RCCall_Quality_Down = 6 +}; + +/** + 视频显示模式 + */ +typedef NS_ENUM(NSInteger, RCCallRenderModel) { + /*! + 默认: 如果视频尺寸与显示视窗尺寸不一致,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。 + */ + RCCallRenderModelHidden = 1, + + /*! + RenderFit: 如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗。 + */ + RCCallRenderModelFit = 2, + + /*! + RenderAdaptive: 如果自己和对方都是竖屏,或者如果自己和对方都是横屏,使用 + RCCallRenderModelHidden;如果对方和自己一个竖屏一个横屏,则使用RCCallRenderModelFit。 + */ + RCCallRenderModelAdaptive = 3 +}; + +#pragma mark - Call + +/*! + 错误码 + */ +typedef NS_ENUM(NSInteger, RCCallErrorCode) { + /*! + 成功 + */ + RCCallSuccess = 0, + /*! + 网络不可用 + */ + RCCallNetworkUnavailable = 1, + /*! + 已经处于通话中了 + */ + RCCallOneCallExisted = 2, + /*! + 无效操作 + */ + RCCallOperationUnavailable = 3, + /*! + 参数错误 + */ + RCCallInvalidParam = 4, + /*! + 网络不稳定 + */ + RCCallNetworkUnstable = 5, + /*! + 媒体服务请求失败 + */ + RCCallMediaRequestFailed = 6, + /*! + 媒体服务初始化失败 + */ + RCCallMediaServerNotReady = 7, + /*! + 媒体服务未初始化 + */ + RCCallMediaServerNotInitialized = 8, + /*! + 媒体服务请求超时 + */ + RCCallMediaRequestTimeout = 9, + /*! + 未知的媒体服务错误 + */ + RCCallMediaUnkownError = 10, + /*! + 已被禁止通话 + */ + RCCallMediaKickedByServerError = 11, + /*! + 音视频服务已关闭 + */ + RCCallMediaServerClosedError = 12, + /*! + 音视频发布资源失败 + */ + RCCallMediaServerPublishError = 13, + /*! + 音视频订阅资源失败 + */ + RCCallMediaServerSubscribeError = 14, + /*! + 其他端已在通话中 + */ + RCCallMediaJoinRoomRefuseError = 15, + /*! + 己方其他端已加入其他房间 + */ + RCCallMediaOtherClientJoinedRoom = 16 +}; + +/*! + 通话结束原因 + */ +typedef NS_ENUM(NSInteger, RCCallDisconnectReason) { + /*! + 己方取消已发出的通话请求 + */ + RCCallDisconnectReasonCancel = 1, + /*! + 己方拒绝收到的通话请求 + */ + RCCallDisconnectReasonReject = 2, + /*! + 己方挂断 + */ + RCCallDisconnectReasonHangup = 3, + /*! + 己方忙碌 + */ + RCCallDisconnectReasonBusyLine = 4, + /*! + 己方未接听 + */ + RCCallDisconnectReasonNoResponse = 5, + /*! + 己方不支持当前引擎 + */ + RCCallDisconnectReasonEngineUnsupported = 6, + /*! + 己方网络出错 + */ + RCCallDisconnectReasonNetworkError = 7, + /*! + 己方获取媒体资源失败 + */ + RCCallDisconnectReasonResourceError = 8, + /*! + 己方发布资源失败 + */ + RCCallDisconnectReasonPublishError = 9, + /*! + 己方订阅资源失败 + */ + RCCallDisconnectReasonSubscribeError = 10, + /*! + 对方取消已发出的通话请求 + */ + RCCallDisconnectReasonRemoteCancel = 11, + /*! + 对方拒绝收到的通话请求 + */ + RCCallDisconnectReasonRemoteReject = 12, + /*! + 对方挂断 + */ + RCCallDisconnectReasonRemoteHangup = 13, + /*! + 对方忙碌 + */ + RCCallDisconnectReasonRemoteBusyLine = 14, + /*! + 对方未接听 + */ + RCCallDisconnectReasonRemoteNoResponse = 15, + /*! + 对方不支持当前引擎 + */ + RCCallDisconnectReasonRemoteEngineUnsupported = 16, + /*! + 对方网络错误 + */ + RCCallDisconnectReasonRemoteNetworkError = 17, + /*! + 对方获取媒体资源失败 + */ + RCCallDisconnectReasonRemoteResourceError = 18, + /*! + 对方发布资源失败 + */ + RCCallDisconnectReasonRemotePublishError = 19, + /*! + 对方订阅资源失败 + */ + RCCallDisconnectReasonRemoteSubscribeError = 20, + /*! + 己方其他端已加入新通话 + */ + RCCallDisconnectReasonKickedByOtherCall = 21, + /*! + 己方其他端已在通话中 + */ + RCCallDisconnectReasonInOtherCall = 22, + /*! + 己方已被禁止通话 + */ + RCCallDisconnectReasonKickedByServer = 23, + /*! + 己方已接听系统来电 + */ + RCCallDisconnectReasonAcceptSystemCall = 24, + /*! + 对方其他端已加入新通话 + */ + RCCallDisconnectReasonRemoteKickedByOtherCall = 31, + /*! + 对方其他端已在通话中 + */ + RCCallDisconnectReasonRemoteInOtherCall = 32, + /*! + 对方已被禁止通话 + */ + RCCallDisconnectReasonRemoteKickedByServer = 33, + /*! + 对方已接听系统来电 + */ + RCCallDisconnectReasonRemoteAcceptSystemCall = 34, + /*! + 己方其他端已接听 + */ + RCCallDisconnectReasonAcceptByOtherClient = 101, + /*! + 己方其他端已挂断 + */ + RCCallDisconnectReasonHangupByOtherClient = 102, + /*! + 己方被对方加入黑名单 + */ + RCCallDisconnectReasonAddToBlackList = 103, + /*! + 音视频服务已关闭 + */ + RCCallDisconnectReasonMediaServerClosed = 104, + /*! + 己方被降级为观察者 + */ + RCCallDisconnectReasonDegrade = 301 +}; + +/*! + 通话视频参数 + */ +typedef NS_ENUM(NSInteger, RCVideoProfile) { + /*! + 176x132, 10fps, 150kbps + */ + RC_VIDEO_PROFILE_132P = 10, + /*! + 256x144, 15fps, 240kbps + */ + RC_VIDEO_PROFILE_144P_1 = 11, + /*! + 240x240, 15fps, 280kbps + */ + RC_VIDEO_PROFILE_240P = 20, + /*! + 320x240, 15fps, 400kbps + */ + RC_VIDEO_PROFILE_240P_1 = 21, + /*! + 480x360, 15fps, 650kbps + */ + RC_VIDEO_PROFILE_360P = 30, + /*! + 640x360, 15fps, 800kbps + */ + RC_VIDEO_PROFILE_360P_1 = 40, + /*! + 640x480, 15fps, 900kbps + */ + RC_VIDEO_PROFILE_480P = 50, + /*! + 720x480, 15fps, 1000kbps + */ + RC_VIDEO_PROFILE_480P_1 = 60, + /*! + 1280x720, 15fps, 2500kbps + */ + RC_VIDEO_PROFILE_720P = 70, + /* + 1920*1080, 15fps, 4000kbps + */ + RC_VIDEO_PROFILE_1080P = 80, + /*! + 默认的视频参数 + */ + RC_VIDEO_PROFILE_DEFAULT = RC_VIDEO_PROFILE_480P +}; + +/*! + 视频编码方式 + */ +typedef NS_ENUM(NSInteger, RCVideoCodecType) { + /*! + H264 + */ + RC_VIDEO_CODEC_H264 +}; + +/*! + 通话状态 + */ +typedef NS_ENUM(NSInteger, RCCallStatus) { + /*! + 初始状态 + */ + //RCCallIdle = 0, + /*! + 正在呼出 + */ + RCCallDialing = 1, + /*! + 正在呼入 + */ + RCCallIncoming = 2, + /*! + 收到一个通话呼入后,正在振铃 + */ + RCCallRinging = 3, + /*! + 正在通话 + */ + RCCallActive = 4, + /*! + 已经挂断 + */ + RCCallHangup = 5 +}; + +/*! + 用户类型 + */ +typedef NS_ENUM(NSInteger, RCCallUserType) { + /*! + 正常用户 + */ + RCCallUserNormal = 1, + /*! + 观察者 + */ + RCCallUserObserver = 2 +}; + +/*! + 同UserId两端同时加入通话类型 + */ +typedef NS_ENUM(NSUInteger, RCCallJoinCallType) { + /*! + 将先加入通话用户踢出通话 + */ + RCCallJoinCallTypeKick, + /*! + 拒绝当前用户加入通话 + */ + RCCallJoinCallTypeRefuse, +}; + +#endif /* RCCallCommonDefine_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallSession.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallSession.h new file mode 100644 index 0000000..1c26759 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallSession.h @@ -0,0 +1,687 @@ +// +// RCCallSession.h +// RongCallLib +// +// Created by RongCloud on 16/2/29. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import +#import "RCCallCommonDefine.h" +#import "RCCallUserProfile.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 通话状态变化的监听器 + */ +@protocol RCCallSessionDelegate + +@optional + +/*! + 通话已接通 + + @discussion + 通话已接通 + + @remarks 代理 +*/ +- (void)callDidConnect; + +/*! + 通话已结束 + + @discussion + 通话已结束 + + @remarks 代理 +*/ +- (void)callDidDisconnect; + +/*! + 通话已结束 + + @param reason 挂断原因 + @discussion + 通话已结束 + + @warning + 这个接口和callDidDisconnect 回调方法相同,增加返回挂断原因。 + 同时实现本回调,通话已结束将不会再通过callDidDisconnect 处理。 + + @remarks 代理 +*/ +- (void)callDidDisconnectWithReason:(RCCallDisconnectReason)reason; + +/*! + 对端用户正在振铃 + + @param userId 正在振铃的用户ID + @discussion + 对端用户正在振铃 + + @remarks 代理 + */ +- (void)remoteUserDidRing:(NSString *)userId; + +/*! + 有用户被邀请加入通话 + + @param userId 被邀请的用户ID + @param mediaType 希望被邀请者使用的媒体类型 + @discussion + 有用户被邀请加入通话 + + @remarks 代理 + */ +- (void)remoteUserDidInvite:(NSString *)userId mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户加入了通话 + + @param userId 用户ID + @param mediaType 用户的媒体类型 + @discussion + 对端用户加入了通话 + + @remarks 代理 + */ +- (void)remoteUserDidJoin:(NSString *)userId mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户切换了媒体类型 + + @param userId 用户ID + @param mediaType 切换至的媒体类型 + @discussion + 对端用户切换了媒体类型 + + @remarks 代理 +*/ +- (void)remoteUserDidChangeMediaType:(NSString *)userId mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户开启或关闭了麦克风的状态 + + @param disabled 是否关闭麦克风 + @param userId 用户ID + @discussion + 对端用户开启或关闭了麦克风的状态 + + @remarks 代理 +*/ +- (void)remoteUserDidDisableMicrophone:(BOOL)disabled byUser:(NSString *)userId; + +/*! + 对端用户开启或关闭了摄像头的状态 + + @param disabled 是否关闭摄像头 + @param userId 用户ID + @discussion + 对端用户开启或关闭了摄像头的状态 + + @remarks 代理 +*/ +- (void)remoteUserDidDisableCamera:(BOOL)disabled byUser:(NSString *)userId; + +/*! + 对端用户挂断 + + @param userId 用户ID + @param reason 挂断的原因 + @discussion + 对端用户挂断 + + @remarks 代理 +*/ +- (void)remoteUserDidLeft:(NSString *)userId reason:(RCCallDisconnectReason)reason; + +/*! + 对端用户发布自定义媒体流 + + @param streamId 自定义流ID + @param tag 自定义流标签 + @param mediaType 媒体类型 + @discussion + 对端用户发布自定义媒体流 + + @remarks 代理 +*/ +- (void)remoteUserDidPublishCustomMediaStream:(NSString *)streamId + streamTag:(NSString *)tag + mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户取消发布自定义媒体流 + + @param streamId 自定义流ID + @discussion + 对端用户取消发布自定义媒体流 + + @remarks 代理 +*/ +- (void)remoteUserDidCancelPublishCustomMediaStream:(NSString *)streamId; + +/*! + 本地发布资源上报 + + @param success 发布资源是否成功 + @discussion + 本地发布资源上报 + + @remarks 代理 + */ +- (void)localUserDidPublishStream:(BOOL)success; + +/*! + 彩铃 + + @discussion + 彩铃 + + @remarks 代理 +*/ +- (void)shouldAlertForWaitingRemoteResponse; + +/*! + 来电铃声 + + @discussion + 来电铃声 + + @remarks 代理 +*/ +- (void)shouldRingForIncomingCall; + +/*! + 通话接通或挂断时停止播放铃声 + + @discussion + 通话接通或挂断时停止播放铃声 + + @remarks 代理 + */ +- (void)shouldStopAlertAndRing; + +/*! + 通话过程中的错误回调 + + @param error 错误码 + @discussion + 通话过程中的错误回调 + + @warning + 这个接口回调的错误码主要是为了提供必要的log以及提示用户,如果是不可恢复的错误,SDK会挂断电话并回调callDidDisconnect,App可以在callDidDisconnect中统一处理通话结束的逻辑 + + @remarks 代理 + */ +- (void)errorDidOccur:(RCCallErrorCode)error; + +/*! + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @param txQuality 上行网络质量 + @param rxQuality 下行网络质量, 接收到的所有远端用户网络质量的平均值 + @discussion + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @remarks 代理 + */ +- (void)networkTxQuality:(RCCallQuality)txQuality rxQuality:(RCCallQuality)rxQuality; + +/*! + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @param txQuality 上行网络质量 + @param rxQuality 下行网络质量, 接收到的某个远端用户的网络质量 + @param userID 远端用户 + @discussion + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @remarks 代理 + */ +- (void)networkTxQuality:(RCCallQuality)txQuality rxQuality:(RCCallQuality)rxQuality remoteUserID:(nullable NSString *)userID; + +/*! + 当前通话某用户声音音量回调,该回调方法每两秒触发一次 + + @param leavel 声音级别: 0~9, 0为无声, 依次变大 + @param userID 用户ID, 本端用户ID(发送音量) 或 远端用户ID(接收音量) + @discussion + 当前通话某用户声音音量回调,该回调方法每两秒触发一次 + + @remarks 代理 + */ +- (void)audioLevel:(NSInteger)leavel userID:(nullable NSString *)userID; + + +/*! + 摄像头采集视频帧数据上报 + + @param pixelBuffer 摄像头采集视频帧数据 + @discussion + 当前视频通话摄像头采集视频帧数据回调,如果修改了该视频数据,会影响显示本地和发送视频帧数据 + + @remarks 代理 + */ +- (void)processCaptureVideoFrame:(nullable CVPixelBufferRef)pixelBuffer; + +/*! + 发送本地视频帧数据上报 + + @param pixelBuffer 发送本地视频帧数据 + @discussion + 当前视频通话发送本地视频帧数据回调,如果修改了该视频数据,会影响发送视频帧数据 + + @remarks 代理 + */ +- (void)processVideoFrame:(nullable CVPixelBufferRef)pixelBuffer; + +/*! + 显示本地视频帧数据上报 + + @param pixelBuffer 显示本地视频数据 + @discussion + 当前视频通话显示本地视频帧数据回调,如果修改了该视频数据,会影响显示本地视频帧数据 + + @remarks 代理 + */ +- (void)processDisplayVideoFrame:(nullable CVPixelBufferRef)pixelBuffer; + +/*! + 当前通话为视频通话时, 收到远端用户的第一个视频帧的回调 + @param userId 远端用户ID + + @remarks 代理 + */ +- (void)receiveRemoteUserVideoFirstKeyFrame:(nullable NSString *)userId; + +/*! + 当前通话为音频或视频通话时, 收到远端用户的第一个音频帧的回调 + @param userId 远端用户ID + + @remarks 代理 + */ +- (void)receiveRemoteUserVideoFirstAudioFrame:(nullable NSString *)userId; + +/*! + 对端用户视频分辨率变化的回调 + + @param userId 用户ID + @param size 变化后的视频分辨率 + @discussion + 对端用户视频分辨率变化的回调 + + @remarks 代理 + */ +- (void)remoteUserDidChangeResolution:(nullable NSString *)userId resolution:(CGSize)size; + +@end + +@class RCMessagePushConfig; +@protocol RCRTCDrawer; + +/*! + 通话实体 + */ +@interface RCCallSession : NSObject + +/*! + 通话的会话类型 + */ +@property (nonatomic, assign, readonly) RCConversationType conversationType; + +/*! + 通话ID + */ +@property (nonatomic, strong, readonly, nullable) NSString *callId; + +/*! + 通话的目标会话ID + */ +@property (nonatomic, strong, readonly, nullable) NSString *targetId; + +/*! + RTC会话唯一标识, 用于 Server API + */ +@property (nonatomic, strong, readonly, nullable) NSString *sessionId; + +/*! + 是否是多方通话 + */ +@property (nonatomic, assign, readonly, getter=isMultiCall) BOOL multiCall; + +/*! + 通话的扩展信息 + */ +@property (nonatomic, strong, readonly, nullable) NSString *extra; + +/*! + 通话的当前状态 + */ +@property (nonatomic, assign, readonly) RCCallStatus callStatus; + +/*! + 通话的最初发起人 + */ +@property (nonatomic, strong, readonly, nullable) NSString *caller; + +/*! + 邀请当前用户加入通话的邀请者 + */ +@property (nonatomic, strong, readonly, nullable) NSString *inviter; + +/*! + 当前的用户列表 + */ +@property (nonatomic, strong, readonly, nullable) NSArray *userProfileList; + +/*! + 自己的状态 + */ +@property (nonatomic, strong, readonly, nullable) RCCallUserProfile *myProfile; + +/*! + 当前用户使用的媒体类型 + */ +@property (nonatomic, assign, readonly) RCCallMediaType mediaType; + +/*! + 通话开始的时间 + + @discussion 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。 + */ +@property (nonatomic, assign, readonly) long long startTime; + +/*! + 通话接通时间 + */ +@property (nonatomic, assign, readonly) long long connectedTime; + +/*! + 通话挂断原因 + */ +@property (nonatomic, assign) RCCallDisconnectReason disconnectReason; + +/*! + 设置通话状态变化的监听器 + + @param delegate 通话状态变化的监听器 + @discussion + 设置通话状态变化的监听器 + + @warning + 已废弃, 请使用 addDelegate: + + @remarks 通话设置 + */ +- (void)setDelegate:(id)delegate DEPRECATED_MSG_ATTRIBUTE("please call method addDelegate:"); + +/*! + 添加通话状态的监听器, 支持多代理 + + @param delegate 通话状态变化的监听器 + @discussion + 添加通话状态的监听器, 支持多代理 + + @remarks 通话设置 + */ +- (void)addDelegate:(id)delegate; + +/** + 删除通话状态的监听器 + + @param delegate 通话状态的监听器 + @discussion + 删除通话状态的监听器 + + @remarks 通话设置 + */ +- (void)removeDelegate:(id)delegate; + +/*! + 获取所有的监听器 + + @discussion + 获取所有的监听器 + + @remarks 通话设置 + @return 所有注册的代理数组 + */ +- (NSArray> *)allDelegates; + +/*! + 接听来电 + + @param type 接听使用的媒体类型 + @discussion + 接听来电 + + @remarks 通话管理 +*/ +- (void)accept:(RCCallMediaType)type; + +/*! + 挂断通话 + + @discussion + 挂断通话 + + @remarks 通话管理 +*/ +- (void)hangup; + +/*! + 挂断通话 + + @param block 挂断消息发送回调 + + @discussion + 挂断通话 + + @remarks 通话管理 +*/ +- (void)hangup:(nullable void (^)(BOOL isSuccess, NSInteger code))block; + +/*! + 观察者身份用户, 发布自己的音视频资源 + + @param mediaType 发布的媒体类型 + @param block 发布完成的回调 + @discussion + 观察者身份用户, 发布自己的音视频资源 + + @warning + 只有观察者用户可以发布音视频资源 + + @remarks 资源管理 + */ +- (void)publishMediaResource:(RCCallMediaType)mediaType complete:(nullable void (^)(BOOL isSuccess, NSInteger code))block; + +/*! + 正常身份用户, 取消发布自己的音视频资源 + + @param block 取消发布完成的回调 + @discussion + 正常身份用户, 取消发布自己的音视频资源 + + @warning + 只有正常用户可以取消发布音视频资源 + + @remarks 资源管理 + */ +- (void)unPublishMediaResource:(nullable void (^)(BOOL isSuccess, NSInteger code))block; + +/*! + 邀请用户加入通话 + + @param userIdList 用户ID列表 + @param type 建议被邀请者使用的媒体类型 + @discussion + 邀请用户加入通话 + + @remarks 通话管理 + */ +- (void)inviteRemoteUsers:(nullable NSArray *)userIdList mediaType:(RCCallMediaType)type; + +/*! + 邀请用户加入通话 + + @param userIdList 用户ID列表 + @param observerIdList 需要以观察者身份加入房间的用户ID列表 + @param type 建议被邀请者使用的媒体类型 + @discussion + 邀请用户加入通话 + + @remarks 通话管理 + */ +- (void)inviteRemoteUsers:(nullable NSArray *)userIdList + observerIdList:(nullable NSArray *)observerIdList + mediaType:(RCCallMediaType)type; + +/*! + 设置用户所在的视频View + + @param userId 用户ID(自己或他人) + @param view 视频的View + @discussion + 设置用户所在的视频View + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable UIView *)view userId:(nullable NSString *)userId; + +/*! + 设置用户所在的视频View + + @param userId 用户ID(自己或他人) + @param view 继承RCRTCDrawer 接口 视频的View + @discussion + 设置用户所在的视频View + 注意: + 1.此接口需要RCCallClient中enableMultiPlatformMode设置为YES方可使用 + 2. view 的生命周期自己处理 + + @remarks 视频配置 + */ +- (int)setMultiPlatformVideoView:(nullable id)view userId:(nullable NSString *)userId; + +/** + 设置用户所在的视频View + + @param view userId 用户ID(自己或他人) + @param userId 视频的View + @param renderMode 视频显示模式 (默认为RCCallRenderModelHidden) + @discussion + 设置用户所在的视频View + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable UIView *)view userId:(nullable NSString *)userId renderMode:(RCCallRenderModel)renderMode; + +/*! + 更换自己使用的媒体类型 + + @param type 媒体类型 + @discussion + 更换自己使用的媒体类型 + + @remarks 通话管理 + */ +- (BOOL)changeMediaType:(RCCallMediaType)type; + +/*! + 静音状态 + */ +@property (nonatomic, readonly) BOOL isMuted; + +/*! + 设置静音状态 + + @param muted 是否静音, 默认值为NO + @discussion + 设置静音状态 + + @remarks 音频配置 + @return 是否设置成功 + */ +- (BOOL)setMuted:(BOOL)muted; + +/*! + 是否有最小化窗口 + */ +@property (nonatomic, readonly) BOOL minimized; + +/*! + 设置是否有最小化窗口状态 + + @param minimized 是否最小化 + @discussion + 设置是否有最小化窗口状态 + + @remarks 通话设置 + */ +- (void)setMinimized:(BOOL)minimized; + +/*! + 扬声器状态,是否开启扬声器 + + @discussion 默认值为NO。 + */ +@property (nonatomic, readonly) BOOL speakerEnabled; + +/*! + 设置扬声器状态 + + @param speakerEnabled 是否开启扬声器 + @discussion + 设置扬声器状态 + + @remarks 音频配置 + @return 是否设置成功 + */ +- (BOOL)setSpeakerEnabled:(BOOL)speakerEnabled; + +/*! + 摄像头状态,是否开启摄像头 + */ +@property (nonatomic, readonly) BOOL cameraEnabled; + +/*! + 设置摄像头状态 + + @param cameraEnabled 是否开启摄像头 + @discussion + 音频通话的默认值为NO,视频通话的默认值为YES。 + + @remarks 视频配置 + @return 是否设置成功 + */ +- (BOOL)setCameraEnabled:(BOOL)cameraEnabled; + +/*! + 切换前后摄像头 + + @discussion + 切换前后摄像头 + + @remarks 视频配置 + @return 是否切换成功 + */ +- (BOOL)switchCameraMode; + +@end + +/*! + 静态通话实体 + 从属性依赖callEngine取值的RCCallSession中,copy一个不依赖callEngine的静态对象 + */ +@interface RCCallSessionSnapshot : RCCallSession +/// 从其他对象拷贝 +- (instancetype)initWithSession:(RCCallSession *)session; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallSummaryMessage.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallSummaryMessage.h new file mode 100644 index 0000000..05e1e40 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallSummaryMessage.h @@ -0,0 +1,98 @@ +// +// RCCallSummaryMessage.h +// RongCallLib +// +// Created by RongCloud on 16/3/1. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import "RCCallCommonDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 通话摘要消息的类型名 + */ +#define RCCallSummaryMessageTypeIdentifier @"RC:VCSummary" + +/*! + 通话摘要消息类 + + @discussion 通话摘要消息类,此消息会进行存储并计入未读消息数。 + */ +@interface RCCallSummaryMessage : RCMessageContent + +/*! + 通话的最初发起人 + */ +@property (nonatomic, strong) NSString *caller; + +/*! + 邀请当前用户加入通话的邀请者 + */ +@property (nonatomic, strong) NSString *inviter; + +/*! + 当前用户最后使用的媒体类型 + */ +@property (nonatomic, assign) RCCallMediaType mediaType; + +/*! + 通话挂断时包含的用户ID列表 + */ +@property (nonatomic, strong) NSArray *memberIdList; + +/*! + 通话开始时间 + + @discussion + 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。 + */ +@property (nonatomic, assign) long long startTime; + +/*! + 通话接通时间 + */ +@property (nonatomic, assign) long long connectedTime; + +/*! + 通话总时长 + */ +@property (nonatomic, assign) long long duration; + +/*! + 通话结束的原因 + */ +@property (nonatomic, assign) RCCallDisconnectReason hangupReason; + +/*! + 初始化通话摘要消息 + + @param caller 通话的最初发起人 + @param inviter 邀请当前用户加入通话的邀请者 + @param mediaType 当前用户最后使用的媒体类型 + @param memberIdList 通话挂断时包含的用户ID列表 + @param startTime 通话开始时间 + @param connectedTime 通话接通时间 + @param duration 通话总时长 + @param hangupReason 通话结束的原因 + @discussion + 初始化通话摘要消息 + + @remarks 资源管理 + @return 通话摘要消息的对象 + */ +- (instancetype)initWithCaller:(NSString *)caller + inviter:(NSString *)inviter + mediaType:(RCCallMediaType)mediaType + memberIdList:(NSArray *)memberIdList + startTime:(long long)startTime + connectedTime:(long long)connectedTime + duration:(long long)duration + hangupReason:(RCCallDisconnectReason)hangupReason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallUserProfile.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallUserProfile.h new file mode 100644 index 0000000..d7614f0 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RCCallUserProfile.h @@ -0,0 +1,114 @@ +// +// RCCallUserProfile.h +// RongCallLib +// +// Created by RongCloud on 16/2/29. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import "RCCallCommonDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 用户的通话状态 + */ +@interface RCCallUserProfile : NSObject + +/*! + 用户ID + */ +@property (nonatomic, strong) NSString *userId; + +/*! + 用户的通话媒体连接ID + */ +@property (nonatomic, strong) NSString *mediaId; + +/*! + 用户所使用的媒体类型 + */ +@property (nonatomic, assign) RCCallMediaType mediaType; + +/*! + 用户的通话状态 + */ +@property (nonatomic, assign) RCCallStatus callStatus; + +/*! + 用户的摄像头是否已经关闭 + */ +@property (nonatomic, assign) BOOL cameraDisabled; + +/*! + 用户的麦克风是否已经关闭 + */ +@property (nonatomic, assign) BOOL micDisabled; + +/*! + 收到通话呼入的时间 + + @discussion 只有当前登录用户的呼入时间是准确的,其他用户的并不准确 + */ +@property (nonatomic, assign) long long startTime; + +/*! + 通话的接通时间 + */ +@property (nonatomic, assign) long long connectedTime; + +/*! + 通话的挂断时间 + */ +@property (nonatomic, assign) long long endTime; + +/*! + 用户的视频View + */ +@property (nonatomic, strong, nullable) UIView *videoView; + +/*! + 音视频用户类型 + */ +@property (nonatomic, assign) NSInteger blinkUserType DEPRECATED_MSG_ATTRIBUTE("use userType instead") __attribute__((deprecated)); + +/*! + 音视频用户类型 +*/ +@property (nonatomic, assign) RCCallUserType userType; + +/*! + 音频主叫接通前声音输出 Yes:外放 NO:听筒 + */ +@property (nonatomic, assign) BOOL isSpeakerInAudioMode; + +/*! + 用户标签 +*/ +@property (nonatomic, strong, nullable) NSString *tag; + +/*! + 初始化用户的通话状态 + + @param userId 用户ID + @param mediaId 用户的通话媒体连接ID + @param mediaType 用户所使用的媒体类型 + @param callStatus 用户的通话状态 + @param startTime 收到通话呼入的时间 + @discussion + 初始化用户的通话状态 + + @remarks 通话设置 + @return 用户的通话状态对象 +*/ +- (instancetype)initWithUserId:(NSString *)userId + mediaId:(nullable NSString *)mediaId + mediaType:(RCCallMediaType)mediaType + callStatus:(RCCallStatus)callStatus + startTime:(long long)startTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RongCallLib.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RongCallLib.h new file mode 100644 index 0000000..73fba88 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Headers/RongCallLib.h @@ -0,0 +1,24 @@ +// +// RongCallLib.h +// RongCallLib +// +// Created by RongCloud on 16/4/25. +// Copyright © 2016年 Rong Cloud. All rights reserved. +// + +#import + +//! Project version number for RongCallLib. +FOUNDATION_EXPORT double RongCallLibVersionNumber; + +//! Project version string for RongCallLib. +FOUNDATION_EXPORT const unsigned char RongCallLibVersionString[]; + +// In this header, you should import all the public headers of your framework +// using statements like #import + +#import +#import +#import +#import +#import diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Info.plist new file mode 100644 index 0000000..32cd70f Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Modules/module.modulemap b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Modules/module.modulemap new file mode 100644 index 0000000..6098c0a --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongCallLib { + umbrella header "RongCallLib.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/RongCallLib b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/RongCallLib new file mode 100755 index 0000000..b9c9251 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-arm64/RongCallLib.framework/RongCallLib differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallClient.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallClient.h new file mode 100644 index 0000000..4fd4353 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallClient.h @@ -0,0 +1,536 @@ +// +// RCCallClient.h +// RongCallLib +// +// Created by RongCloud on 16/2/28. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import +#import +#import "RCCallClientSignalServer.h" +#import "RCCallCommonDefine.h" +#import "RCCallSession.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + CallLib全局通话呼入的监听器 + */ +@protocol RCCallReceiveDelegate + +@required +/*! + 接收到通话呼入的回调 + + @param callSession 呼入的通话实体 + @discussion + 接收到通话呼入的回调 + + @remarks 代理 + */ +- (void)didReceiveCall:(RCCallSession *)callSession; + +/*! + +接收到通话呼入的远程通知的回调 + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param userDict 远程推送包含的其他扩展信息 + @param isVoIPPush 是否 VoIP 推送 + @param pushConfig 推送配置 + + @discussion + 接收到通话呼入的远程通知的回调 + + @remarks 代理 + */ +- (void)didReceiveCallRemoteNotification:(nullable NSString *)callId + inviterUserId:(nullable NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(nullable NSArray *)userIdList + userDict:(nullable NSDictionary *)userDict + isVoIPPush:(BOOL)isVoIPPush + pushConfig:(nullable RCMessagePushConfig *)pushConfig; + +/*! + 接收到取消通话的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param pushConfig 推送配置 + @param isRemoteCancel 是否为远端取消呼叫 + @discussion + 接收到取消通话的远程通知的回调 + + @remarks 代理 + */ +- (void)didCancelCallRemoteNotification:(nullable NSString *)callId + inviterUserId:(nullable NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(nullable NSArray *)userIdList + pushConfig:(nullable RCMessagePushConfig *)pushConfig + isRemoteCancel:(BOOL)isRemoteCancel; + +@optional + +/*! + 接收到通话漏接的回调 + + @param callSession 呼入的通话实体 + @discussion + 接收到通话漏接的回调 + + @remarks 代理 + */ +- (void)didMissCall:(RCCallSession *)callSession; + +/*! + 接收到取消通话的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @discussion + 接收到取消通话的远程通知的回调 + + @remarks 代理 + */ +- (void)didCancelCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(NSArray *)userIdList + DEPRECATED_MSG_ATTRIBUTE( + "use didCancelCallRemoteNotification:inviterUserId:mediaType:userIdList:pushConfig:isRemoteCancel: instead"); + +/*! + 接收到通话呼入的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param userDict 远程推送包含的其他扩展信息 + @discussion + 接收到通话呼入的远程通知的回调 + + @remarks 代理 + */ +- (void)didReceiveCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(NSArray *)userIdList + userDict:(NSDictionary *)userDict + DEPRECATED_MSG_ATTRIBUTE( + "use didReceiveCallRemoteNotification:inviterUserId:mediaType:userIdList:userDict:isVoIPPush:pushConfig: " + "instead"); + +/*! + 接收到通话呼入的远程通知的回调 + + @param callId 呼入通话的唯一值 + @param inviterUserId 通话邀请者的UserId + @param mediaType 通话的媒体类型 + @param userIdList 被邀请者的UserId列表 + @param userDict 远程推送包含的其他扩展信息 + @param isVoIPPush 是否 VoIP 推送 + @discussion + 接收到通话呼入的远程通知的回调 + + @remarks 代理 + */ +- (void)didReceiveCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallMediaType)mediaType + userIdList:(NSArray *)userIdList + userDict:(NSDictionary *)userDict + isVoIPPush:(BOOL)isVoIPPush + DEPRECATED_MSG_ATTRIBUTE( + "use didReceiveCallRemoteNotification:inviterUserId:mediaType:userIdList:userDict:isVoIPPush:pushConfig: " + "instead"); + +@end + +/*! + 语音识别监听器 + */ +@protocol RCCallASRDelegate + +@optional + +/*! + 语音识别错误通知回调 + + @remarks 代理 + */ +- (void)didASRError:(NSInteger)code; + +/*! + 语音识别服务开启通知回调 + + @remarks 代理 + */ +- (void)didReceiveStartASR; + +/*! + 语音识别服务停止通知回调 + + @remarks 代理 + */ +- (void)didReceiveStopASR; + +/*! + 语音识别信息回调 + + @param asrContent 语音识别信息 + + @remarks 代理 + */ +- (void)didReceiveASRContent:(RCRTCASRContent *)asrContent; + +/*! + 语音翻译内容回调 + + @param content 语音翻译内容 + + @remarks 代理 + */ +- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content; + +@end + +@class RCMessagePushConfig; + +/*! + 融云CallLib核心类 + */ +@interface RCCallClient : NSObject + +/*! + 自定义push消息. 应在startCall之前调用 + */ +@property (nonatomic, strong, nullable) RCMessagePushConfig *invitePushConfig; + +/*! + 自定义push消息. 应在startCall之前调用 + */ +@property (nonatomic, strong, nullable) RCMessagePushConfig *hangupPushConfig; + +/*! + 呼叫或通话过程中, 当收到手机号系统来电时, 是否挂断当前呼叫或通话, 默认: Yes 挂断 +*/ +@property (nonatomic, assign) BOOL canHangupSystemPhonecall; + +/*! + 在开启 IM 链接多端登录的前提下,同一 UserId 的不同端先后加入通话的处理行为 默认: RCCallJoinCallTypeKick 将先加入通话用户踢出通话 + */ +@property (nonatomic, assign) RCCallJoinCallType joinCallType; + +/*! + 获取融云通话能力库 RCCallClient 的核心类单例 + + @discussion + 您可以通过此方法, 获取 RCCallClient 的单例,访问对象中的属性和方法 + + @remarks 通话设置 + @return 融云通话能力库 RCCallClient 的核心类单例 + */ ++ (instancetype)sharedRCCallClient; + +/*! + 设置全局通话呼入的监听器 + + @param delegate CallLib全局通话呼入的监听器 + @discussion + 设置全局通话呼入的监听器 + + @remarks 通话设置 + */ +- (void)setDelegate:(id)delegate; + +/*! + 发起一个通话 + + @param conversationType 会话类型 + @param targetId 目标会话ID, 单人呼叫时targetId为被叫端UserId, 多人呼叫时targetId为群组Id, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param userIdList 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param type 发起的通话媒体类型 + @param delegate 通话监听 + @param extra 附件信息 + @discussion + 发起一个通话 + + @remarks 通话管理 + @return 呼出的通话实体 + */ +- (nullable RCCallSession *)startCall:(RCConversationType)conversationType + targetId:(NSString *)targetId + to:(NSArray *)userIdList + mediaType:(RCCallMediaType)type + sessionDelegate:(id)delegate + extra:(nullable NSString *)extra; + +/*! + 发起一个跨应用通话 + + @param conversationType 会话类型 (仅支持单聊) + @param targetId 目标会话ID, 单人呼叫时targetId为被叫端UserId + @param userIdList 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫;(注意此处ID组成形式为Appkey+UserId, 格式为appkey_userid,注意下划线拼接) + @param type 发起的通话媒体类型 + @param delegate 通话监听 + @param extra 附件信息 + @discussion + 发起一个通话 + + @remarks 通话管理 + @return 呼出的通话实体 + */ +- (RCCallSession *)startCrossCall:(RCConversationType)conversationType + targetId:(NSString *)targetId + to:(NSArray *)userIdList + mediaType:(RCCallMediaType)type + sessionDelegate:(id)delegate + extra:(nullable NSString *)extra; + +/*! + 发起一个通话 + + @param conversationType 会话类型 + @param targetId 目标会话ID, 单人呼叫时targetId为被叫端UserId, 多人呼叫时targetId为群组Id + @param userIdList 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param observerIdList 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId + @param type 发起的通话媒体类型 + @param delegate 通话监听 + @param extra 附件信息 + @discussion + 发起一个通话 + + @remarks 通话管理 + @return 呼出的通话实体 + */ +- (nullable RCCallSession *)startCall:(RCConversationType)conversationType + targetId:(NSString *)targetId + to:(NSArray *)userIdList + observerIdList:(NSArray *)observerIdList + mediaType:(RCCallMediaType)type + sessionDelegate:(id)delegate + extra:(nullable NSString *)extra; + +/*! + 当前会话类型是否支持音频通话 + + @param conversationType 会话类型 + @discussion + 当前会话类型是否支持音频通话 + + @remarks 通话设置 + @return 是否支持音频通话 + */ +- (BOOL)isAudioCallEnabled:(RCConversationType)conversationType; + +/*! + 当前会话类型是否支持视频通话 + + @param conversationType 会话类型 + @discussion + 当前会话类型是否支持视频通话 + + @remarks 通话设置 + @return 是否支持视频通话 + */ +- (BOOL)isVideoCallEnabled:(RCConversationType)conversationType; + +/*! + 设置本地视频分辨率 + + @param profile 通话视频分辨率 + @discussion + 设置本地视频分辨率 + + @remarks 视频设置 + */ +- (void)setVideoProfile:(RCVideoProfile)profile; + +/*! + 设置本地视频属性, 可用此接口设置本地视频方向 + + @param orientation 视频方向, 默认: AVCaptureVideoOrientationPortrait + @discussion + 设置本地视频属性, 可用此接口设置本地视频方向 + + @remarks 视频设置 + */ +- (void)setVideoOrientation:(AVCaptureVideoOrientation)orientation; + +/*! + 设置码率 + + @param rate 码率 单位 kbps + @discussion + 设置码率 + + @remarks 视频设置 + */ +- (void)setBitRate:(NSUInteger)rate; + +/*! + 设置外部信令服务器代理 + + @param signalServerDelegate 外部信令服务器代理 + @discussion + 默认情况下 app 使用融云消息作为信令即可, 不需要设置此代理, 此时有个限制就是所有的通话必须在某一个会话中进行, 比如群组. + 如果您需要摆脱会话的限制, 请使用 server api 服务实现本代理, 然后 startCall 时 conversationType 传 0, targetId 传 nil, calllib 会调用您设置的代理来发送消息. + 请务必使用一个全局代理, 确保在拨打和接听 VoIP 的时候代理对象都存活, 这样才能确保正常通话. + + @remarks 通话设置 + */ +- (void)setSignalServerDelegate:(id)signalServerDelegate; + +/*! + 当前的通话会话实体 + */ +@property (nonatomic, strong, readonly, nullable) RCCallSession *currentCallSession; + +/*! + @remarks 上次通话的通话会话静态实体 + + @discussion + 5.8.0版本callLib修改 + currentCallSession有效生命周期由开始通话直到下次通话开始为止,变为了由开始通话直到这次通话结束为止 + 为了弥补这个逻辑缺失,新增了lastCallSession,从这次通话回调结束以后生效,直到下次通话结束失效 + */ +@property (nonatomic, strong, readonly, nullable) RCCallSessionSnapshot *lastCallSession; + +/*! + 是否生成通话记录消息,默认为YES + */ +@property (nonatomic, assign) BOOL enableCallSummary; + +/*! + 是否开启多平台模式,默认为NO + */ +@property (nonatomic, assign) BOOL enableMultiPlatformMode; + +/*! + 设置是否使用苹果 PushKit 推送 + + @param enable YES 使用, NO 不使用 + @discussion + 是否打开苹果 PushKit 推送, 该推送可以直接激活 App, 注: iOS 13 以后 PushKit 必须结合苹果 CallKit.framework 进行使用, 否则无法正常处理 VoIP 相关推送逻辑, + 如果设置为 NO 则使用普通 APNS 消息推送来处理音视频信令逻辑, 默认关闭. 打开之后 App 默认需要自行处理 VoIP 推送唤起 CallKit.framework 的逻辑. + + @remarks 通话设置 + */ +- (void)setApplePushKitEnable:(BOOL)enable; + +/*! + 设置是否使用音视频预热 + +@param preconnectEnabled YES 使用, NO 不使用 +@discussion +默认情况下 SDK 内部会在发送通话信令或接听信令成功的时候,主动进行音视频的预热 + +@remarks 通话设置 + */ +- (void)setPreconnectEnabled:(BOOL)preconnectEnabled; + +/*! + 设置语音识别监听器 + + @param delegate 语音识别监听器 + @discussion + 设置语音识别监听器 + + @remarks 语音识别设置 + */ +- (void)setASRDelegate:(id)delegate; + +/*! + 设置语音识别源语言 + + @param languageCode 语言代码 + @discussion + 设置语音识别源语言 + + @remarks 语音识别设置 + */ +- (void)setSrcLanguageCode:(NSString *)languageCode; + +/*! + 开启语音识别服务 + + @param completion 开启语音识别服务回调 + + @discussion + 开启语音识别服务,如果房间内没有人发布流,则无法开启语音识别服务,SDK 会在有人发布流后补偿进行开启语音识别服务 + + @remarks 语音识别 + */ +- (void)startASR:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 停止语音识别服务 + + @param completion 停止语音识别服务回调 + + @discussion + 停止语音识别服务 + + @remarks 语音识别设置 + */ +- (void)stopASR:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 设置是否打开语音识别 + +@param enable YES 打开, NO 关闭 +@return 返回值,0 代表成功 +@discussion +1. 通话接通后,可以通过此接口打开或关闭语音识别功能; +2. 默认关闭语音识别功能,开启后会在通话过程中自动识别用户语音并转换为文字。 + +@remarks 语音识别设置 + */ +- (int)setEnableASR:(BOOL)enable; + +/*! + 开启语音翻译 + @param destLangCode 翻译目标语言码 + + @discussion + 1. 语音翻译依赖语音识别服务,需要在收到 RCCallASRDelegate 的 didReceiveStartASR 回调后,调用开启语音翻译 + 2. 开启语音翻译,会通过 RCCallASRDelegate 的 didReceiveRealtimeTranslationContent 回调返回语音翻译结果 + + @remarks 语音识别设置 + */ +- (void)startRealtimeTranslation:(NSString *)destLangCode copmletion:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 关闭语音翻译 + + @discussion + 关闭语音翻译 + + @remarks 语音识别设置 + */ +- (void)stopRealtimeTranslation:(nullable void (^)(BOOL success, NSInteger code))completion; + +/*! + 获取 SDK 版本号 + + @return 版本号 + + @remarks 参数配置 + */ ++ (NSString *)getVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallClientSignalServer.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallClientSignalServer.h new file mode 100644 index 0000000..8bcecf8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallClientSignalServer.h @@ -0,0 +1,69 @@ +// +// RCCallClientSignalServer.h +// RongCallLib +// +// Created by RongCloud on 2017/7/25. +// Copyright © 2017年 Rong Cloud. All rights reserved. +// + +#ifndef RCCallClientSignalServer_h +#define RCCallClientSignalServer_h +#import +#import "RCCallSummaryMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 信令服务代理 + */ +@protocol RCCallSignalServerDelegate + +/*! + 获取通话参与者的唯一媒体ID, 必须保证每次电话会议的每个人的媒体ID都是全局唯一的 + + @param successBlock 为当前用户分配的媒体Id成功的回调 + @param errorBlcok 获取媒体Id失败的回调 + @discussion + 获取通话参与者的唯一媒体ID, 必须保证每次电话会议的每个人的媒体ID都是全局唯一的 + + @remarks 代理 + */ +- (void)getUniqueMediaId:(nullable void (^)(NSString *mediaId))successBlock error:(nullable void (^)(int errorCode))errorBlcok; + +/*! + 发送 VoIP 信令消息 + + @param messageContent 消息内容 + @param toUserIdList 接收者的Id + @param pushContent pushContent + @param pushData pushData + @param successBlock 成功的回调 + @param errorBlcok 失败的回调 + @discussion + 发送 VoIP 信令消息 + + @remarks 代理 + */ +- (void)sendVoipSignalMessage:(RCMessageContent *)messageContent + toUserIdList:(NSArray *)toUserIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(int errorCode))errorBlcok; + +/*! + VoIP 通话结束返回的统计信息 + + @param summary 通话统计 + @discussion + VoIP 通话结束返回的统计信息 + + @remarks 代理 + */ +- (void)onVoipCallSummary:(RCCallSummaryMessage *)summary; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCCallClientSignalServer_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallCommonDefine.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallCommonDefine.h new file mode 100644 index 0000000..10225a8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallCommonDefine.h @@ -0,0 +1,454 @@ +// +// RCCallCommonDefine.h +// RongCallLib +// +// Created by RongCloud on 16/2/28. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#ifndef RCCallCommonDefine_h +#define RCCallCommonDefine_h + +/*! + 引擎类型 + */ +typedef NS_ENUM(NSInteger, RCCallEngineType) { + /*! + 无 + */ + RCCallEngineNone = 0, + /*! + 声网 + */ + RCCallEngineAgora = 1, + /*! + 融云 + */ + RCCallEngineRong = 2, + /*! + Blink + */ + RCCallEngineBlink = 3, + /*! + RTC3.0 + */ + RCCallEngineRongRTC = 4 +}; + +/*! + 媒体类型 + */ +typedef NS_ENUM(NSInteger, RCCallMediaType) { + /*! + 音频 + */ + RCCallMediaAudio = 1, + /*! + 视频 + */ + RCCallMediaVideo = 2 +}; + +/*! + 媒体类型 + */ +typedef NS_ENUM(NSInteger, RCCallRoomType) { + /*! + 同App通话 + */ + RCCallRoomTypeNormalCall = 0, + /*! + 跨App通话 + */ + RCCallRoomTypeCrossCall = 7 +}; + + +/*! + 通话质量 + */ +typedef NS_ENUM(NSUInteger, RCCallQuality) { + /*! + 未知 + */ + RCCall_Quality_Unknown = 0, + /*! + Excellent + */ + RCCall_Quality_Excellent = 1, + /*! + Good + */ + RCCall_Quality_Good = 2, + /*! + Poor + */ + RCCall_Quality_Poor = 3, + /*! + Bad + */ + RCCall_Quality_Bad = 4, + /*! + VBad + */ + RCCall_Quality_VBad = 5, + /*! + Down + */ + RCCall_Quality_Down = 6 +}; + +/** + 视频显示模式 + */ +typedef NS_ENUM(NSInteger, RCCallRenderModel) { + /*! + 默认: 如果视频尺寸与显示视窗尺寸不一致,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。 + */ + RCCallRenderModelHidden = 1, + + /*! + RenderFit: 如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗。 + */ + RCCallRenderModelFit = 2, + + /*! + RenderAdaptive: 如果自己和对方都是竖屏,或者如果自己和对方都是横屏,使用 + RCCallRenderModelHidden;如果对方和自己一个竖屏一个横屏,则使用RCCallRenderModelFit。 + */ + RCCallRenderModelAdaptive = 3 +}; + +#pragma mark - Call + +/*! + 错误码 + */ +typedef NS_ENUM(NSInteger, RCCallErrorCode) { + /*! + 成功 + */ + RCCallSuccess = 0, + /*! + 网络不可用 + */ + RCCallNetworkUnavailable = 1, + /*! + 已经处于通话中了 + */ + RCCallOneCallExisted = 2, + /*! + 无效操作 + */ + RCCallOperationUnavailable = 3, + /*! + 参数错误 + */ + RCCallInvalidParam = 4, + /*! + 网络不稳定 + */ + RCCallNetworkUnstable = 5, + /*! + 媒体服务请求失败 + */ + RCCallMediaRequestFailed = 6, + /*! + 媒体服务初始化失败 + */ + RCCallMediaServerNotReady = 7, + /*! + 媒体服务未初始化 + */ + RCCallMediaServerNotInitialized = 8, + /*! + 媒体服务请求超时 + */ + RCCallMediaRequestTimeout = 9, + /*! + 未知的媒体服务错误 + */ + RCCallMediaUnkownError = 10, + /*! + 已被禁止通话 + */ + RCCallMediaKickedByServerError = 11, + /*! + 音视频服务已关闭 + */ + RCCallMediaServerClosedError = 12, + /*! + 音视频发布资源失败 + */ + RCCallMediaServerPublishError = 13, + /*! + 音视频订阅资源失败 + */ + RCCallMediaServerSubscribeError = 14, + /*! + 其他端已在通话中 + */ + RCCallMediaJoinRoomRefuseError = 15, + /*! + 己方其他端已加入其他房间 + */ + RCCallMediaOtherClientJoinedRoom = 16 +}; + +/*! + 通话结束原因 + */ +typedef NS_ENUM(NSInteger, RCCallDisconnectReason) { + /*! + 己方取消已发出的通话请求 + */ + RCCallDisconnectReasonCancel = 1, + /*! + 己方拒绝收到的通话请求 + */ + RCCallDisconnectReasonReject = 2, + /*! + 己方挂断 + */ + RCCallDisconnectReasonHangup = 3, + /*! + 己方忙碌 + */ + RCCallDisconnectReasonBusyLine = 4, + /*! + 己方未接听 + */ + RCCallDisconnectReasonNoResponse = 5, + /*! + 己方不支持当前引擎 + */ + RCCallDisconnectReasonEngineUnsupported = 6, + /*! + 己方网络出错 + */ + RCCallDisconnectReasonNetworkError = 7, + /*! + 己方获取媒体资源失败 + */ + RCCallDisconnectReasonResourceError = 8, + /*! + 己方发布资源失败 + */ + RCCallDisconnectReasonPublishError = 9, + /*! + 己方订阅资源失败 + */ + RCCallDisconnectReasonSubscribeError = 10, + /*! + 对方取消已发出的通话请求 + */ + RCCallDisconnectReasonRemoteCancel = 11, + /*! + 对方拒绝收到的通话请求 + */ + RCCallDisconnectReasonRemoteReject = 12, + /*! + 对方挂断 + */ + RCCallDisconnectReasonRemoteHangup = 13, + /*! + 对方忙碌 + */ + RCCallDisconnectReasonRemoteBusyLine = 14, + /*! + 对方未接听 + */ + RCCallDisconnectReasonRemoteNoResponse = 15, + /*! + 对方不支持当前引擎 + */ + RCCallDisconnectReasonRemoteEngineUnsupported = 16, + /*! + 对方网络错误 + */ + RCCallDisconnectReasonRemoteNetworkError = 17, + /*! + 对方获取媒体资源失败 + */ + RCCallDisconnectReasonRemoteResourceError = 18, + /*! + 对方发布资源失败 + */ + RCCallDisconnectReasonRemotePublishError = 19, + /*! + 对方订阅资源失败 + */ + RCCallDisconnectReasonRemoteSubscribeError = 20, + /*! + 己方其他端已加入新通话 + */ + RCCallDisconnectReasonKickedByOtherCall = 21, + /*! + 己方其他端已在通话中 + */ + RCCallDisconnectReasonInOtherCall = 22, + /*! + 己方已被禁止通话 + */ + RCCallDisconnectReasonKickedByServer = 23, + /*! + 己方已接听系统来电 + */ + RCCallDisconnectReasonAcceptSystemCall = 24, + /*! + 对方其他端已加入新通话 + */ + RCCallDisconnectReasonRemoteKickedByOtherCall = 31, + /*! + 对方其他端已在通话中 + */ + RCCallDisconnectReasonRemoteInOtherCall = 32, + /*! + 对方已被禁止通话 + */ + RCCallDisconnectReasonRemoteKickedByServer = 33, + /*! + 对方已接听系统来电 + */ + RCCallDisconnectReasonRemoteAcceptSystemCall = 34, + /*! + 己方其他端已接听 + */ + RCCallDisconnectReasonAcceptByOtherClient = 101, + /*! + 己方其他端已挂断 + */ + RCCallDisconnectReasonHangupByOtherClient = 102, + /*! + 己方被对方加入黑名单 + */ + RCCallDisconnectReasonAddToBlackList = 103, + /*! + 音视频服务已关闭 + */ + RCCallDisconnectReasonMediaServerClosed = 104, + /*! + 己方被降级为观察者 + */ + RCCallDisconnectReasonDegrade = 301 +}; + +/*! + 通话视频参数 + */ +typedef NS_ENUM(NSInteger, RCVideoProfile) { + /*! + 176x132, 10fps, 150kbps + */ + RC_VIDEO_PROFILE_132P = 10, + /*! + 256x144, 15fps, 240kbps + */ + RC_VIDEO_PROFILE_144P_1 = 11, + /*! + 240x240, 15fps, 280kbps + */ + RC_VIDEO_PROFILE_240P = 20, + /*! + 320x240, 15fps, 400kbps + */ + RC_VIDEO_PROFILE_240P_1 = 21, + /*! + 480x360, 15fps, 650kbps + */ + RC_VIDEO_PROFILE_360P = 30, + /*! + 640x360, 15fps, 800kbps + */ + RC_VIDEO_PROFILE_360P_1 = 40, + /*! + 640x480, 15fps, 900kbps + */ + RC_VIDEO_PROFILE_480P = 50, + /*! + 720x480, 15fps, 1000kbps + */ + RC_VIDEO_PROFILE_480P_1 = 60, + /*! + 1280x720, 15fps, 2500kbps + */ + RC_VIDEO_PROFILE_720P = 70, + /* + 1920*1080, 15fps, 4000kbps + */ + RC_VIDEO_PROFILE_1080P = 80, + /*! + 默认的视频参数 + */ + RC_VIDEO_PROFILE_DEFAULT = RC_VIDEO_PROFILE_480P +}; + +/*! + 视频编码方式 + */ +typedef NS_ENUM(NSInteger, RCVideoCodecType) { + /*! + H264 + */ + RC_VIDEO_CODEC_H264 +}; + +/*! + 通话状态 + */ +typedef NS_ENUM(NSInteger, RCCallStatus) { + /*! + 初始状态 + */ + //RCCallIdle = 0, + /*! + 正在呼出 + */ + RCCallDialing = 1, + /*! + 正在呼入 + */ + RCCallIncoming = 2, + /*! + 收到一个通话呼入后,正在振铃 + */ + RCCallRinging = 3, + /*! + 正在通话 + */ + RCCallActive = 4, + /*! + 已经挂断 + */ + RCCallHangup = 5 +}; + +/*! + 用户类型 + */ +typedef NS_ENUM(NSInteger, RCCallUserType) { + /*! + 正常用户 + */ + RCCallUserNormal = 1, + /*! + 观察者 + */ + RCCallUserObserver = 2 +}; + +/*! + 同UserId两端同时加入通话类型 + */ +typedef NS_ENUM(NSUInteger, RCCallJoinCallType) { + /*! + 将先加入通话用户踢出通话 + */ + RCCallJoinCallTypeKick, + /*! + 拒绝当前用户加入通话 + */ + RCCallJoinCallTypeRefuse, +}; + +#endif /* RCCallCommonDefine_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallSession.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallSession.h new file mode 100644 index 0000000..1c26759 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallSession.h @@ -0,0 +1,687 @@ +// +// RCCallSession.h +// RongCallLib +// +// Created by RongCloud on 16/2/29. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import +#import "RCCallCommonDefine.h" +#import "RCCallUserProfile.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 通话状态变化的监听器 + */ +@protocol RCCallSessionDelegate + +@optional + +/*! + 通话已接通 + + @discussion + 通话已接通 + + @remarks 代理 +*/ +- (void)callDidConnect; + +/*! + 通话已结束 + + @discussion + 通话已结束 + + @remarks 代理 +*/ +- (void)callDidDisconnect; + +/*! + 通话已结束 + + @param reason 挂断原因 + @discussion + 通话已结束 + + @warning + 这个接口和callDidDisconnect 回调方法相同,增加返回挂断原因。 + 同时实现本回调,通话已结束将不会再通过callDidDisconnect 处理。 + + @remarks 代理 +*/ +- (void)callDidDisconnectWithReason:(RCCallDisconnectReason)reason; + +/*! + 对端用户正在振铃 + + @param userId 正在振铃的用户ID + @discussion + 对端用户正在振铃 + + @remarks 代理 + */ +- (void)remoteUserDidRing:(NSString *)userId; + +/*! + 有用户被邀请加入通话 + + @param userId 被邀请的用户ID + @param mediaType 希望被邀请者使用的媒体类型 + @discussion + 有用户被邀请加入通话 + + @remarks 代理 + */ +- (void)remoteUserDidInvite:(NSString *)userId mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户加入了通话 + + @param userId 用户ID + @param mediaType 用户的媒体类型 + @discussion + 对端用户加入了通话 + + @remarks 代理 + */ +- (void)remoteUserDidJoin:(NSString *)userId mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户切换了媒体类型 + + @param userId 用户ID + @param mediaType 切换至的媒体类型 + @discussion + 对端用户切换了媒体类型 + + @remarks 代理 +*/ +- (void)remoteUserDidChangeMediaType:(NSString *)userId mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户开启或关闭了麦克风的状态 + + @param disabled 是否关闭麦克风 + @param userId 用户ID + @discussion + 对端用户开启或关闭了麦克风的状态 + + @remarks 代理 +*/ +- (void)remoteUserDidDisableMicrophone:(BOOL)disabled byUser:(NSString *)userId; + +/*! + 对端用户开启或关闭了摄像头的状态 + + @param disabled 是否关闭摄像头 + @param userId 用户ID + @discussion + 对端用户开启或关闭了摄像头的状态 + + @remarks 代理 +*/ +- (void)remoteUserDidDisableCamera:(BOOL)disabled byUser:(NSString *)userId; + +/*! + 对端用户挂断 + + @param userId 用户ID + @param reason 挂断的原因 + @discussion + 对端用户挂断 + + @remarks 代理 +*/ +- (void)remoteUserDidLeft:(NSString *)userId reason:(RCCallDisconnectReason)reason; + +/*! + 对端用户发布自定义媒体流 + + @param streamId 自定义流ID + @param tag 自定义流标签 + @param mediaType 媒体类型 + @discussion + 对端用户发布自定义媒体流 + + @remarks 代理 +*/ +- (void)remoteUserDidPublishCustomMediaStream:(NSString *)streamId + streamTag:(NSString *)tag + mediaType:(RCCallMediaType)mediaType; + +/*! + 对端用户取消发布自定义媒体流 + + @param streamId 自定义流ID + @discussion + 对端用户取消发布自定义媒体流 + + @remarks 代理 +*/ +- (void)remoteUserDidCancelPublishCustomMediaStream:(NSString *)streamId; + +/*! + 本地发布资源上报 + + @param success 发布资源是否成功 + @discussion + 本地发布资源上报 + + @remarks 代理 + */ +- (void)localUserDidPublishStream:(BOOL)success; + +/*! + 彩铃 + + @discussion + 彩铃 + + @remarks 代理 +*/ +- (void)shouldAlertForWaitingRemoteResponse; + +/*! + 来电铃声 + + @discussion + 来电铃声 + + @remarks 代理 +*/ +- (void)shouldRingForIncomingCall; + +/*! + 通话接通或挂断时停止播放铃声 + + @discussion + 通话接通或挂断时停止播放铃声 + + @remarks 代理 + */ +- (void)shouldStopAlertAndRing; + +/*! + 通话过程中的错误回调 + + @param error 错误码 + @discussion + 通话过程中的错误回调 + + @warning + 这个接口回调的错误码主要是为了提供必要的log以及提示用户,如果是不可恢复的错误,SDK会挂断电话并回调callDidDisconnect,App可以在callDidDisconnect中统一处理通话结束的逻辑 + + @remarks 代理 + */ +- (void)errorDidOccur:(RCCallErrorCode)error; + +/*! + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @param txQuality 上行网络质量 + @param rxQuality 下行网络质量, 接收到的所有远端用户网络质量的平均值 + @discussion + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @remarks 代理 + */ +- (void)networkTxQuality:(RCCallQuality)txQuality rxQuality:(RCCallQuality)rxQuality; + +/*! + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @param txQuality 上行网络质量 + @param rxQuality 下行网络质量, 接收到的某个远端用户的网络质量 + @param userID 远端用户 + @discussion + 当前通话网络状态的回调,该回调方法每秒触发一次 + + @remarks 代理 + */ +- (void)networkTxQuality:(RCCallQuality)txQuality rxQuality:(RCCallQuality)rxQuality remoteUserID:(nullable NSString *)userID; + +/*! + 当前通话某用户声音音量回调,该回调方法每两秒触发一次 + + @param leavel 声音级别: 0~9, 0为无声, 依次变大 + @param userID 用户ID, 本端用户ID(发送音量) 或 远端用户ID(接收音量) + @discussion + 当前通话某用户声音音量回调,该回调方法每两秒触发一次 + + @remarks 代理 + */ +- (void)audioLevel:(NSInteger)leavel userID:(nullable NSString *)userID; + + +/*! + 摄像头采集视频帧数据上报 + + @param pixelBuffer 摄像头采集视频帧数据 + @discussion + 当前视频通话摄像头采集视频帧数据回调,如果修改了该视频数据,会影响显示本地和发送视频帧数据 + + @remarks 代理 + */ +- (void)processCaptureVideoFrame:(nullable CVPixelBufferRef)pixelBuffer; + +/*! + 发送本地视频帧数据上报 + + @param pixelBuffer 发送本地视频帧数据 + @discussion + 当前视频通话发送本地视频帧数据回调,如果修改了该视频数据,会影响发送视频帧数据 + + @remarks 代理 + */ +- (void)processVideoFrame:(nullable CVPixelBufferRef)pixelBuffer; + +/*! + 显示本地视频帧数据上报 + + @param pixelBuffer 显示本地视频数据 + @discussion + 当前视频通话显示本地视频帧数据回调,如果修改了该视频数据,会影响显示本地视频帧数据 + + @remarks 代理 + */ +- (void)processDisplayVideoFrame:(nullable CVPixelBufferRef)pixelBuffer; + +/*! + 当前通话为视频通话时, 收到远端用户的第一个视频帧的回调 + @param userId 远端用户ID + + @remarks 代理 + */ +- (void)receiveRemoteUserVideoFirstKeyFrame:(nullable NSString *)userId; + +/*! + 当前通话为音频或视频通话时, 收到远端用户的第一个音频帧的回调 + @param userId 远端用户ID + + @remarks 代理 + */ +- (void)receiveRemoteUserVideoFirstAudioFrame:(nullable NSString *)userId; + +/*! + 对端用户视频分辨率变化的回调 + + @param userId 用户ID + @param size 变化后的视频分辨率 + @discussion + 对端用户视频分辨率变化的回调 + + @remarks 代理 + */ +- (void)remoteUserDidChangeResolution:(nullable NSString *)userId resolution:(CGSize)size; + +@end + +@class RCMessagePushConfig; +@protocol RCRTCDrawer; + +/*! + 通话实体 + */ +@interface RCCallSession : NSObject + +/*! + 通话的会话类型 + */ +@property (nonatomic, assign, readonly) RCConversationType conversationType; + +/*! + 通话ID + */ +@property (nonatomic, strong, readonly, nullable) NSString *callId; + +/*! + 通话的目标会话ID + */ +@property (nonatomic, strong, readonly, nullable) NSString *targetId; + +/*! + RTC会话唯一标识, 用于 Server API + */ +@property (nonatomic, strong, readonly, nullable) NSString *sessionId; + +/*! + 是否是多方通话 + */ +@property (nonatomic, assign, readonly, getter=isMultiCall) BOOL multiCall; + +/*! + 通话的扩展信息 + */ +@property (nonatomic, strong, readonly, nullable) NSString *extra; + +/*! + 通话的当前状态 + */ +@property (nonatomic, assign, readonly) RCCallStatus callStatus; + +/*! + 通话的最初发起人 + */ +@property (nonatomic, strong, readonly, nullable) NSString *caller; + +/*! + 邀请当前用户加入通话的邀请者 + */ +@property (nonatomic, strong, readonly, nullable) NSString *inviter; + +/*! + 当前的用户列表 + */ +@property (nonatomic, strong, readonly, nullable) NSArray *userProfileList; + +/*! + 自己的状态 + */ +@property (nonatomic, strong, readonly, nullable) RCCallUserProfile *myProfile; + +/*! + 当前用户使用的媒体类型 + */ +@property (nonatomic, assign, readonly) RCCallMediaType mediaType; + +/*! + 通话开始的时间 + + @discussion 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。 + */ +@property (nonatomic, assign, readonly) long long startTime; + +/*! + 通话接通时间 + */ +@property (nonatomic, assign, readonly) long long connectedTime; + +/*! + 通话挂断原因 + */ +@property (nonatomic, assign) RCCallDisconnectReason disconnectReason; + +/*! + 设置通话状态变化的监听器 + + @param delegate 通话状态变化的监听器 + @discussion + 设置通话状态变化的监听器 + + @warning + 已废弃, 请使用 addDelegate: + + @remarks 通话设置 + */ +- (void)setDelegate:(id)delegate DEPRECATED_MSG_ATTRIBUTE("please call method addDelegate:"); + +/*! + 添加通话状态的监听器, 支持多代理 + + @param delegate 通话状态变化的监听器 + @discussion + 添加通话状态的监听器, 支持多代理 + + @remarks 通话设置 + */ +- (void)addDelegate:(id)delegate; + +/** + 删除通话状态的监听器 + + @param delegate 通话状态的监听器 + @discussion + 删除通话状态的监听器 + + @remarks 通话设置 + */ +- (void)removeDelegate:(id)delegate; + +/*! + 获取所有的监听器 + + @discussion + 获取所有的监听器 + + @remarks 通话设置 + @return 所有注册的代理数组 + */ +- (NSArray> *)allDelegates; + +/*! + 接听来电 + + @param type 接听使用的媒体类型 + @discussion + 接听来电 + + @remarks 通话管理 +*/ +- (void)accept:(RCCallMediaType)type; + +/*! + 挂断通话 + + @discussion + 挂断通话 + + @remarks 通话管理 +*/ +- (void)hangup; + +/*! + 挂断通话 + + @param block 挂断消息发送回调 + + @discussion + 挂断通话 + + @remarks 通话管理 +*/ +- (void)hangup:(nullable void (^)(BOOL isSuccess, NSInteger code))block; + +/*! + 观察者身份用户, 发布自己的音视频资源 + + @param mediaType 发布的媒体类型 + @param block 发布完成的回调 + @discussion + 观察者身份用户, 发布自己的音视频资源 + + @warning + 只有观察者用户可以发布音视频资源 + + @remarks 资源管理 + */ +- (void)publishMediaResource:(RCCallMediaType)mediaType complete:(nullable void (^)(BOOL isSuccess, NSInteger code))block; + +/*! + 正常身份用户, 取消发布自己的音视频资源 + + @param block 取消发布完成的回调 + @discussion + 正常身份用户, 取消发布自己的音视频资源 + + @warning + 只有正常用户可以取消发布音视频资源 + + @remarks 资源管理 + */ +- (void)unPublishMediaResource:(nullable void (^)(BOOL isSuccess, NSInteger code))block; + +/*! + 邀请用户加入通话 + + @param userIdList 用户ID列表 + @param type 建议被邀请者使用的媒体类型 + @discussion + 邀请用户加入通话 + + @remarks 通话管理 + */ +- (void)inviteRemoteUsers:(nullable NSArray *)userIdList mediaType:(RCCallMediaType)type; + +/*! + 邀请用户加入通话 + + @param userIdList 用户ID列表 + @param observerIdList 需要以观察者身份加入房间的用户ID列表 + @param type 建议被邀请者使用的媒体类型 + @discussion + 邀请用户加入通话 + + @remarks 通话管理 + */ +- (void)inviteRemoteUsers:(nullable NSArray *)userIdList + observerIdList:(nullable NSArray *)observerIdList + mediaType:(RCCallMediaType)type; + +/*! + 设置用户所在的视频View + + @param userId 用户ID(自己或他人) + @param view 视频的View + @discussion + 设置用户所在的视频View + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable UIView *)view userId:(nullable NSString *)userId; + +/*! + 设置用户所在的视频View + + @param userId 用户ID(自己或他人) + @param view 继承RCRTCDrawer 接口 视频的View + @discussion + 设置用户所在的视频View + 注意: + 1.此接口需要RCCallClient中enableMultiPlatformMode设置为YES方可使用 + 2. view 的生命周期自己处理 + + @remarks 视频配置 + */ +- (int)setMultiPlatformVideoView:(nullable id)view userId:(nullable NSString *)userId; + +/** + 设置用户所在的视频View + + @param view userId 用户ID(自己或他人) + @param userId 视频的View + @param renderMode 视频显示模式 (默认为RCCallRenderModelHidden) + @discussion + 设置用户所在的视频View + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable UIView *)view userId:(nullable NSString *)userId renderMode:(RCCallRenderModel)renderMode; + +/*! + 更换自己使用的媒体类型 + + @param type 媒体类型 + @discussion + 更换自己使用的媒体类型 + + @remarks 通话管理 + */ +- (BOOL)changeMediaType:(RCCallMediaType)type; + +/*! + 静音状态 + */ +@property (nonatomic, readonly) BOOL isMuted; + +/*! + 设置静音状态 + + @param muted 是否静音, 默认值为NO + @discussion + 设置静音状态 + + @remarks 音频配置 + @return 是否设置成功 + */ +- (BOOL)setMuted:(BOOL)muted; + +/*! + 是否有最小化窗口 + */ +@property (nonatomic, readonly) BOOL minimized; + +/*! + 设置是否有最小化窗口状态 + + @param minimized 是否最小化 + @discussion + 设置是否有最小化窗口状态 + + @remarks 通话设置 + */ +- (void)setMinimized:(BOOL)minimized; + +/*! + 扬声器状态,是否开启扬声器 + + @discussion 默认值为NO。 + */ +@property (nonatomic, readonly) BOOL speakerEnabled; + +/*! + 设置扬声器状态 + + @param speakerEnabled 是否开启扬声器 + @discussion + 设置扬声器状态 + + @remarks 音频配置 + @return 是否设置成功 + */ +- (BOOL)setSpeakerEnabled:(BOOL)speakerEnabled; + +/*! + 摄像头状态,是否开启摄像头 + */ +@property (nonatomic, readonly) BOOL cameraEnabled; + +/*! + 设置摄像头状态 + + @param cameraEnabled 是否开启摄像头 + @discussion + 音频通话的默认值为NO,视频通话的默认值为YES。 + + @remarks 视频配置 + @return 是否设置成功 + */ +- (BOOL)setCameraEnabled:(BOOL)cameraEnabled; + +/*! + 切换前后摄像头 + + @discussion + 切换前后摄像头 + + @remarks 视频配置 + @return 是否切换成功 + */ +- (BOOL)switchCameraMode; + +@end + +/*! + 静态通话实体 + 从属性依赖callEngine取值的RCCallSession中,copy一个不依赖callEngine的静态对象 + */ +@interface RCCallSessionSnapshot : RCCallSession +/// 从其他对象拷贝 +- (instancetype)initWithSession:(RCCallSession *)session; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallSummaryMessage.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallSummaryMessage.h new file mode 100644 index 0000000..05e1e40 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallSummaryMessage.h @@ -0,0 +1,98 @@ +// +// RCCallSummaryMessage.h +// RongCallLib +// +// Created by RongCloud on 16/3/1. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import "RCCallCommonDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 通话摘要消息的类型名 + */ +#define RCCallSummaryMessageTypeIdentifier @"RC:VCSummary" + +/*! + 通话摘要消息类 + + @discussion 通话摘要消息类,此消息会进行存储并计入未读消息数。 + */ +@interface RCCallSummaryMessage : RCMessageContent + +/*! + 通话的最初发起人 + */ +@property (nonatomic, strong) NSString *caller; + +/*! + 邀请当前用户加入通话的邀请者 + */ +@property (nonatomic, strong) NSString *inviter; + +/*! + 当前用户最后使用的媒体类型 + */ +@property (nonatomic, assign) RCCallMediaType mediaType; + +/*! + 通话挂断时包含的用户ID列表 + */ +@property (nonatomic, strong) NSArray *memberIdList; + +/*! + 通话开始时间 + + @discussion + 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。 + */ +@property (nonatomic, assign) long long startTime; + +/*! + 通话接通时间 + */ +@property (nonatomic, assign) long long connectedTime; + +/*! + 通话总时长 + */ +@property (nonatomic, assign) long long duration; + +/*! + 通话结束的原因 + */ +@property (nonatomic, assign) RCCallDisconnectReason hangupReason; + +/*! + 初始化通话摘要消息 + + @param caller 通话的最初发起人 + @param inviter 邀请当前用户加入通话的邀请者 + @param mediaType 当前用户最后使用的媒体类型 + @param memberIdList 通话挂断时包含的用户ID列表 + @param startTime 通话开始时间 + @param connectedTime 通话接通时间 + @param duration 通话总时长 + @param hangupReason 通话结束的原因 + @discussion + 初始化通话摘要消息 + + @remarks 资源管理 + @return 通话摘要消息的对象 + */ +- (instancetype)initWithCaller:(NSString *)caller + inviter:(NSString *)inviter + mediaType:(RCCallMediaType)mediaType + memberIdList:(NSArray *)memberIdList + startTime:(long long)startTime + connectedTime:(long long)connectedTime + duration:(long long)duration + hangupReason:(RCCallDisconnectReason)hangupReason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallUserProfile.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallUserProfile.h new file mode 100644 index 0000000..d7614f0 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RCCallUserProfile.h @@ -0,0 +1,114 @@ +// +// RCCallUserProfile.h +// RongCallLib +// +// Created by RongCloud on 16/2/29. +// Copyright © 2016年 RongCloud. All rights reserved. +// + +#import +#import +#import "RCCallCommonDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 用户的通话状态 + */ +@interface RCCallUserProfile : NSObject + +/*! + 用户ID + */ +@property (nonatomic, strong) NSString *userId; + +/*! + 用户的通话媒体连接ID + */ +@property (nonatomic, strong) NSString *mediaId; + +/*! + 用户所使用的媒体类型 + */ +@property (nonatomic, assign) RCCallMediaType mediaType; + +/*! + 用户的通话状态 + */ +@property (nonatomic, assign) RCCallStatus callStatus; + +/*! + 用户的摄像头是否已经关闭 + */ +@property (nonatomic, assign) BOOL cameraDisabled; + +/*! + 用户的麦克风是否已经关闭 + */ +@property (nonatomic, assign) BOOL micDisabled; + +/*! + 收到通话呼入的时间 + + @discussion 只有当前登录用户的呼入时间是准确的,其他用户的并不准确 + */ +@property (nonatomic, assign) long long startTime; + +/*! + 通话的接通时间 + */ +@property (nonatomic, assign) long long connectedTime; + +/*! + 通话的挂断时间 + */ +@property (nonatomic, assign) long long endTime; + +/*! + 用户的视频View + */ +@property (nonatomic, strong, nullable) UIView *videoView; + +/*! + 音视频用户类型 + */ +@property (nonatomic, assign) NSInteger blinkUserType DEPRECATED_MSG_ATTRIBUTE("use userType instead") __attribute__((deprecated)); + +/*! + 音视频用户类型 +*/ +@property (nonatomic, assign) RCCallUserType userType; + +/*! + 音频主叫接通前声音输出 Yes:外放 NO:听筒 + */ +@property (nonatomic, assign) BOOL isSpeakerInAudioMode; + +/*! + 用户标签 +*/ +@property (nonatomic, strong, nullable) NSString *tag; + +/*! + 初始化用户的通话状态 + + @param userId 用户ID + @param mediaId 用户的通话媒体连接ID + @param mediaType 用户所使用的媒体类型 + @param callStatus 用户的通话状态 + @param startTime 收到通话呼入的时间 + @discussion + 初始化用户的通话状态 + + @remarks 通话设置 + @return 用户的通话状态对象 +*/ +- (instancetype)initWithUserId:(NSString *)userId + mediaId:(nullable NSString *)mediaId + mediaType:(RCCallMediaType)mediaType + callStatus:(RCCallStatus)callStatus + startTime:(long long)startTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RongCallLib.h b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RongCallLib.h new file mode 100644 index 0000000..73fba88 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Headers/RongCallLib.h @@ -0,0 +1,24 @@ +// +// RongCallLib.h +// RongCallLib +// +// Created by RongCloud on 16/4/25. +// Copyright © 2016年 Rong Cloud. All rights reserved. +// + +#import + +//! Project version number for RongCallLib. +FOUNDATION_EXPORT double RongCallLibVersionNumber; + +//! Project version string for RongCallLib. +FOUNDATION_EXPORT const unsigned char RongCallLibVersionString[]; + +// In this header, you should import all the public headers of your framework +// using statements like #import + +#import +#import +#import +#import +#import diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Info.plist new file mode 100644 index 0000000..2c0b776 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Modules/module.modulemap b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Modules/module.modulemap new file mode 100644 index 0000000..6098c0a --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongCallLib { + umbrella header "RongCallLib.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/RongCallLib b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/RongCallLib new file mode 100755 index 0000000..edc1ce2 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallLib.xcframework/ios-x86_64-simulator/RongCallLib.framework/RongCallLib differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/Info.plist new file mode 100644 index 0000000..2fb9582 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/Info.plist @@ -0,0 +1,43 @@ + + + + + AvailableLibraries + + + BinaryPath + RongCallWrapper.framework/RongCallWrapper + LibraryIdentifier + ios-arm64 + LibraryPath + RongCallWrapper.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + RongCallWrapper.framework/RongCallWrapper + LibraryIdentifier + ios-x86_64-simulator + LibraryPath + RongCallWrapper.framework + SupportedArchitectures + + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWAndroidPushConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWAndroidPushConfig.h new file mode 100644 index 0000000..f7eab9b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWAndroidPushConfig.h @@ -0,0 +1,123 @@ +// +// RCCallIWAndroidPushConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, RCCallIWImportanceHW) { + /*! + 华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。 + */ + RCCallIWImportanceHWNormal = 0, + + /*! + 华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。 + */ + RCCallIWImportanceHWLow = 1, +}; + +@interface RCCallIWAndroidPushConfig : NSObject + +/*! + Android 平台 Push 唯一标识 + 目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。 + */ +@property (nonatomic, copy) NSString *notificationId; + +/*! + 小米的渠道 ID + 该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 + */ +@property (nonatomic, copy) NSString *channelIdMi; + +/*! + 小米 Large icon 链接 + Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。 + */ +@property (nonatomic, copy) NSString *imageUrlMi; + +/*! + 华为的渠道 ID + 该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 + */ +@property (nonatomic, copy) NSString *channelIdHW; + +/*! + 华为通知栏消息右侧大图标 URL + 如果不设置,则不展示通知栏右侧图标,URL 使用的协议必须是 HTTPS 协议。 + 图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。 + */ +@property (nonatomic, copy) NSString *imageUrlHW; + +/*! + 华为推送消息级别 + */ +@property (nonatomic, assign) RCCallIWImportanceHW importanceHW; + +/*! + 华为推送消息分类 + + 社交通讯:即时通讯[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, copy) NSString *typeVivo; + +/*! + 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.2 + */ +@property (nonatomic, copy) NSString *categoryVivo; + +/*! + FCM 通知类型推送时所使用的分组 id + */ +@property (nonatomic, copy) NSString *collapseKeyFCM; + +/*! + FCM 通知类型的推送所使用的通知图片 url + */ +@property (nonatomic, copy) NSString *imageUrlFCM; + +/*! + FCM 通知的频道 ID + 该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。 + */ +@property (nonatomic, copy) NSString *channelIdFCM; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWAudioConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWAudioConfig.h new file mode 100644 index 0000000..acadc0e --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWAudioConfig.h @@ -0,0 +1,16 @@ +// +// RCCallIWAudioConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWAudioConfig : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWCallSession.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWCallSession.h new file mode 100644 index 0000000..7a18160 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWCallSession.h @@ -0,0 +1,85 @@ +// +// RCCallIWCallSession.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWCallSession : NSObject + +/*! + 通话类型 + */ +@property (nonatomic, readonly) RCCallIWCallType callType; + +/*! + 通话媒体类型 + */ +@property (nonatomic, readonly) RCCallIWMediaType mediaType; + +/*! + 通话id + */ +@property (nonatomic, readonly) NSString *callId; + +/*! + 通话目标id + */ +@property (nonatomic, readonly) NSString *targetId; + +/*! + RTC会话唯一标识, 用于 Server API + */ +@property (nonatomic, readonly) NSString *sessionId; + +/*! + 通话的扩展信息 + */ +@property (nonatomic, readonly) NSString *extra; + +/*! + 通话开始的时间 + + @discussion 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。 + */ +@property (nonatomic, readonly) long long startTime; + +/*! + 通话接通时间 + */ +@property (nonatomic, readonly) long long connectedTime; + +/*! + 通话结束时间 + */ +@property (nonatomic, readonly) long long endTime; + +/*! + 当前通话发起者 + */ +@property (nonatomic, readonly) RCCallIWUserProfile *caller; + +/*! + 邀请当前用户到当前通话的邀请者 + */ +@property (nonatomic, readonly) RCCallIWUserProfile *inviter; + +/*! + 当前用户 + */ +@property (nonatomic, readonly) RCCallIWUserProfile *mine; + +/*! + 当前通话的全部用户列表 + */ +@property (nonatomic, readonly) NSArray *users; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWDefine.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWDefine.h new file mode 100644 index 0000000..daa83cf --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWDefine.h @@ -0,0 +1,429 @@ +// +// RCCallIWDefine.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#ifndef RCCallIWDefine_h +#define RCCallIWDefine_h + +#import + +/*! + 用户身份类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWUserType) { + /*! + 普通身份 + */ + RCCallIWUserTypeNormal = 1, + /*! + 观察者身份 + */ + RCCallIWUserTypeObserver = 2 +}; + +/*! + 通话类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWCallType) { + /*! + 单聊通话 + */ + RCCallIWCallTypeSingle = 0, + /*! + 群聊通话 + */ + RCCallIWCallTypeGroup = 1 +}; + +/*! + 通话媒体类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWMediaType) { + /*! + 音频通话 + */ + RCCallIWMediaTypeAudio = 0, + /*! + 音视频通话 + */ + RCCallIWMediaTypeAudioVideo = 2 +}; + +/*! + 相机类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWCamera) { + /*! + 未指定 + */ + RCCallIWCameraNone = -1, + /*! + 前置相机 + */ + RCCallIWCameraFront = 0, + /*! + 后置相机 + */ + RCCallIWCameraBack = 1, +}; + +/*! + 网络质量 + */ +typedef NS_ENUM(NSInteger, RCCallIWNetworkQuality) { + /*! + 未知 + */ + RCCallIWNetworkQualityUnknown = 0, + /*! + 极好 + */ + RCCallIWNetworkQualityExcellent = 1, + /*! + 好 + */ + RCCallIWNetworkQualityGood = 2, + /*! + 一般 + */ + RCCallIWNetworkQualityPoor = 3, + /*! + 差 + */ + RCCallIWNetworkQualityBad = 4, + /*! + 极差 + */ + RCCallIWNetworkQualityTerrible = 5, +}; + +/*! + 视频显示模式 + */ +typedef NS_ENUM(NSInteger, RCCallIWViewFitType) { + /*! + 拉伸全屏 + */ + RCCallIWViewFitTypeFill = 0, + /*! + 满屏显示, 等比例填充, 直到填充满整个试图区域,其中一个维度的部分区域会被裁剪 + */ + RCCallIWViewFitTypeCover = 1, + /*! + 完整显示, 填充黑边, 等比例填充,直达一个维度到达区域边界 + */ + RCCallIWViewFitTypeCenter = 2, +}; + + +/*! + 通话视频参数 + */ +typedef NS_ENUM (NSInteger, RCCallIWVideoProfile) { + /*! + 144x256, 15fps, 120~240kbps + */ + RCCallIW_VIDEO_PROFILE_144_256 = 10, + /*! + 240x240, 15fps, 120~280kbps + */ + RCCallIW_VIDEO_PROFILE_240_240 = 20, + /*! + 240x320, 15fps, 120~400kbps + */ + RCCallIW_VIDEO_PROFILE_240_320 = 30, + /*! + 360x480, 15fps, 150~650kbps + */ + RCCallIW_VIDEO_PROFILE_360_480 = 40, + /*! + 360x640, 15fps, 180~800kbps + */ + RCCallIW_VIDEO_PROFILE_360_640 = 50, + /*! + 480x640, 15fps, 200~900kbps + */ + RCCallIW_VIDEO_PROFILE_480_640 = 60, + /*! + 480x720, 15fps, 200~1000kbps + */ + RCCallIW_VIDEO_PROFILE_480_720 = 70, + /*! + 720x1280, 15fps, 250~2200kbps + */ + RCCallIW_VIDEO_PROFILE_720_1280 = 80, + /*! + 1080x1920, 15fps, 400~4000kbps + */ + RCCallIW_VIDEO_PROFILE_1080_1920 = 90, + /*! + 144x256, 30fps, 240~480kbps + */ + RCCallIW_VIDEO_PROFILE_144_256_HIGH = 11, + /*! + 240x240, 30fps, 240~360kbps + */ + RCCallIW_VIDEO_PROFILE_240_240_HIGH = 21, + /*! + 240x320, 30fps, 240~800kbps + */ + RCCallIW_VIDEO_PROFILE_240_320_HIGH = 31, + /*! + 360x480, 30fps, 300~1300kbps + */ + RCCallIW_VIDEO_PROFILE_360_480_HIGH = 41, + /*! + 360x640, 30fps, 360~1600kbps + */ + RCCallIW_VIDEO_PROFILE_360_640_HIGH = 51, + /*! + 480x640, 30fps, 400~1800kbps + */ + RCCallIW_VIDEO_PROFILE_480_640_HIGH = 61, + /*! + 480x720, 30fps, 400~2000kbps + */ + RCCallIW_VIDEO_PROFILE_480_720_HIGH = 71, + /*! + 720x1080, 30fps, 500~4400kbps + */ + RCCallIW_VIDEO_PROFILE_720_1280_HIGH = 81, + /*! + 1080x1920, 30fps, 800~8000kbps + */ + RCCallIW_VIDEO_PROFILE_1080_1920_HIGH = 91, +}; + + +/*! + 摄像机方向 + 值与 AVCaptureVideoOrientation 一致 + */ +typedef NS_ENUM(NSInteger, RCCallIWCameraOrientation) { + RCCallIWCameraOrientationPortrait = 1, + RCCallIWCameraOrientationPortraitUpsideDown = 2, + RCCallIWCameraOrientationLandscapeRight = 3, + RCCallIWCameraOrientationLandscapeLeft = 4, +}; + +/*! + 通话结束原因 + */ +typedef NS_ENUM (NSInteger, RCCallIWDisconnectReason) { + /*! + 己方取消已发出的通话请求 + */ + RCCallIWDisconnectReasonCancel = 1, + /*! + 己方拒绝收到的通话请求 + */ + RCCallIWDisconnectReasonReject = 2, + /*! + 己方挂断 + */ + RCCallIWDisconnectReasonHangup = 3, + /*! + 己方忙碌 + */ + RCCallIWDisconnectReasonBusyLine = 4, + /*! + 己方未接听 + */ + RCCallIWDisconnectReasonNoResponse = 5, + /*! + 己方不支持当前引擎 + */ + RCCallIWDisconnectReasonEngineUnsupported = 6, + /*! + 己方网络出错 + */ + RCCallIWDisconnectReasonNetworkError = 7, + /*! + 己方获取媒体资源失败 + */ + RCCallIWDisconnectReasonResourceError = 8, + /*! + 己方发布资源失败 + */ + RCCallIWDisconnectReasonPublishError = 9, + /*! + 己方订阅资源失败 + */ + RCCallIWDisconnectReasonSubscribeError = 10, + /*! + 对方取消已发出的通话请求 + */ + RCCallIWDisconnectReasonRemoteCancel = 11, + /*! + 对方拒绝收到的通话请求 + */ + RCCallIWDisconnectReasonRemoteReject = 12, + /*! + 通话过程对方挂断 + */ + RCCallIWDisconnectReasonRemoteHangup = 13, + /*! + 对方忙碌 + */ + RCCallIWDisconnectReasonRemoteBusyLine = 14, + /*! + 对方未接听 + */ + RCCallIWDisconnectReasonRemoteNoResponse = 15, + /*! + 对方不支持当前引擎 + */ + RCCallIWDisconnectReasonRemoteEngineUnsupported = 16, + /*! + 对方网络错误 + */ + RCCallIWDisconnectReasonRemoteNetworkError = 17, + /*! + 对方获取媒体资源失败 + */ + RCCallIWDisconnectReasonRemoteResourceError = 18, + /*! + 对方发布资源失败 + */ + RCCallIWDisconnectReasonRemotePublishError = 19, + /*! + 对方订阅资源失败 + */ + RCCallIWDisconnectReasonRemoteSubscribeError = 20, + /*! + 己方其他端已加入新通话 + */ + RCCallIWDisconnectReasonKickedByOtherCall = 21, + /*! + 己方其他端已在通话中 + */ + RCCallIWDisconnectReasonInOtherCall = 22, + /*! + 己方已被禁止通话 + */ + RCCallIWDisconnectReasonKickedByServer = 23, + /*! + 对方其他端已加入新通话 + */ + RCCallIWDisconnectReasonRemoteKickedByOtherCall = 24, + /*! + 对方其他端已在通话中 + */ + RCCallIWDisconnectReasonRemoteInOtherCall = 25, + /*! + 对方已被禁止通话 + */ + RCCallIWDisconnectReasonRemoteKickedByServer = 26, + /*! + 己方其他端已接听 + */ + RCCallIWDisconnectReasonAcceptByOtherClient = 27, + /*! + 己方其他端已挂断 + */ + RCCallIWDisconnectReasonHangupByOtherClient = 28, + /*! + 己方被对方加入黑名单 + */ + RCCallIWDisconnectReasonAddToBlackList = 29, + /*! + 音视频服务已关闭 + */ + RCCallIWDisconnectReasonMediaServerClosed = 30, + /*! + 己方被降级为观察者 + */ + RCCallIWDisconnectReasonDegrade = 31, + /*! + 己方摄像头初始化错误,可能是没有打开使用摄像头权限 + */ + RCCallIWDisconnectReasonInitVideoError = 32, + /*! + 其他端已经接听 + */ + RCCallIWDisconnectReasonOtherDeviceHadAccepted = 33, + /*! + im ipc服务已断开 + */ + RCCallIWDisconnectReasonServiceDisconnected = 34 +}; + + +/*! + 通话错误类型 + */ +typedef NS_ENUM (NSInteger, RCCallIWErrorCode) { + /*! + 成功 + */ + RCCallIWSuccess = 0, + /*! + 开通的音视频服务没有及时生效或音视频服务已关闭,请等待3-5小时后重新安装应用或开启音视频服务再进行测试 + */ + RCCallIWEngineNotFound = 1, + /*! + 网络不可用 + */ + RCCallIWNetworkUnavailable = 2, + /*! + 已经处于通话中了 + */ + RCCallIWOneCallExisted = 3, + /*! + 无效操作 + */ + RCCallIWOperationUnavailable = 4, + /*! + 参数错误 + */ + RCCallIWInvalidParam = 5, + /*! + 网络不稳定 + */ + RCCallIWNetworkUnstable = 6, + /*! + 媒体服务请求失败 + */ + RCCallIWMediaRequestFailed = 7, + /*! + 媒体服务初始化失败 + */ + RCCallIWMediaServerNotReady = 8, + /*! + 媒体服务未初始化 + */ + RCCallIWMediaServerNotInitialized = 9, + /*! + 媒体服务请求超时 + */ + RCCallIWMediaRequestTimeout = 10, + /*! + 未知的媒体服务错误 + */ + RCCallIWMediaUnkownError = 11, + /*! + 已被禁止通话 + */ + RCCallIWMediaKickedByServerError = 12, + /*! + 音视频服务已关闭 + */ + RCCallIWMediaServerClosedError = 13, + /*! + 音视频发布资源失败 + */ + RCCallIWMediaServerPublishError = 14, + /*! + 音视频订阅资源失败 + */ + RCCallIWMediaServerSubscribeError = 15, + /*! + 其他端已在通话中错误 + */ + RCCallIWMediaJoinRoomRefuseError = 16 +}; + +#endif /* RCCallIWDefine_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWEngine.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWEngine.h new file mode 100644 index 0000000..b1ce892 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWEngine.h @@ -0,0 +1,449 @@ +// +// RCCallIWEngine.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import + +@class RCCallIWEngineConfig; +@class RCCallIWPushConfig; +@class RCCallIWAudioConfig; +@class RCCallIWVideoConfig; +@class RCCallIWCallSession; +@class RCCallIWUserProfile; +@class RCCallIWBeautyOption; + +@protocol RCCallIWEngineDelegate; +@protocol RCCallIWSampleBufferVideoFrameDelegate; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWEngine : NSObject + +/*! + 获取引擎实例 + + @return 引擎实例 + */ ++ (RCCallIWEngine *)sharedInstance; + +/*! + 配置引擎 + + @param config 引擎配置 + */ +- (void)setEngineConfig:(nullable RCCallIWEngineConfig *)config; + +/*! + 配置推送 + + @param callPushConfig 呼叫推送配置 + @param hangupPushConfig 挂断推送配置 + */ +- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig + hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig; + +/*! + 配置推送 + + @param callPushConfig 呼叫推送配置 + @param hangupPushConfig 挂断推送配置 + @param enableApplePushKit 设置是否使用苹果 PushKit 推送, YES 使用, NO 不使用 + @discussion + 是否打开苹果 PushKit 推送, 该推送可以直接激活 App, 注: iOS 13 以后 PushKit 必须结合苹果 CallKit.framework 进行使用, 否则无法正常处理 VoIP 相关推送逻辑, + 如果设置为 NO 则使用普通 APNS 消息推送来处理音视频信令逻辑, 默认关闭. 打开之后 App 默认需要自行处理 VoIP 推送唤起 CallKit.framework 的逻辑. + */ +- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig + hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig + enableApplePushKit:(BOOL)enableApplePushKit; + +/*! + 配置音频 + + @param config 音频配置 + */ +- (void)setAudioConfig:(nullable RCCallIWAudioConfig *)config; + +/*! + 配置视频 + + @param config 视频配置 + */ +- (void)setVideoConfig:(nullable RCCallIWVideoConfig *)config; + +/*! + 配置监听 + + @param delegate 监听代理 + */ +- (void)setEngineDelegate:(nullable NSObject *)delegate; + +/*! + 拨打电话-单聊 + + @param userId 被叫端UserId + @param type 发起的通话媒体类型 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前Call Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)userId + type:(RCCallIWMediaType)type; + +/*! + 拨打电话-单聊 + + @param userId 被叫端UserId + @param type 发起的通话媒体类型 + @param extra 附件信息 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ + +- (RCCallIWCallSession *)startCall:(NSString *)userId + type:(RCCallIWMediaType)type + extra:(nullable NSString *)extra; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param type 发起的通话媒体类型 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + type:(RCCallIWMediaType)type; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param type 发起的通话媒体类型 + @param extra 附件信息 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + type:(RCCallIWMediaType)type + extra:(nullable NSString *)extra; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId + @param type 发起的通话媒体类型 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + observerUserIds:(nullable NSArray *)observerUserIds + type:(RCCallIWMediaType)type; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId + @param type 发起的通话媒体类型 + @param extra 附件信息 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + observerUserIds:(nullable NSArray *)observerUserIds + type:(RCCallIWMediaType)type + extra:(nullable NSString *)extra; + +/*! + 获取当前通话 Session + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)getCurrentCallSession; + +/*! + 接电话 + + @discussion + 如果呼入类型为语音通话,即接受语音通话,如果呼入类型为视频通话,即接受视频通话,打开默认(前置)摄像头。 + 观察者不开启摄像头。 + */ +- (void)accept; + +/*! + 挂断电话 + */ +- (void)hangup; + +/*! + 麦克风控制 + + @param enable YES 开启麦克风,NO 关闭麦克风 + */ +- (void)enableMicrophone:(BOOL)enable; + +/*! + 获取当前麦克风状态 + + @return 当前麦克风是否开启 + */ +- (BOOL)isEnableMicrophone; + +/*! + 扬声器控制 + + @param enable YES 开启扬声器,NO 关闭扬声器 + */ +- (void)enableSpeaker:(BOOL)enable; + +/*! + 获取当前扬声器状态 + + @return 当前扬声器是否开启 + */ +- (BOOL)isEnableSpeaker; + +/*! + 摄像头控制 + + @param enable YES 开启摄像头,NO 关闭摄像头 + */ +- (void)enableCamera:(BOOL)enable; + +/*! + 摄像头控制 + + @param enable YES 开启摄像头,NO 关闭摄像头 + @param camera 指定摄像头 + */ +- (void)enableCamera:(BOOL)enable camera:(RCCallIWCamera)camera; + +/*! + 获取当前摄像头状态 + + @return 当前摄像头是否开启 + */ +- (BOOL)isEnableCamera; + +/*! + 获取当前摄像头 + + @return 当前摄像头 + */ +- (RCCallIWCamera)currentCamera; + +/*! + 翻转摄像头 + */ +- (void)switchCamera; + +/*! + 设置预览窗口 + + @param userId 用户id + @param view 视频预览视图 + */ +- (void)setVideoView:(NSString *)userId + view:(UIView *)view; + +/*! + 设置预览窗口 + + @param userId 用户id + @param view 视频预览视图 + @param fit 视频显示模式 + */ +- (void)setVideoView:(NSString *)userId + view:(UIView *)view + fit:(RCCallIWViewFitType)fit; + +/*! + 修改通话媒体类型 + + @param type 通话媒体类型 + */ +- (void)changeMediaType:(RCCallIWMediaType)type; + +/*! + 邀请用户 + + @param userIds 被邀请用户id列表 + */ +- (void)inviteUsers:(NSArray *)userIds; + +/*! + 邀请用户 + + @param userIds 被邀请用户id列表 + @param observerUserIds 被邀请观察者id列表 + */ +- (void)inviteUsers:(NSArray *)userIds + observerUserIds:(NSArray *)observerUserIds; + +- (void)setLocalVideoProcessedDelegate:(id)delegate; + +@end + + +@protocol RCCallIWEngineDelegate + +@required +/*! + 接收到通话呼入的回调 + + @param session 通话Session + */ +- (void)didReceiveCall:(RCCallIWCallSession *)session; + +/*! + 通话已接通 + */ +- (void)callDidConnect; + +/*! + 通话已结束 + + @param reason 结束原因 + */ +- (void)callDidDisconnect:(RCCallIWDisconnectReason)reason; + +/*! + 对端用户加入了通话 + + @param user 对端用户信息 + */ +- (void)remoteUserDidJoin:(RCCallIWUserProfile *)user; + +/*! + 对端用户挂断 + + @param userId 对端用户信息 + @param reason 挂断原因 + */ +- (void)remoteUserDidLeave:(NSString *)userId + reason:(RCCallIWDisconnectReason)reason; + + +@optional +/*! + 接收到通话呼入的远程通知的回调 + */ +- (void)didReceiveCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallIWMediaType)mediaType + userIdList:(NSArray *)userIdList + userDict:(NSDictionary *)userDict + isVoIPPush:(BOOL)isVoIPPush + pushConfig:(RCCallIWPushConfig *)pushConfig; + +/*! + 接收到取消通话的远程通知的回调 + */ +- (void)didCancelCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallIWMediaType)mediaType + userIdList:(NSArray *)userIdList + pushConfig:(RCCallIWPushConfig *)pushConfig + isRemoteCancel:(BOOL)isRemoteCancel; + +/*! + 开启/关闭摄像头的回调 + */ +- (void)didEnableCamera:(RCCallIWCamera)camera + enable:(BOOL)enable; + +/*! + 切换摄像头的回调 + + @param camera 当前选择的摄像头 + */ +- (void)didSwitchCamera:(RCCallIWCamera)camera; + +/*! + 通话出现错误的回调 + */ +- (void)callDidError:(RCCallIWErrorCode)code; + +/*! + 开始呼叫通话的回调 + */ +- (void)callDidMake; + +/*! + 对端用户正在振铃 + */ +- (void)remoteUserDidRing:(NSString *)userId; + +/*! + 有用户被邀请加入通话 + */ +- (void)remoteUserDidInvite:(NSString *)userId + mediaType:(RCCallIWMediaType)mediaType; + +/*! + 对端用户切换了媒体类型 + */ +- (void)remoteUserDidChangeMediaType:(RCCallIWUserProfile *)user + mediaType:(RCCallIWMediaType)mediaType; + +/*! + 对端用户开启或关闭了麦克风的状态 + */ +- (void)remoteUserDidChangeMicrophoneState:(RCCallIWUserProfile *)user + enable:(BOOL)enable; + +/*! + 对端用户开启或关闭了摄像头的状态 + */ +- (void)remoteUserDidChangeCameraState:(RCCallIWUserProfile *)user + enable:(BOOL)enable; + +/*! + 当前通话网络状态的回调,该回调方法每秒触发一次 + @param user 用户信息 + @param quality 网络质量 + @discussion + 如果user是本端用户, quality代表上行网络质量 + 如果user是远端用户, quality代表下行网络质量 + */ +- (void)user:(RCCallIWUserProfile *)user networkQuality:(RCCallIWNetworkQuality)quality; + +/*! + 当前通话某用户声音音量回调,该回调方法每两秒触发一次 + @param user 用户信息 + @param volume 声音音量 + @discussion + 声音级别: 0~9, 0为无声, 依次变大 + 如果user是本端用户, volume代表发送音量 + 如果user是远端用户, volume代表接收音量 + */ +- (void)user:(RCCallIWUserProfile *)user audioVolume:(int)volume; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWEngineConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWEngineConfig.h new file mode 100644 index 0000000..e086984 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWEngineConfig.h @@ -0,0 +1,23 @@ +// +// RCCallIWEngineConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + + +NS_ASSUME_NONNULL_BEGIN +/*! + 引擎配置 + */ +@interface RCCallIWEngineConfig : NSObject +/*! + 开启通话记录 默认NO + */ +@property (nonatomic, assign) BOOL enableCallSummary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWFlutterView.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWFlutterView.h new file mode 100644 index 0000000..5cc0a45 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWFlutterView.h @@ -0,0 +1,41 @@ +// +// RCCallIWFlutterView.h +// RongCallWrapper +// +// Created by 潘铭达 on 2021/6/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCCallIWFlutterViewDelegate + +- (void)changeSize:(int)width height:(int)height; + +- (void)changeRotation:(int)rotation; + +- (void)firstFrameRendered; + +- (void)frameRendered; + +// 当原生层摄像头进行操作的时候 通知 Flutter 层的 view 进行视图的镜像操作 +- (void)onMirrorChanged:(BOOL)mirror; + +@end + +@interface RCCallIWFlutterView : NSObject + +@property (nonatomic, weak) id textureViewDelegate; + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)new NS_UNAVAILABLE; + +- (instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE; + ++ (RCCallIWFlutterView *)create; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWIOSPushConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWIOSPushConfig.h new file mode 100644 index 0000000..5408aa3 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWIOSPushConfig.h @@ -0,0 +1,41 @@ +// +// RCCallIWIOSPushConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWIOSPushConfig : 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 + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWPushConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWPushConfig.h new file mode 100644 index 0000000..5f84a88 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWPushConfig.h @@ -0,0 +1,74 @@ +// +// RCCallIWPushConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/*! + 推送配置 + */ +@interface RCCallIWPushConfig : NSObject + +/*! + 是否屏蔽通知标题 + YES: 不显示通知标题 + NO: 显示通知标题 + + @discussion 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。 + @discussion 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。 + */ +@property (nonatomic, assign) BOOL disableTitle; + +/*! + 推送标题 + 如果没有设置,会使用下面的默认标题显示规则 + 默认标题显示规则: + 内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。 + 自定义消息:默认不显示标题。 + */ +@property (nonatomic, copy) NSString *title; + +/*! + 推送内容 + 优先使用 MessagePushConfig 的 pushContent,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushContent。 + */ +@property (nonatomic, copy) NSString *content; + +/*! + 远程推送附加信息 + 优先使用 MessagePushConfig 的 pushData,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushData。 + */ +@property (nonatomic, copy) NSString *data; + +/*! + 是否强制显示通知详情 + 当目标用户通过 RCPushProfile 中的 updateShowPushContentStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。 + */ +@property (nonatomic, assign) BOOL forceShowDetailContent; + +/*! + 推送模板 ID,设置后根据目标用户通过 SDK RCPushProfile 中的 setPushLauguageCode 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送,模板内容在“开发者后台-自定义推送文案”中进行设置。 + 注:RCMessagePushConfig 中的 Title 和 PushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。 + */ +@property (nonatomic, copy) NSString *templateId; + +/*! + iOS 平台相关配置 + */ +@property (nonatomic, strong) RCCallIWIOSPushConfig *iOSConfig; + +/*! + Android 平台相关配置 + */ +@property (nonatomic, strong) RCCallIWAndroidPushConfig *androidConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWUserProfile.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWUserProfile.h new file mode 100644 index 0000000..75c2d17 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWUserProfile.h @@ -0,0 +1,41 @@ +// +// RCCallIWUserProfile.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWUserProfile : NSObject +/*! + 用户身份类型 + */ +@property (nonatomic, readonly) RCCallIWUserType userType; +/*! + 通话媒体类型 + */ +@property (nonatomic, readonly) RCCallIWMediaType mediaType; +/*! + 用户id + */ +@property (nonatomic, readonly) NSString *userId; +/*! + 用户的通话媒体连接ID + */ +@property (nonatomic, readonly) NSString *mediaId; +/*! + 用户是否开启摄像头 + */ +@property (nonatomic, readonly) BOOL enableCamera; +/*! + 用户是否开启麦克风 + */ +@property (nonatomic, readonly) BOOL enableMicrophone; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoConfig.h new file mode 100644 index 0000000..9478023 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoConfig.h @@ -0,0 +1,40 @@ +// +// RCCallIWVideoConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWVideoConfig : NSObject + +/*! + 视频配置 + 默认值 RCCallIW_VIDEO_PROFILE_720_1280 + */ +@property (nonatomic, assign) RCCallIWVideoProfile profile; +/*! + 摄像头 + 默认值 RCCallIWCameraFront + */ +@property (nonatomic, assign) RCCallIWCamera defaultCamera; +/*! + 相机方向 + 默认值 RCCallIWCameraOrientationPortrait + */ +@property (nonatomic, assign) RCCallIWCameraOrientation cameraOrientation; + +/*! + 本地预览是否镜像 + + 前置摄像头默认: YES,后置摄像头默认: NO + */ +@property (nonatomic, assign) BOOL isPreviewMirror; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoFrameDelegate.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoFrameDelegate.h new file mode 100644 index 0000000..8da867d --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoFrameDelegate.h @@ -0,0 +1,18 @@ +// +// RCCallIWVideoFrameDelegate.h +// RongCallWrapper +// +// Created by 潘铭达 on 2021/12/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCCallIWSampleBufferVideoFrameDelegate + +- (void)onPixelBuffer:(CVPixelBufferRef)pixelBuffer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoView.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoView.h new file mode 100644 index 0000000..526115a --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RCCallIWVideoView.h @@ -0,0 +1,23 @@ +// +// RCCallIWVideoView.h +// RongCallWrapper +// +// Created by RongCloud on 2023/5/12. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWVideoView : UIView + +@property (nonatomic, weak, readonly) RCRTCVideoView *videoView; +// 预览是否镜像 (最终设置的是原生 videoView,所以要注意设置的时机) +@property (nonatomic, assign) BOOL isMirror; +// 原生 videoView 添加完成 +@property (nonatomic, copy) void(^nativeVideoViewDidAdd)(RCRTCVideoView *videoView); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RongCallWrapper.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RongCallWrapper.h new file mode 100644 index 0000000..447d5f5 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Headers/RongCallWrapper.h @@ -0,0 +1,28 @@ +// +// RongCallWrapper.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/12. +// + +#import + +//! Project version number for RongCallWrapper. +FOUNDATION_EXPORT double RongCallWrapperVersionNumber; + +//! Project version string for RongCallWrapper. +FOUNDATION_EXPORT const unsigned char RongCallWrapperVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Info.plist new file mode 100644 index 0000000..aa0ed3d Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Modules/module.modulemap b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Modules/module.modulemap new file mode 100644 index 0000000..c63c589 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongCallWrapper { + umbrella header "RongCallWrapper.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RCConfig.plist b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongCallWrapper b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongCallWrapper new file mode 100755 index 0000000..fbf4246 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongCallWrapper differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongRTCLib.bundle/HwAiVadModel.bin b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongRTCLib.bundle/HwAiVadModel.bin new file mode 100755 index 0000000..9d48228 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongRTCLib.bundle/HwAiVadModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongRTCLib.bundle/HwAinrModel.bin b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongRTCLib.bundle/HwAinrModel.bin new file mode 100755 index 0000000..5b529e6 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/RongRTCLib.bundle/HwAinrModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..2b3c2e9 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-arm64/RongCallWrapper.framework/_CodeSignature/CodeResources @@ -0,0 +1,372 @@ + + + + + files + + Headers/RCCallIWAndroidPushConfig.h + + c8Nr+zXJBvG4EEuUrT1QFmj5fnQ= + + Headers/RCCallIWAudioConfig.h + + kGPMWb7BecYVlHQ9V+f794nOR4w= + + Headers/RCCallIWCallSession.h + + AnhTDcH3VjceT8E5vwfn4M1KRkE= + + Headers/RCCallIWDefine.h + + DAGsL8w84kqw8ZXp2cNbh7QSWLI= + + Headers/RCCallIWEngine.h + + Z4zTFQqdlABKiqe5+snC7d6/BpA= + + Headers/RCCallIWEngineConfig.h + + yQGCGoe19+myITZLqeO0VadV7Js= + + Headers/RCCallIWFlutterView.h + + y2cqUnU8QMNZ3CG0+C2mMNsxzic= + + Headers/RCCallIWIOSPushConfig.h + + 8qkNfl6i7/7v8+Ff+yCXkSZcbKA= + + Headers/RCCallIWPushConfig.h + + Dl/lC2HDVoElj5rdcPDirtFy00I= + + Headers/RCCallIWUserProfile.h + + OirfPQvRXiMSA7f7QCyBpmskr8E= + + Headers/RCCallIWVideoConfig.h + + kOdMpo6eHS1xv3wjNG6+ZiTkjLo= + + Headers/RCCallIWVideoFrameDelegate.h + + 4E8xM7l79Q0pj+PqnOIaLalKHZ0= + + Headers/RCCallIWVideoView.h + + ibFWGpV35ABCTAhuEtUsgKHQVnw= + + Headers/RongCallWrapper.h + + vXZ3cAYx+Hn3GKcucUwV0K4j8DQ= + + Info.plist + + Izr+R4U9kf63yZbS/sbtv1Hgxto= + + Modules/module.modulemap + + mB2JsmGuPd2g/QyaXMtdCzdDuzw= + + RCConfig.plist + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + RongRTCLib.bundle/HwAiVadModel.bin + + ATcRMel9IwX111oJWJbEEm8fxLw= + + RongRTCLib.bundle/HwAinrModel.bin + + B8kB+UwS+Djpk42nGs6PsuZb4i4= + + + files2 + + Headers/RCCallIWAndroidPushConfig.h + + hash + + c8Nr+zXJBvG4EEuUrT1QFmj5fnQ= + + hash2 + + tUBraHIlNP/nvghXtWtweS8roeTuGXH5le7Gtoqg2lI= + + + Headers/RCCallIWAudioConfig.h + + hash + + kGPMWb7BecYVlHQ9V+f794nOR4w= + + hash2 + + h7YMB2G9xbeDIdlGpjDdy7VeEd1V1lY0bhUhPnmj7do= + + + Headers/RCCallIWCallSession.h + + hash + + AnhTDcH3VjceT8E5vwfn4M1KRkE= + + hash2 + + 47JdoajKNgc8PvI2M1lo7XgKFDap/8zNE5aubhiMO9g= + + + Headers/RCCallIWDefine.h + + hash + + DAGsL8w84kqw8ZXp2cNbh7QSWLI= + + hash2 + + Txy4g9BC23EsyFZkra0VUfIXAZ+pOnmxcrIhTeyNNSw= + + + Headers/RCCallIWEngine.h + + hash + + Z4zTFQqdlABKiqe5+snC7d6/BpA= + + hash2 + + N8ZP4WzDTeXJ9tD15nIZiMEXBKA1ndfNuInF3WNd1pE= + + + Headers/RCCallIWEngineConfig.h + + hash + + yQGCGoe19+myITZLqeO0VadV7Js= + + hash2 + + +LkKAOHRYcPLjKrmOMYPRIr8DULzitIdlJyGE/v7hIo= + + + Headers/RCCallIWFlutterView.h + + hash + + y2cqUnU8QMNZ3CG0+C2mMNsxzic= + + hash2 + + IgRu9C00s2UBfZL10F56c7rG2Xu3yS1AM1ET+CChUlQ= + + + Headers/RCCallIWIOSPushConfig.h + + hash + + 8qkNfl6i7/7v8+Ff+yCXkSZcbKA= + + hash2 + + 4IZfnNPqAtJn0v1WGY1M4TmPWPwWbaeNWxUf2qNdFKw= + + + Headers/RCCallIWPushConfig.h + + hash + + Dl/lC2HDVoElj5rdcPDirtFy00I= + + hash2 + + h+XlKn0zxZLWTqirksIReWFIy98pxSzpVOxUcCzgudo= + + + Headers/RCCallIWUserProfile.h + + hash + + OirfPQvRXiMSA7f7QCyBpmskr8E= + + hash2 + + QmOPdaT/+idE+GEzrr3QR9BAsf0n10xelqc6s0vnOfw= + + + Headers/RCCallIWVideoConfig.h + + hash + + kOdMpo6eHS1xv3wjNG6+ZiTkjLo= + + hash2 + + UOkF0SEprFatUeYdw91eH8BhSBNcYalRGdJV7OeZszw= + + + Headers/RCCallIWVideoFrameDelegate.h + + hash + + 4E8xM7l79Q0pj+PqnOIaLalKHZ0= + + hash2 + + eVaF/p0qpzOF6/ryCEJ7Q2gdkyovIwmHM2QRFaFLjrU= + + + Headers/RCCallIWVideoView.h + + hash + + ibFWGpV35ABCTAhuEtUsgKHQVnw= + + hash2 + + jiI7NxMC7CAXlY9mE0LW6YkSMEXIfnjoVS7yDUorUBg= + + + Headers/RongCallWrapper.h + + hash + + vXZ3cAYx+Hn3GKcucUwV0K4j8DQ= + + hash2 + + TjeCqYh2mGPCDpHUTUAWlH8YPUvjci/ocEqzb+pJWoM= + + + Modules/module.modulemap + + hash + + mB2JsmGuPd2g/QyaXMtdCzdDuzw= + + hash2 + + HjxU8CFo4bZWSBFLKJxPfiAlkZdKpuae+1t2Iqu0d+s= + + + RCConfig.plist + + hash + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + hash2 + + q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI= + + + RongRTCLib.bundle/HwAiVadModel.bin + + hash + + ATcRMel9IwX111oJWJbEEm8fxLw= + + hash2 + + rI/0N8nw9Ktvh3flHD50aM1unvKAoT4PXCZogPS4lzo= + + + RongRTCLib.bundle/HwAinrModel.bin + + hash + + B8kB+UwS+Djpk42nGs6PsuZb4i4= + + hash2 + + wWEpSmpBqk1A1pnvwExjRDLmRm4kLI6s07dug5+9ftg= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWAndroidPushConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWAndroidPushConfig.h new file mode 100644 index 0000000..f7eab9b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWAndroidPushConfig.h @@ -0,0 +1,123 @@ +// +// RCCallIWAndroidPushConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, RCCallIWImportanceHW) { + /*! + 华为推送消息级别 NORMAL,表示消息为服务与通讯类。消息提醒方式为锁屏+铃声+震动。 + */ + RCCallIWImportanceHWNormal = 0, + + /*! + 华为推送消息级别 LOW, 表示消息为资讯营销类。消息提醒方式为静默通知,仅在下拉通知栏展示。 + */ + RCCallIWImportanceHWLow = 1, +}; + +@interface RCCallIWAndroidPushConfig : NSObject + +/*! + Android 平台 Push 唯一标识 + 目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。 + */ +@property (nonatomic, copy) NSString *notificationId; + +/*! + 小米的渠道 ID + 该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 + */ +@property (nonatomic, copy) NSString *channelIdMi; + +/*! + 小米 Large icon 链接 + Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。 + */ +@property (nonatomic, copy) NSString *imageUrlMi; + +/*! + 华为的渠道 ID + 该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 + */ +@property (nonatomic, copy) NSString *channelIdHW; + +/*! + 华为通知栏消息右侧大图标 URL + 如果不设置,则不展示通知栏右侧图标,URL 使用的协议必须是 HTTPS 协议。 + 图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。 + */ +@property (nonatomic, copy) NSString *imageUrlHW; + +/*! + 华为推送消息级别 + */ +@property (nonatomic, assign) RCCallIWImportanceHW importanceHW; + +/*! + 华为推送消息分类 + + 社交通讯:即时通讯[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, copy) NSString *typeVivo; + +/*! + 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.2 + */ +@property (nonatomic, copy) NSString *categoryVivo; + +/*! + FCM 通知类型推送时所使用的分组 id + */ +@property (nonatomic, copy) NSString *collapseKeyFCM; + +/*! + FCM 通知类型的推送所使用的通知图片 url + */ +@property (nonatomic, copy) NSString *imageUrlFCM; + +/*! + FCM 通知的频道 ID + 该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。 + */ +@property (nonatomic, copy) NSString *channelIdFCM; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWAudioConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWAudioConfig.h new file mode 100644 index 0000000..acadc0e --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWAudioConfig.h @@ -0,0 +1,16 @@ +// +// RCCallIWAudioConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWAudioConfig : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWCallSession.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWCallSession.h new file mode 100644 index 0000000..7a18160 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWCallSession.h @@ -0,0 +1,85 @@ +// +// RCCallIWCallSession.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWCallSession : NSObject + +/*! + 通话类型 + */ +@property (nonatomic, readonly) RCCallIWCallType callType; + +/*! + 通话媒体类型 + */ +@property (nonatomic, readonly) RCCallIWMediaType mediaType; + +/*! + 通话id + */ +@property (nonatomic, readonly) NSString *callId; + +/*! + 通话目标id + */ +@property (nonatomic, readonly) NSString *targetId; + +/*! + RTC会话唯一标识, 用于 Server API + */ +@property (nonatomic, readonly) NSString *sessionId; + +/*! + 通话的扩展信息 + */ +@property (nonatomic, readonly) NSString *extra; + +/*! + 通话开始的时间 + + @discussion 如果是用户呼出的通话,则startTime为通话呼出时间;如果是呼入的通话,则startTime为通话呼入时间。 + */ +@property (nonatomic, readonly) long long startTime; + +/*! + 通话接通时间 + */ +@property (nonatomic, readonly) long long connectedTime; + +/*! + 通话结束时间 + */ +@property (nonatomic, readonly) long long endTime; + +/*! + 当前通话发起者 + */ +@property (nonatomic, readonly) RCCallIWUserProfile *caller; + +/*! + 邀请当前用户到当前通话的邀请者 + */ +@property (nonatomic, readonly) RCCallIWUserProfile *inviter; + +/*! + 当前用户 + */ +@property (nonatomic, readonly) RCCallIWUserProfile *mine; + +/*! + 当前通话的全部用户列表 + */ +@property (nonatomic, readonly) NSArray *users; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWDefine.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWDefine.h new file mode 100644 index 0000000..daa83cf --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWDefine.h @@ -0,0 +1,429 @@ +// +// RCCallIWDefine.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#ifndef RCCallIWDefine_h +#define RCCallIWDefine_h + +#import + +/*! + 用户身份类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWUserType) { + /*! + 普通身份 + */ + RCCallIWUserTypeNormal = 1, + /*! + 观察者身份 + */ + RCCallIWUserTypeObserver = 2 +}; + +/*! + 通话类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWCallType) { + /*! + 单聊通话 + */ + RCCallIWCallTypeSingle = 0, + /*! + 群聊通话 + */ + RCCallIWCallTypeGroup = 1 +}; + +/*! + 通话媒体类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWMediaType) { + /*! + 音频通话 + */ + RCCallIWMediaTypeAudio = 0, + /*! + 音视频通话 + */ + RCCallIWMediaTypeAudioVideo = 2 +}; + +/*! + 相机类型 + */ +typedef NS_ENUM(NSInteger, RCCallIWCamera) { + /*! + 未指定 + */ + RCCallIWCameraNone = -1, + /*! + 前置相机 + */ + RCCallIWCameraFront = 0, + /*! + 后置相机 + */ + RCCallIWCameraBack = 1, +}; + +/*! + 网络质量 + */ +typedef NS_ENUM(NSInteger, RCCallIWNetworkQuality) { + /*! + 未知 + */ + RCCallIWNetworkQualityUnknown = 0, + /*! + 极好 + */ + RCCallIWNetworkQualityExcellent = 1, + /*! + 好 + */ + RCCallIWNetworkQualityGood = 2, + /*! + 一般 + */ + RCCallIWNetworkQualityPoor = 3, + /*! + 差 + */ + RCCallIWNetworkQualityBad = 4, + /*! + 极差 + */ + RCCallIWNetworkQualityTerrible = 5, +}; + +/*! + 视频显示模式 + */ +typedef NS_ENUM(NSInteger, RCCallIWViewFitType) { + /*! + 拉伸全屏 + */ + RCCallIWViewFitTypeFill = 0, + /*! + 满屏显示, 等比例填充, 直到填充满整个试图区域,其中一个维度的部分区域会被裁剪 + */ + RCCallIWViewFitTypeCover = 1, + /*! + 完整显示, 填充黑边, 等比例填充,直达一个维度到达区域边界 + */ + RCCallIWViewFitTypeCenter = 2, +}; + + +/*! + 通话视频参数 + */ +typedef NS_ENUM (NSInteger, RCCallIWVideoProfile) { + /*! + 144x256, 15fps, 120~240kbps + */ + RCCallIW_VIDEO_PROFILE_144_256 = 10, + /*! + 240x240, 15fps, 120~280kbps + */ + RCCallIW_VIDEO_PROFILE_240_240 = 20, + /*! + 240x320, 15fps, 120~400kbps + */ + RCCallIW_VIDEO_PROFILE_240_320 = 30, + /*! + 360x480, 15fps, 150~650kbps + */ + RCCallIW_VIDEO_PROFILE_360_480 = 40, + /*! + 360x640, 15fps, 180~800kbps + */ + RCCallIW_VIDEO_PROFILE_360_640 = 50, + /*! + 480x640, 15fps, 200~900kbps + */ + RCCallIW_VIDEO_PROFILE_480_640 = 60, + /*! + 480x720, 15fps, 200~1000kbps + */ + RCCallIW_VIDEO_PROFILE_480_720 = 70, + /*! + 720x1280, 15fps, 250~2200kbps + */ + RCCallIW_VIDEO_PROFILE_720_1280 = 80, + /*! + 1080x1920, 15fps, 400~4000kbps + */ + RCCallIW_VIDEO_PROFILE_1080_1920 = 90, + /*! + 144x256, 30fps, 240~480kbps + */ + RCCallIW_VIDEO_PROFILE_144_256_HIGH = 11, + /*! + 240x240, 30fps, 240~360kbps + */ + RCCallIW_VIDEO_PROFILE_240_240_HIGH = 21, + /*! + 240x320, 30fps, 240~800kbps + */ + RCCallIW_VIDEO_PROFILE_240_320_HIGH = 31, + /*! + 360x480, 30fps, 300~1300kbps + */ + RCCallIW_VIDEO_PROFILE_360_480_HIGH = 41, + /*! + 360x640, 30fps, 360~1600kbps + */ + RCCallIW_VIDEO_PROFILE_360_640_HIGH = 51, + /*! + 480x640, 30fps, 400~1800kbps + */ + RCCallIW_VIDEO_PROFILE_480_640_HIGH = 61, + /*! + 480x720, 30fps, 400~2000kbps + */ + RCCallIW_VIDEO_PROFILE_480_720_HIGH = 71, + /*! + 720x1080, 30fps, 500~4400kbps + */ + RCCallIW_VIDEO_PROFILE_720_1280_HIGH = 81, + /*! + 1080x1920, 30fps, 800~8000kbps + */ + RCCallIW_VIDEO_PROFILE_1080_1920_HIGH = 91, +}; + + +/*! + 摄像机方向 + 值与 AVCaptureVideoOrientation 一致 + */ +typedef NS_ENUM(NSInteger, RCCallIWCameraOrientation) { + RCCallIWCameraOrientationPortrait = 1, + RCCallIWCameraOrientationPortraitUpsideDown = 2, + RCCallIWCameraOrientationLandscapeRight = 3, + RCCallIWCameraOrientationLandscapeLeft = 4, +}; + +/*! + 通话结束原因 + */ +typedef NS_ENUM (NSInteger, RCCallIWDisconnectReason) { + /*! + 己方取消已发出的通话请求 + */ + RCCallIWDisconnectReasonCancel = 1, + /*! + 己方拒绝收到的通话请求 + */ + RCCallIWDisconnectReasonReject = 2, + /*! + 己方挂断 + */ + RCCallIWDisconnectReasonHangup = 3, + /*! + 己方忙碌 + */ + RCCallIWDisconnectReasonBusyLine = 4, + /*! + 己方未接听 + */ + RCCallIWDisconnectReasonNoResponse = 5, + /*! + 己方不支持当前引擎 + */ + RCCallIWDisconnectReasonEngineUnsupported = 6, + /*! + 己方网络出错 + */ + RCCallIWDisconnectReasonNetworkError = 7, + /*! + 己方获取媒体资源失败 + */ + RCCallIWDisconnectReasonResourceError = 8, + /*! + 己方发布资源失败 + */ + RCCallIWDisconnectReasonPublishError = 9, + /*! + 己方订阅资源失败 + */ + RCCallIWDisconnectReasonSubscribeError = 10, + /*! + 对方取消已发出的通话请求 + */ + RCCallIWDisconnectReasonRemoteCancel = 11, + /*! + 对方拒绝收到的通话请求 + */ + RCCallIWDisconnectReasonRemoteReject = 12, + /*! + 通话过程对方挂断 + */ + RCCallIWDisconnectReasonRemoteHangup = 13, + /*! + 对方忙碌 + */ + RCCallIWDisconnectReasonRemoteBusyLine = 14, + /*! + 对方未接听 + */ + RCCallIWDisconnectReasonRemoteNoResponse = 15, + /*! + 对方不支持当前引擎 + */ + RCCallIWDisconnectReasonRemoteEngineUnsupported = 16, + /*! + 对方网络错误 + */ + RCCallIWDisconnectReasonRemoteNetworkError = 17, + /*! + 对方获取媒体资源失败 + */ + RCCallIWDisconnectReasonRemoteResourceError = 18, + /*! + 对方发布资源失败 + */ + RCCallIWDisconnectReasonRemotePublishError = 19, + /*! + 对方订阅资源失败 + */ + RCCallIWDisconnectReasonRemoteSubscribeError = 20, + /*! + 己方其他端已加入新通话 + */ + RCCallIWDisconnectReasonKickedByOtherCall = 21, + /*! + 己方其他端已在通话中 + */ + RCCallIWDisconnectReasonInOtherCall = 22, + /*! + 己方已被禁止通话 + */ + RCCallIWDisconnectReasonKickedByServer = 23, + /*! + 对方其他端已加入新通话 + */ + RCCallIWDisconnectReasonRemoteKickedByOtherCall = 24, + /*! + 对方其他端已在通话中 + */ + RCCallIWDisconnectReasonRemoteInOtherCall = 25, + /*! + 对方已被禁止通话 + */ + RCCallIWDisconnectReasonRemoteKickedByServer = 26, + /*! + 己方其他端已接听 + */ + RCCallIWDisconnectReasonAcceptByOtherClient = 27, + /*! + 己方其他端已挂断 + */ + RCCallIWDisconnectReasonHangupByOtherClient = 28, + /*! + 己方被对方加入黑名单 + */ + RCCallIWDisconnectReasonAddToBlackList = 29, + /*! + 音视频服务已关闭 + */ + RCCallIWDisconnectReasonMediaServerClosed = 30, + /*! + 己方被降级为观察者 + */ + RCCallIWDisconnectReasonDegrade = 31, + /*! + 己方摄像头初始化错误,可能是没有打开使用摄像头权限 + */ + RCCallIWDisconnectReasonInitVideoError = 32, + /*! + 其他端已经接听 + */ + RCCallIWDisconnectReasonOtherDeviceHadAccepted = 33, + /*! + im ipc服务已断开 + */ + RCCallIWDisconnectReasonServiceDisconnected = 34 +}; + + +/*! + 通话错误类型 + */ +typedef NS_ENUM (NSInteger, RCCallIWErrorCode) { + /*! + 成功 + */ + RCCallIWSuccess = 0, + /*! + 开通的音视频服务没有及时生效或音视频服务已关闭,请等待3-5小时后重新安装应用或开启音视频服务再进行测试 + */ + RCCallIWEngineNotFound = 1, + /*! + 网络不可用 + */ + RCCallIWNetworkUnavailable = 2, + /*! + 已经处于通话中了 + */ + RCCallIWOneCallExisted = 3, + /*! + 无效操作 + */ + RCCallIWOperationUnavailable = 4, + /*! + 参数错误 + */ + RCCallIWInvalidParam = 5, + /*! + 网络不稳定 + */ + RCCallIWNetworkUnstable = 6, + /*! + 媒体服务请求失败 + */ + RCCallIWMediaRequestFailed = 7, + /*! + 媒体服务初始化失败 + */ + RCCallIWMediaServerNotReady = 8, + /*! + 媒体服务未初始化 + */ + RCCallIWMediaServerNotInitialized = 9, + /*! + 媒体服务请求超时 + */ + RCCallIWMediaRequestTimeout = 10, + /*! + 未知的媒体服务错误 + */ + RCCallIWMediaUnkownError = 11, + /*! + 已被禁止通话 + */ + RCCallIWMediaKickedByServerError = 12, + /*! + 音视频服务已关闭 + */ + RCCallIWMediaServerClosedError = 13, + /*! + 音视频发布资源失败 + */ + RCCallIWMediaServerPublishError = 14, + /*! + 音视频订阅资源失败 + */ + RCCallIWMediaServerSubscribeError = 15, + /*! + 其他端已在通话中错误 + */ + RCCallIWMediaJoinRoomRefuseError = 16 +}; + +#endif /* RCCallIWDefine_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWEngine.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWEngine.h new file mode 100644 index 0000000..b1ce892 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWEngine.h @@ -0,0 +1,449 @@ +// +// RCCallIWEngine.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import + +@class RCCallIWEngineConfig; +@class RCCallIWPushConfig; +@class RCCallIWAudioConfig; +@class RCCallIWVideoConfig; +@class RCCallIWCallSession; +@class RCCallIWUserProfile; +@class RCCallIWBeautyOption; + +@protocol RCCallIWEngineDelegate; +@protocol RCCallIWSampleBufferVideoFrameDelegate; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWEngine : NSObject + +/*! + 获取引擎实例 + + @return 引擎实例 + */ ++ (RCCallIWEngine *)sharedInstance; + +/*! + 配置引擎 + + @param config 引擎配置 + */ +- (void)setEngineConfig:(nullable RCCallIWEngineConfig *)config; + +/*! + 配置推送 + + @param callPushConfig 呼叫推送配置 + @param hangupPushConfig 挂断推送配置 + */ +- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig + hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig; + +/*! + 配置推送 + + @param callPushConfig 呼叫推送配置 + @param hangupPushConfig 挂断推送配置 + @param enableApplePushKit 设置是否使用苹果 PushKit 推送, YES 使用, NO 不使用 + @discussion + 是否打开苹果 PushKit 推送, 该推送可以直接激活 App, 注: iOS 13 以后 PushKit 必须结合苹果 CallKit.framework 进行使用, 否则无法正常处理 VoIP 相关推送逻辑, + 如果设置为 NO 则使用普通 APNS 消息推送来处理音视频信令逻辑, 默认关闭. 打开之后 App 默认需要自行处理 VoIP 推送唤起 CallKit.framework 的逻辑. + */ +- (void)setPushConfig:(nullable RCCallIWPushConfig *)callPushConfig + hangupPushConfig:(nullable RCCallIWPushConfig *)hangupPushConfig + enableApplePushKit:(BOOL)enableApplePushKit; + +/*! + 配置音频 + + @param config 音频配置 + */ +- (void)setAudioConfig:(nullable RCCallIWAudioConfig *)config; + +/*! + 配置视频 + + @param config 视频配置 + */ +- (void)setVideoConfig:(nullable RCCallIWVideoConfig *)config; + +/*! + 配置监听 + + @param delegate 监听代理 + */ +- (void)setEngineDelegate:(nullable NSObject *)delegate; + +/*! + 拨打电话-单聊 + + @param userId 被叫端UserId + @param type 发起的通话媒体类型 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前Call Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)userId + type:(RCCallIWMediaType)type; + +/*! + 拨打电话-单聊 + + @param userId 被叫端UserId + @param type 发起的通话媒体类型 + @param extra 附件信息 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ + +- (RCCallIWCallSession *)startCall:(NSString *)userId + type:(RCCallIWMediaType)type + extra:(nullable NSString *)extra; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param type 发起的通话媒体类型 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + type:(RCCallIWMediaType)type; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param type 发起的通话媒体类型 + @param extra 附件信息 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + type:(RCCallIWMediaType)type + extra:(nullable NSString *)extra; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId + @param type 发起的通话媒体类型 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + observerUserIds:(nullable NSArray *)observerUserIds + type:(RCCallIWMediaType)type; + +/*! + 拨打电话-群聊 + + @param groupId 群组Id + @param userIds 被叫端的用户ID列表, 数组中仅填写被叫端UserId, 请不要填写主叫端UserId, 否则无法发起呼叫 + @param observerUserIds 主叫端指定需要以观察者身份加入房间的用户ID列表, 如果主叫端需要以观察者身份加入房间也需要填写主叫端UserId + @param type 发起的通话媒体类型 + @param extra 附件信息 + @discussion + 如果type为音视频,直接打开默认(前置)摄像头。 + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)startCall:(NSString *)groupId + userIds:(NSArray *)userIds + observerUserIds:(nullable NSArray *)observerUserIds + type:(RCCallIWMediaType)type + extra:(nullable NSString *)extra; + +/*! + 获取当前通话 Session + + @return 当前通话 Session + */ +- (RCCallIWCallSession *)getCurrentCallSession; + +/*! + 接电话 + + @discussion + 如果呼入类型为语音通话,即接受语音通话,如果呼入类型为视频通话,即接受视频通话,打开默认(前置)摄像头。 + 观察者不开启摄像头。 + */ +- (void)accept; + +/*! + 挂断电话 + */ +- (void)hangup; + +/*! + 麦克风控制 + + @param enable YES 开启麦克风,NO 关闭麦克风 + */ +- (void)enableMicrophone:(BOOL)enable; + +/*! + 获取当前麦克风状态 + + @return 当前麦克风是否开启 + */ +- (BOOL)isEnableMicrophone; + +/*! + 扬声器控制 + + @param enable YES 开启扬声器,NO 关闭扬声器 + */ +- (void)enableSpeaker:(BOOL)enable; + +/*! + 获取当前扬声器状态 + + @return 当前扬声器是否开启 + */ +- (BOOL)isEnableSpeaker; + +/*! + 摄像头控制 + + @param enable YES 开启摄像头,NO 关闭摄像头 + */ +- (void)enableCamera:(BOOL)enable; + +/*! + 摄像头控制 + + @param enable YES 开启摄像头,NO 关闭摄像头 + @param camera 指定摄像头 + */ +- (void)enableCamera:(BOOL)enable camera:(RCCallIWCamera)camera; + +/*! + 获取当前摄像头状态 + + @return 当前摄像头是否开启 + */ +- (BOOL)isEnableCamera; + +/*! + 获取当前摄像头 + + @return 当前摄像头 + */ +- (RCCallIWCamera)currentCamera; + +/*! + 翻转摄像头 + */ +- (void)switchCamera; + +/*! + 设置预览窗口 + + @param userId 用户id + @param view 视频预览视图 + */ +- (void)setVideoView:(NSString *)userId + view:(UIView *)view; + +/*! + 设置预览窗口 + + @param userId 用户id + @param view 视频预览视图 + @param fit 视频显示模式 + */ +- (void)setVideoView:(NSString *)userId + view:(UIView *)view + fit:(RCCallIWViewFitType)fit; + +/*! + 修改通话媒体类型 + + @param type 通话媒体类型 + */ +- (void)changeMediaType:(RCCallIWMediaType)type; + +/*! + 邀请用户 + + @param userIds 被邀请用户id列表 + */ +- (void)inviteUsers:(NSArray *)userIds; + +/*! + 邀请用户 + + @param userIds 被邀请用户id列表 + @param observerUserIds 被邀请观察者id列表 + */ +- (void)inviteUsers:(NSArray *)userIds + observerUserIds:(NSArray *)observerUserIds; + +- (void)setLocalVideoProcessedDelegate:(id)delegate; + +@end + + +@protocol RCCallIWEngineDelegate + +@required +/*! + 接收到通话呼入的回调 + + @param session 通话Session + */ +- (void)didReceiveCall:(RCCallIWCallSession *)session; + +/*! + 通话已接通 + */ +- (void)callDidConnect; + +/*! + 通话已结束 + + @param reason 结束原因 + */ +- (void)callDidDisconnect:(RCCallIWDisconnectReason)reason; + +/*! + 对端用户加入了通话 + + @param user 对端用户信息 + */ +- (void)remoteUserDidJoin:(RCCallIWUserProfile *)user; + +/*! + 对端用户挂断 + + @param userId 对端用户信息 + @param reason 挂断原因 + */ +- (void)remoteUserDidLeave:(NSString *)userId + reason:(RCCallIWDisconnectReason)reason; + + +@optional +/*! + 接收到通话呼入的远程通知的回调 + */ +- (void)didReceiveCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallIWMediaType)mediaType + userIdList:(NSArray *)userIdList + userDict:(NSDictionary *)userDict + isVoIPPush:(BOOL)isVoIPPush + pushConfig:(RCCallIWPushConfig *)pushConfig; + +/*! + 接收到取消通话的远程通知的回调 + */ +- (void)didCancelCallRemoteNotification:(NSString *)callId + inviterUserId:(NSString *)inviterUserId + mediaType:(RCCallIWMediaType)mediaType + userIdList:(NSArray *)userIdList + pushConfig:(RCCallIWPushConfig *)pushConfig + isRemoteCancel:(BOOL)isRemoteCancel; + +/*! + 开启/关闭摄像头的回调 + */ +- (void)didEnableCamera:(RCCallIWCamera)camera + enable:(BOOL)enable; + +/*! + 切换摄像头的回调 + + @param camera 当前选择的摄像头 + */ +- (void)didSwitchCamera:(RCCallIWCamera)camera; + +/*! + 通话出现错误的回调 + */ +- (void)callDidError:(RCCallIWErrorCode)code; + +/*! + 开始呼叫通话的回调 + */ +- (void)callDidMake; + +/*! + 对端用户正在振铃 + */ +- (void)remoteUserDidRing:(NSString *)userId; + +/*! + 有用户被邀请加入通话 + */ +- (void)remoteUserDidInvite:(NSString *)userId + mediaType:(RCCallIWMediaType)mediaType; + +/*! + 对端用户切换了媒体类型 + */ +- (void)remoteUserDidChangeMediaType:(RCCallIWUserProfile *)user + mediaType:(RCCallIWMediaType)mediaType; + +/*! + 对端用户开启或关闭了麦克风的状态 + */ +- (void)remoteUserDidChangeMicrophoneState:(RCCallIWUserProfile *)user + enable:(BOOL)enable; + +/*! + 对端用户开启或关闭了摄像头的状态 + */ +- (void)remoteUserDidChangeCameraState:(RCCallIWUserProfile *)user + enable:(BOOL)enable; + +/*! + 当前通话网络状态的回调,该回调方法每秒触发一次 + @param user 用户信息 + @param quality 网络质量 + @discussion + 如果user是本端用户, quality代表上行网络质量 + 如果user是远端用户, quality代表下行网络质量 + */ +- (void)user:(RCCallIWUserProfile *)user networkQuality:(RCCallIWNetworkQuality)quality; + +/*! + 当前通话某用户声音音量回调,该回调方法每两秒触发一次 + @param user 用户信息 + @param volume 声音音量 + @discussion + 声音级别: 0~9, 0为无声, 依次变大 + 如果user是本端用户, volume代表发送音量 + 如果user是远端用户, volume代表接收音量 + */ +- (void)user:(RCCallIWUserProfile *)user audioVolume:(int)volume; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWEngineConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWEngineConfig.h new file mode 100644 index 0000000..e086984 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWEngineConfig.h @@ -0,0 +1,23 @@ +// +// RCCallIWEngineConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + + +NS_ASSUME_NONNULL_BEGIN +/*! + 引擎配置 + */ +@interface RCCallIWEngineConfig : NSObject +/*! + 开启通话记录 默认NO + */ +@property (nonatomic, assign) BOOL enableCallSummary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWFlutterView.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWFlutterView.h new file mode 100644 index 0000000..5cc0a45 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWFlutterView.h @@ -0,0 +1,41 @@ +// +// RCCallIWFlutterView.h +// RongCallWrapper +// +// Created by 潘铭达 on 2021/6/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCCallIWFlutterViewDelegate + +- (void)changeSize:(int)width height:(int)height; + +- (void)changeRotation:(int)rotation; + +- (void)firstFrameRendered; + +- (void)frameRendered; + +// 当原生层摄像头进行操作的时候 通知 Flutter 层的 view 进行视图的镜像操作 +- (void)onMirrorChanged:(BOOL)mirror; + +@end + +@interface RCCallIWFlutterView : NSObject + +@property (nonatomic, weak) id textureViewDelegate; + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)new NS_UNAVAILABLE; + +- (instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE; + ++ (RCCallIWFlutterView *)create; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWIOSPushConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWIOSPushConfig.h new file mode 100644 index 0000000..5408aa3 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWIOSPushConfig.h @@ -0,0 +1,41 @@ +// +// RCCallIWIOSPushConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWIOSPushConfig : 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 + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWPushConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWPushConfig.h new file mode 100644 index 0000000..5f84a88 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWPushConfig.h @@ -0,0 +1,74 @@ +// +// RCCallIWPushConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/*! + 推送配置 + */ +@interface RCCallIWPushConfig : NSObject + +/*! + 是否屏蔽通知标题 + YES: 不显示通知标题 + NO: 显示通知标题 + + @discussion 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。 + @discussion 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。 + */ +@property (nonatomic, assign) BOOL disableTitle; + +/*! + 推送标题 + 如果没有设置,会使用下面的默认标题显示规则 + 默认标题显示规则: + 内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。 + 自定义消息:默认不显示标题。 + */ +@property (nonatomic, copy) NSString *title; + +/*! + 推送内容 + 优先使用 MessagePushConfig 的 pushContent,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushContent。 + */ +@property (nonatomic, copy) NSString *content; + +/*! + 远程推送附加信息 + 优先使用 MessagePushConfig 的 pushData,如果没有,则使用 sendMessage 或者 sendMediaMessage 的 pushData。 + */ +@property (nonatomic, copy) NSString *data; + +/*! + 是否强制显示通知详情 + 当目标用户通过 RCPushProfile 中的 updateShowPushContentStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。 + */ +@property (nonatomic, assign) BOOL forceShowDetailContent; + +/*! + 推送模板 ID,设置后根据目标用户通过 SDK RCPushProfile 中的 setPushLauguageCode 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送,模板内容在“开发者后台-自定义推送文案”中进行设置。 + 注:RCMessagePushConfig 中的 Title 和 PushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。 + */ +@property (nonatomic, copy) NSString *templateId; + +/*! + iOS 平台相关配置 + */ +@property (nonatomic, strong) RCCallIWIOSPushConfig *iOSConfig; + +/*! + Android 平台相关配置 + */ +@property (nonatomic, strong) RCCallIWAndroidPushConfig *androidConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWUserProfile.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWUserProfile.h new file mode 100644 index 0000000..75c2d17 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWUserProfile.h @@ -0,0 +1,41 @@ +// +// RCCallIWUserProfile.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWUserProfile : NSObject +/*! + 用户身份类型 + */ +@property (nonatomic, readonly) RCCallIWUserType userType; +/*! + 通话媒体类型 + */ +@property (nonatomic, readonly) RCCallIWMediaType mediaType; +/*! + 用户id + */ +@property (nonatomic, readonly) NSString *userId; +/*! + 用户的通话媒体连接ID + */ +@property (nonatomic, readonly) NSString *mediaId; +/*! + 用户是否开启摄像头 + */ +@property (nonatomic, readonly) BOOL enableCamera; +/*! + 用户是否开启麦克风 + */ +@property (nonatomic, readonly) BOOL enableMicrophone; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoConfig.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoConfig.h new file mode 100644 index 0000000..9478023 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoConfig.h @@ -0,0 +1,40 @@ +// +// RCCallIWVideoConfig.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/14. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWVideoConfig : NSObject + +/*! + 视频配置 + 默认值 RCCallIW_VIDEO_PROFILE_720_1280 + */ +@property (nonatomic, assign) RCCallIWVideoProfile profile; +/*! + 摄像头 + 默认值 RCCallIWCameraFront + */ +@property (nonatomic, assign) RCCallIWCamera defaultCamera; +/*! + 相机方向 + 默认值 RCCallIWCameraOrientationPortrait + */ +@property (nonatomic, assign) RCCallIWCameraOrientation cameraOrientation; + +/*! + 本地预览是否镜像 + + 前置摄像头默认: YES,后置摄像头默认: NO + */ +@property (nonatomic, assign) BOOL isPreviewMirror; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoFrameDelegate.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoFrameDelegate.h new file mode 100644 index 0000000..8da867d --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoFrameDelegate.h @@ -0,0 +1,18 @@ +// +// RCCallIWVideoFrameDelegate.h +// RongCallWrapper +// +// Created by 潘铭达 on 2021/12/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCCallIWSampleBufferVideoFrameDelegate + +- (void)onPixelBuffer:(CVPixelBufferRef)pixelBuffer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoView.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoView.h new file mode 100644 index 0000000..526115a --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RCCallIWVideoView.h @@ -0,0 +1,23 @@ +// +// RCCallIWVideoView.h +// RongCallWrapper +// +// Created by RongCloud on 2023/5/12. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCCallIWVideoView : UIView + +@property (nonatomic, weak, readonly) RCRTCVideoView *videoView; +// 预览是否镜像 (最终设置的是原生 videoView,所以要注意设置的时机) +@property (nonatomic, assign) BOOL isMirror; +// 原生 videoView 添加完成 +@property (nonatomic, copy) void(^nativeVideoViewDidAdd)(RCRTCVideoView *videoView); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RongCallWrapper.h b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RongCallWrapper.h new file mode 100644 index 0000000..447d5f5 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Headers/RongCallWrapper.h @@ -0,0 +1,28 @@ +// +// RongCallWrapper.h +// RongCallWrapper +// +// Created by RongCloud on 2021/7/12. +// + +#import + +//! Project version number for RongCallWrapper. +FOUNDATION_EXPORT double RongCallWrapperVersionNumber; + +//! Project version string for RongCallWrapper. +FOUNDATION_EXPORT const unsigned char RongCallWrapperVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Info.plist new file mode 100644 index 0000000..7dfcf85 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Modules/module.modulemap b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Modules/module.modulemap new file mode 100644 index 0000000..c63c589 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongCallWrapper { + umbrella header "RongCallWrapper.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RCConfig.plist b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongCallWrapper b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongCallWrapper new file mode 100755 index 0000000..a8b28b1 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongCallWrapper differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongRTCLib.bundle/HwAiVadModel.bin b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongRTCLib.bundle/HwAiVadModel.bin new file mode 100755 index 0000000..9d48228 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongRTCLib.bundle/HwAiVadModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongRTCLib.bundle/HwAinrModel.bin b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongRTCLib.bundle/HwAinrModel.bin new file mode 100755 index 0000000..5b529e6 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/RongRTCLib.bundle/HwAinrModel.bin differ diff --git a/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..e5bc825 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongCallWrapper.xcframework/ios-x86_64-simulator/RongCallWrapper.framework/_CodeSignature/CodeResources @@ -0,0 +1,372 @@ + + + + + files + + Headers/RCCallIWAndroidPushConfig.h + + c8Nr+zXJBvG4EEuUrT1QFmj5fnQ= + + Headers/RCCallIWAudioConfig.h + + kGPMWb7BecYVlHQ9V+f794nOR4w= + + Headers/RCCallIWCallSession.h + + AnhTDcH3VjceT8E5vwfn4M1KRkE= + + Headers/RCCallIWDefine.h + + DAGsL8w84kqw8ZXp2cNbh7QSWLI= + + Headers/RCCallIWEngine.h + + Z4zTFQqdlABKiqe5+snC7d6/BpA= + + Headers/RCCallIWEngineConfig.h + + yQGCGoe19+myITZLqeO0VadV7Js= + + Headers/RCCallIWFlutterView.h + + y2cqUnU8QMNZ3CG0+C2mMNsxzic= + + Headers/RCCallIWIOSPushConfig.h + + 8qkNfl6i7/7v8+Ff+yCXkSZcbKA= + + Headers/RCCallIWPushConfig.h + + Dl/lC2HDVoElj5rdcPDirtFy00I= + + Headers/RCCallIWUserProfile.h + + OirfPQvRXiMSA7f7QCyBpmskr8E= + + Headers/RCCallIWVideoConfig.h + + kOdMpo6eHS1xv3wjNG6+ZiTkjLo= + + Headers/RCCallIWVideoFrameDelegate.h + + 4E8xM7l79Q0pj+PqnOIaLalKHZ0= + + Headers/RCCallIWVideoView.h + + ibFWGpV35ABCTAhuEtUsgKHQVnw= + + Headers/RongCallWrapper.h + + vXZ3cAYx+Hn3GKcucUwV0K4j8DQ= + + Info.plist + + eSwRbQaZaWWJvuK9mFRGBJ74yy0= + + Modules/module.modulemap + + mB2JsmGuPd2g/QyaXMtdCzdDuzw= + + RCConfig.plist + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + RongRTCLib.bundle/HwAiVadModel.bin + + ATcRMel9IwX111oJWJbEEm8fxLw= + + RongRTCLib.bundle/HwAinrModel.bin + + B8kB+UwS+Djpk42nGs6PsuZb4i4= + + + files2 + + Headers/RCCallIWAndroidPushConfig.h + + hash + + c8Nr+zXJBvG4EEuUrT1QFmj5fnQ= + + hash2 + + tUBraHIlNP/nvghXtWtweS8roeTuGXH5le7Gtoqg2lI= + + + Headers/RCCallIWAudioConfig.h + + hash + + kGPMWb7BecYVlHQ9V+f794nOR4w= + + hash2 + + h7YMB2G9xbeDIdlGpjDdy7VeEd1V1lY0bhUhPnmj7do= + + + Headers/RCCallIWCallSession.h + + hash + + AnhTDcH3VjceT8E5vwfn4M1KRkE= + + hash2 + + 47JdoajKNgc8PvI2M1lo7XgKFDap/8zNE5aubhiMO9g= + + + Headers/RCCallIWDefine.h + + hash + + DAGsL8w84kqw8ZXp2cNbh7QSWLI= + + hash2 + + Txy4g9BC23EsyFZkra0VUfIXAZ+pOnmxcrIhTeyNNSw= + + + Headers/RCCallIWEngine.h + + hash + + Z4zTFQqdlABKiqe5+snC7d6/BpA= + + hash2 + + N8ZP4WzDTeXJ9tD15nIZiMEXBKA1ndfNuInF3WNd1pE= + + + Headers/RCCallIWEngineConfig.h + + hash + + yQGCGoe19+myITZLqeO0VadV7Js= + + hash2 + + +LkKAOHRYcPLjKrmOMYPRIr8DULzitIdlJyGE/v7hIo= + + + Headers/RCCallIWFlutterView.h + + hash + + y2cqUnU8QMNZ3CG0+C2mMNsxzic= + + hash2 + + IgRu9C00s2UBfZL10F56c7rG2Xu3yS1AM1ET+CChUlQ= + + + Headers/RCCallIWIOSPushConfig.h + + hash + + 8qkNfl6i7/7v8+Ff+yCXkSZcbKA= + + hash2 + + 4IZfnNPqAtJn0v1WGY1M4TmPWPwWbaeNWxUf2qNdFKw= + + + Headers/RCCallIWPushConfig.h + + hash + + Dl/lC2HDVoElj5rdcPDirtFy00I= + + hash2 + + h+XlKn0zxZLWTqirksIReWFIy98pxSzpVOxUcCzgudo= + + + Headers/RCCallIWUserProfile.h + + hash + + OirfPQvRXiMSA7f7QCyBpmskr8E= + + hash2 + + QmOPdaT/+idE+GEzrr3QR9BAsf0n10xelqc6s0vnOfw= + + + Headers/RCCallIWVideoConfig.h + + hash + + kOdMpo6eHS1xv3wjNG6+ZiTkjLo= + + hash2 + + UOkF0SEprFatUeYdw91eH8BhSBNcYalRGdJV7OeZszw= + + + Headers/RCCallIWVideoFrameDelegate.h + + hash + + 4E8xM7l79Q0pj+PqnOIaLalKHZ0= + + hash2 + + eVaF/p0qpzOF6/ryCEJ7Q2gdkyovIwmHM2QRFaFLjrU= + + + Headers/RCCallIWVideoView.h + + hash + + ibFWGpV35ABCTAhuEtUsgKHQVnw= + + hash2 + + jiI7NxMC7CAXlY9mE0LW6YkSMEXIfnjoVS7yDUorUBg= + + + Headers/RongCallWrapper.h + + hash + + vXZ3cAYx+Hn3GKcucUwV0K4j8DQ= + + hash2 + + TjeCqYh2mGPCDpHUTUAWlH8YPUvjci/ocEqzb+pJWoM= + + + Modules/module.modulemap + + hash + + mB2JsmGuPd2g/QyaXMtdCzdDuzw= + + hash2 + + HjxU8CFo4bZWSBFLKJxPfiAlkZdKpuae+1t2Iqu0d+s= + + + RCConfig.plist + + hash + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + hash2 + + q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI= + + + RongRTCLib.bundle/HwAiVadModel.bin + + hash + + ATcRMel9IwX111oJWJbEEm8fxLw= + + hash2 + + rI/0N8nw9Ktvh3flHD50aM1unvKAoT4PXCZogPS4lzo= + + + RongRTCLib.bundle/HwAinrModel.bin + + hash + + B8kB+UwS+Djpk42nGs6PsuZb4i4= + + hash2 + + wWEpSmpBqk1A1pnvwExjRDLmRm4kLI6s07dug5+9ftg= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/Info.plist new file mode 100644 index 0000000..e7acb15 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/Info.plist @@ -0,0 +1,43 @@ + + + + + AvailableLibraries + + + BinaryPath + RongRTCLib.framework/RongRTCLib + LibraryIdentifier + ios-arm64 + LibraryPath + RongRTCLib.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + RongRTCLib.framework/RongRTCLib + LibraryIdentifier + ios-x86_64-simulator + LibraryPath + RongRTCLib.framework + SupportedArchitectures + + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioConfig.h new file mode 100644 index 0000000..89c3096 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioConfig.h @@ -0,0 +1,22 @@ +// +// RCRTCAudioConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCAudioConfig : NSObject + +/*! + 本地音频码率 + */ +@property (nonatomic, assign) NSUInteger bitrate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioEffectManager.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioEffectManager.h new file mode 100644 index 0000000..1900c84 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioEffectManager.h @@ -0,0 +1,160 @@ +// +// RCRTCEffectManager.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/18. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCCodeDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音效代理方法 + */ +@protocol RCRTCSoundEffectProtocol + +/*! + 当前音效播放进度 + + @param progress 播放进度 range [0,1] + @discussion + 当前播放进度 + + @remarks 代理 + */ +- (void)didReportEffectPlayingProgress:(float)progress effectId:(NSUInteger)effectId; + +/*! + 音效播放结束,如果循环播放多次,多次循环后调用 + + @discussion + 播放结束,如果循环播放多次,多次循环后调用 + + @remarks 代理 + */ +- (void)didEffectFinished:(NSUInteger)effectId; + +@end + +@interface RCRTCAudioEffectManager : NSObject + +/*! + delegate + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 开启或关闭耳返 + @param enabled YES 开启,NO 关闭,默认为 NO + */ +- (void)enableInEarMonitoring:(BOOL)enabled; + +/*! + 设置耳返音量 + @param volume [0,100] + */ +- (void)setInEarMonitoringVolume:(NSUInteger)volume; + +/*! + 播放指定音效文件,filePath 必须可用,需要指定唯一的 ID,如果调用`preloadEffect`接口设置过 ID,此 ID 要与其相同 + 如果前后传入相同的 ID,但是 filePath 不同,会覆盖,播放最新的 filePath 音效 + @param soundId 音效的唯一 ID + @param filePath 音效的路径 + @param loopCount 音效的循环次数 + @param publish 是否将音效推送到远端,设置为 YES,其他端可听到此音效声音,如果设置为 NO,只有本端可以听到 + */ +- (RCRTCCode)playEffect:(NSInteger)soundId + filePath:(NSString *)filePath + loopCount:(int)loopCount + publish:(BOOL)publish; + +/*! + 播放指定音效文件,filePath 必须可用,需要指定唯一的 ID,如果调用`preloadEffect`接口设置过 ID,此 ID 要与其相同 + 如果前后传入相同的 ID,但是 filePath 不同,会覆盖,播放最新的 filePath 音效 + @param soundId 音效的唯一 ID + @param filePath 音效的路径 + @param loopCount 音效的循环次数 + @param volume 音效音量 [0,100] + @param publish 是否将音效推送到远端,设置为 YES,其他端可听到此音效声音,如果设置为 NO,只有本端可以听到 + */ +- (RCRTCCode)playEffect:(NSInteger)soundId + filePath:(NSString *_Nullable)filePath + loopCount:(NSUInteger)loopCount + volume:(NSUInteger)volume + publish:(BOOL)publish; + +/*! + 停止指定的音效 + @param soundId 音效唯一 ID + */ +- (RCRTCCode)stopEffect:(NSInteger)soundId; + +/*! + 停止所有的音效 + */ +- (RCRTCCode)stopAllEffects; + +/*! + 暂停指定的音效文件 + @param soundId 指定的音效 ID + */ +- (RCRTCCode)pauseEffect:(NSInteger)soundId; + +/*! + 暂停所有的音效 + */ +- (RCRTCCode)pauseAllEffects; + +/*! + 恢复播放指定的音效 + @param soundId 指定的音效 ID + */ +- (RCRTCCode)resumeEffect:(NSInteger)soundId; + +/*! + 恢复播放所有的音效 + */ +- (RCRTCCode)resumeAllEffects; + +/*! + 预加载指定的音效文件,filePath 必须可用 + @param soundId 指定的音效 ID + @param filePath 音效路径 + */ +- (RCRTCCode)preloadEffect:(NSInteger)soundId filePath:(NSString *)filePath; + +/*! + 取消加载的音效文件 + @param soundId 指定的音效 ID + */ +- (RCRTCCode)unloadEffect:(NSInteger)soundId; + +/*! + 设置全局的音效的音量 + @param volume 音量 [0,100],默认为 100. + */ +- (RCRTCCode)setEffectsVolume:(NSUInteger)volume; + +/*! + 设置指定音效的音效音量 + @param soundId 指定的音效 ID + @param volume 音量 [0,100],默认为 100 + */ +- (RCRTCCode)setVolumeOfEffect:(NSInteger)soundId withVolume:(NSUInteger)volume; + +/*! + 获取指定音效的音量 + */ +- (NSUInteger)getVolumeOfEffectId:(NSInteger)soundId; + +/*! + 获取全局音效的音量 + */ +- (NSUInteger)getEffectsVolume; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioInputStream.h new file mode 100644 index 0000000..31e6f10 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioInputStream.h @@ -0,0 +1,55 @@ +// +// RCRTCAudioInputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/1. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCInputStream.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 接收到的的音频流 + */ +@interface RCRTCAudioInputStream : RCRTCInputStream + +/*! + 远端音频数据回调 + added from 5.1.6 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback audioDataCallback; + + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioInputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioInputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioMixer.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioMixer.h new file mode 100644 index 0000000..cb875db --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioMixer.h @@ -0,0 +1,382 @@ +// +// RCRTCAudioMixer.h +// RTCLib +// +// Created by RongCloud on 2019/5/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import +#import "RCRTCGlobals.h" + +/*! + 无限期循环 + */ +RONGRTCLIB_EXTERN const UInt32 RCRTCLoopsIndefinitely; + +/*! + 混音引擎状态 + deprecated from 5.1.3 + */ +typedef NS_ENUM(NSUInteger, RTCMixEngineStatus) { + /*! + 正常 + */ + RTCMixEngineStatusNormal, + /*! + 准备中 + */ + RTCMixEngineStatusPrepare, + /*! + 播放中(或混音中) + */ + RTCMixEngineStatusPlaying, + /*! + 暂停中 + */ + RTCMixEngineStatusPause, + /*! + 停止 + */ + RTCMixEngineStatusStop +}; + +/*! + 播放(或混音)状态 + added from 5.1.3 + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioMixingState) { + /*! + 播放中(或混音中) + */ + RCRTCMixingStatePlaying, + /*! + 暂停中 + */ + RCRTCMixingStatePause, + /*! + 停止 + */ + RCRTCMixingStateStop, + /*! + 播放失败 + */ + RCRTCMixingStateFailed +}; + +/*! + 播放(或混音)状态改变的原因 + added from 5.1.3 + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioMixingReason) { + /*! + 成功调用 startMixingWithURL:playback:mixerMode:loopCount:; + */ + RCRTCMixingReasonStartedByUser, + /*! + 混音文件加载完成 + */ + RCRTCMixingReasonFileLoaded, + /*! + 混音文件完成一次循环播放(或混音) + */ + RCRTCMixingReasonOneLoopCompleted, + /*! + 混音文件开始新的一次循环播放(或混音) + */ + RCRTCMixingReasonStartNewLoop, + /*! + 混音文件完成所有循环播放(或混音) + */ + RCRTCMixingReasonAllLoopsCompleted, + /*! + 成功调用 stop 停止播放(或混音) + */ + RCRTCMixingReasonStoppedByUser, + /*! + 成功调用 pause 停止播放(或混音) + */ + RCRTCMixingReasonPausedByUser, + /*! + 成功调用 resume 停止播放(或混音) + */ + RCRTCMixingReasonResumedByUser, + /*! + 混音文件加载失败(文件不存在或者文件格式不支持等原因导致加载失败) + */ + RCRTCMixingReasonCanNotOpen, +}; + +/*! + 混音模式 + */ +typedef NS_ENUM(NSInteger, RCRTCMixerMode) { + /*! + 对端只能听见麦克风采集的声音 + */ + RCRTCMixerModeNone, + /*! + 对端能够听到麦克风采集的声音和音频文件的声音 + */ + RCRTCMixerModeMixing, + /*! + 对端只能听到音频文件的声音 + */ + RCRTCMixerModeReplace +}; + +/** + 本地音频左右声道混音 + @discussion Add from 5.1.13 + */ +typedef NS_ENUM(NSInteger, RCRTCAudioDualMonoMode) { + /*! + 当前音频立体声混音 + */ + RCRTCAudioDualMonoStereo = 0, + /*! + 当前音频左声道混音 + */ + RCRTCAudioDualMonoLeft = 1, + /*! + 当前音频右声道混音 + */ + RCRTCAudioDualMonoRight = 2 +}; + +NS_ASSUME_NONNULL_BEGIN + +/*! + AudioMixer 的播放代理 + */ +@protocol RCRTCAudioMixerAudioPlayDelegate + +/*! + 当前播放进度 + + @param progress 播放进度 range [0,1] + @discussion + 当前播放进度 + + @remarks 代理 + */ +- (void)didReportPlayingProgress:(float)progress; + +/*! + 混音状态 + + @param mixingState 混音状态 + @param mixingReason 混音状态改变的原因 + @discussion + 当前混音状态 + Add from 5.1.3 + + @remarks 代理 + */ +- (void)didAudioMixingStateChanged:(RCRTCAudioMixingState)mixingState reason:(RCRTCAudioMixingReason)mixingReason; + +@optional +/*! + 播放结束,如果循环播放多次,多次循环后调用 + + @discussion + 播放结束,如果循环播放多次,多次循环后调用 + @deprecated from 5.1.3 + + @remarks 代理 + */ +- (void)didPlayToEnd DEPRECATED_MSG_ATTRIBUTE("use didAudioMixingStateChanged:reason: instead"); + +@end + +/*! + 混音引擎 + */ +@interface RCRTCAudioMixer : NSObject + +/*! + 获取混音引擎单例 + */ ++ (RCRTCAudioMixer *)sharedInstance; + +/*! + AudioMixer 的代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 音频文件混音时的输入音量, 取值范围 [0,100], 默认值 100 + */ +@property (nonatomic, assign) NSUInteger mixingVolume; + +/*! + 音频文件本地播放音量, 取值范围 [0,100], 默认值 100 + */ +@property (nonatomic, assign) NSUInteger playingVolume; + +/*! + 混音文件的播放音调相对原始音调的偏移值,取值范围 [-12,12],默认值 0,其中 0 表示原始音调,1 表示升高一个半音,-1 降低一个半音,以此类推。 + 暂不支持处理在线音频 + */ +@property (nonatomic, assign) double pitch; + +/*! + 混音文件的播放速度,取值范围 [50,400],默认值 100,其中 100 表示原始速度,50 表示 0.5 倍速,400 表示 4 倍速,以此类推。 + 暂不支持处理在线音频 + */ +@property (nonatomic, assign) double playbackSpeed; + +/*! + 当前混音状态 + */ +@property (nonatomic, assign, readonly) + RTCMixEngineStatus status DEPRECATED_MSG_ATTRIBUTE("use didAudioMixingStateChanged:reason: instead"); + +/*! + 方法 writeAudioBufferList:frames:sampleTime:playback: 写入 AudioBufferList 的格式 + */ +@property (nonatomic, readonly, class) AudioStreamBasicDescription writeAsbd; + +/*! + 当前混音文件时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval duration; + +/*! + 获取指定音频文件的时长 + + @param url 音频文件的 File URL + @discussion + 获取指定音频文件的时长,只支持本地音频文件 + + @remarks 音频配置 + @return 音频文件的时长 + */ ++ (Float64)durationOfAudioFile:(NSURL *)url; + +/*! + 设置播放进度 + @param progress 设置播放进度 取值范围 [0,1] + @discussion + 设置播放进度 + + @remarks 音频配置 + */ +- (void)setPlayProgress:(float)progress; + +/*! + 设置混音文件的播放音调 + @param pitch 相对原始音调的偏移值,默认值为 0,取值范围 [-12,12],其中 0 表示原始音调,1 表示升高一个半音,-1 降低一个半音,以此类推。 + @discussion + 设置混音文件的播放音调,暂不支持处理在线音频 + Added from 5.2.0 + + @remarks 音频配置 + */ +- (void)setPitch:(double)pitch; + +/*! + 设置混音文件的播放速度 + @param playbackSpeed 播放速度,默认值为 100,取值范围 [50,400],其中 100 表示原始速度,50 表示 0.5 倍速,400 表示 4 倍速,以此类推。 + @discussion + 设置混音文件的播放速度,暂不支持处理在线音频 + Added from 5.2.0 + + @remarks 音频配置 + */ +- (void)setPlaybackSpeed:(double)playbackSpeed; + +/*! + 开始混音, 开始新混音之前需要先调用 stop 结束混音, 重复调用会忽略操作 + @param fileURL 资源 URL + @param isPlay 是否播放 + @param mode 混音行为模式 + @param count 循环混音或者播放次数 + + @discussion + 混音功能 + + @remarks 音频配置 + @return 开始是否成功 + */ +- (BOOL)startMixingWithURL:(NSURL *)fileURL + playback:(BOOL)isPlay + mixerMode:(RCRTCMixerMode)mode + loopCount:(NSUInteger)count; + +/*! + 设置混音声道模式 + @param mode 声道模式 0 立体声混音, 1 左声道混音, 2 右声道混音 + @discussion + 只针对本地文件资源产生效果, 不支持网络资源的 url + Add from 5.1.13 + + @remarks 音频配置 + @return 设置是否成功 + */ +- (BOOL)setAudioDualMonoMode:(RCRTCAudioDualMonoMode)mode; + +/*! + 写入自定义音频数据 + @param abl 音频数据,格式为 PCM + @param frames 音频帧个数 + @param sampleTime 音频帧时间戳 + @param isPlay 是否在本地播放 + + @discussion + 写入自定义音频数据 + + @remarks 音频流处理 + */ +- (void)writeAudioBufferList:(const AudioBufferList *)abl + frames:(UInt32)frames + sampleTime:(SInt64)sampleTime + playback:(BOOL)isPlay; + +/*! + 写入自定义音频数据 + @param abl 音频数据,格式为 PCM + @param frames 音频帧个数 + @param sampleTime 音频帧时间戳 + @param asbd 音频格式描述 + @param isPlay 是否在本地播放 + + @discussion + 写入自定义音频数据 + + @remarks 音频流处理 + */ +- (void)writeAudioBufferList:(const AudioBufferList *)abl + frames:(UInt32)frames + sampleTime:(SInt64)sampleTime + asbd:(AudioStreamBasicDescription)asbd + playback:(BOOL)isPlay; + +/*! + 暂停 + + @remarks 音频配置 + @return 暂停是否成功 + */ +- (BOOL)pause; + +/*! + 恢复 + + @remarks 音频配置 + @return 恢复是否成功 + */ +- (BOOL)resume; + +/*! + 结束 + + @remarks 音频配置 + @return 结束是否成功 + */ +- (BOOL)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioOutputStream.h new file mode 100644 index 0000000..6e20204 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCAudioOutputStream.h @@ -0,0 +1,45 @@ +// +// RCRTCAudioOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/2. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCOutputStream.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCAudioOutputStream : RCRTCOutputStream + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioOutputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioOutputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCBaseRoom.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCBaseRoom.h new file mode 100644 index 0000000..26d2d0e --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCBaseRoom.h @@ -0,0 +1,163 @@ +// +// RCBaseRoom.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/3. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCRoomConfig; +@class RCRTCRemoteUser; + +@interface RCRTCBaseRoom : NSObject + +/*! + 房间ID + */ +@property (nonatomic, copy, readonly) NSString *roomId; + +/*! + 加入房间时设置的房间配置 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCRoomConfig *roomConfig; + +/*! + 会话 id, 用于 server API,会话唯一标识 + */ +@property (nonatomic, copy, readonly, nullable) NSString *sessionId; + +/*! + 参与用户 + */ +@property (nonatomic, strong, readonly) NSArray *remoteUsers; + +/*! + 获取指定远端用户 + + @param userId 用户 ID + @discussion + 根据用户 ID 获取房间内远端用户,不存在则返回 nil + */ +- (nullable RCRTCRemoteUser *)getRemoteUser:(NSString *)userId; + +/*! + 发送消息 + + @param content 消息的内容 + @param successBlock 消息发送成功的回调 [messageId:消息的ID] + @param errorBlock 消息发送失败的回调 [nErrorCode:发送失败的错误码,messageId:消息的ID] + @discussion + 该接口只能发送 persistentFlag 为 MessagePersistent_STATUS 的状态消息, 远端用户如果不在线则消息丢失, 自定义消息时下面标识一定要给出, 否则会导致消息发送失败 + + (RCMessagePersistent)persistentFlag { + return MessagePersistent_STATUS; + } + + @remarks 房间管理 + @return 发送的消息实体 + */ +- (nullable RCMessage *)sendMessage:(RCMessageContent *)content + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(NSInteger nErrorCode, long messageId))errorBlock; + +/*! + 设置房间属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 设置完成回调 + @discussion + 设置房间属性 + + @remarks 房间管理 + */ +- (void)setRoomAttributeValue:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use setAttribute:forKey:message:completion: API instead"); + +/*! + 设置房间属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 设置完成回调 + @discussion + 设置房间属性 + + @remarks 房间管理 + */ +- (void)setAttribute:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 删除房间属性 + + @param attributeKeys 属性名称数组 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 删除完成回调 + @discussion + 删除房间属性 + + @remarks 房间管理 + */ +- (void)deleteRoomAttributes:(NSArray *)attributeKeys + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use deleteAttributes:message:completion: API instead"); + +/*! + 删除房间属性 + + @param attributeKeys 属性名称数组 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 删除完成回调 + @discussion + 删除房间属性 + + @remarks 房间管理 + */ +- (void)deleteAttributes:(NSArray *)attributeKeys + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 获取房间属性 + + @param attributeKeys 属性名称 + @param completion 获取结果回调 + @discussion + 获取房间属性 + + @remarks 房间管理 + */ +- (void)getRoomAttributes:(NSArray *)attributeKeys + completion:(nullable RCRTCAttributeOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use getAttributes:completion: API instead"); + +/*! + 获取房间属性 + + @param attributeKeys 属性名称 + @param completion 获取结果回调 + @discussion + 获取房间属性 + + @remarks 房间管理 + */ +- (void)getAttributes:(NSArray *)attributeKeys + completion:(nullable RCRTCAttributeOperationCallback)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCBaseStat.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCBaseStat.h new file mode 100644 index 0000000..2a96aca --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCBaseStat.h @@ -0,0 +1,93 @@ +// +// RCRTCBaseStat.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCBaseStat : NSObject + +/*! + 媒体类型 + */ +@property (nonatomic, readonly) NSString *mediaType; + +/*! + 媒体流类型 + */ +@property (nonatomic, readonly) RCRTCMediaStreamType mediaStreamType; + +/*! + 音量大小, 0 - 9表示音量高低 + */ +@property (nonatomic, readonly) NSInteger audioLevel; + +/*! + 码率 + */ +@property (nonatomic, readonly) float bitRate; + +/*! + 丢包率 + */ +@property (nonatomic, readonly) float packetLoss; + +/*! + 视频帧宽度 + */ +@property (nonatomic, readonly) NSInteger frameWidth; + +/*! + 视频帧高度 + */ +@property (nonatomic, readonly) NSInteger frameHeight; + +/*! + 往返时间 + */ +@property (nonatomic, readonly) NSInteger rtt; + +/*! + 帧率 + */ +@property (nonatomic, readonly) NSInteger frameRate; + +/*! + 抖动 + */ +@property (nonatomic, readonly) NSInteger jitterReceived; + +/*! + 编码名称 + */ +@property (nonatomic, readonly, nullable) NSString *codecName; + +/*! + 渲染延时 + */ +@property (nonatomic, readonly) NSInteger renderDelayMs; + +/*! + 编解码器名称 + */ +@property (nonatomic, readonly, nullable) NSString *codecImplementationName; + +/*! + nacks 数量 + */ +@property (nonatomic, readonly) NSInteger googNacksReceived; + +/*! + 统计格式化字符串 + */ +@property (nonatomic, readonly) NSString *formString; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCDNInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCDNInputStream.h new file mode 100644 index 0000000..c51ee68 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCDNInputStream.h @@ -0,0 +1,82 @@ +// +// RCRTCCDNStream.h +// RongRTCLib +// +// Created by RongCloud on 2021/5/18. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCInputStream.h" +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" +NS_ASSUME_NONNULL_BEGIN + +typedef void (^RCRTCConfigCallback)(BOOL isSuccess, RCRTCCode code); + +@class RCRTCCDNInputStream; + +@protocol RCRTCCDNInputStreamDelegate +/*! + SEI 数据监听回调 + + @param cdnStream 当前 cdn 流对象 + @param data SEI 数据 + @discussion + 订阅 cdn 流成功后,通过 receiver 回调 cdn 流中包含 SEI 信息 + 回调的频次取决于 cdn 流的 SEI 帧数据间隔 + */ +- (void)cdnStream:(RCRTCCDNInputStream *)cdnStream handleSEIData:(NSString *)data; + +@end + +@interface RCRTCCDNInputStream : RCRTCInputStream + +/*! + 设置 cdn 流监听代理 + */ +@property (nonatomic, weak) id delegate; + +/*! + 获取订阅 CDN 流前设置的分辨率 + */ +- (RCRTCVideoSizePreset)getVideoResolution; + +/*! + 获取订阅 CDN 流前设置的帧率 + */ +- (RCRTCVideoFPS)getVideoFps; + +/*! + 当前订阅成功的 CDN 流最高支持的分辨率 + */ +- (RCRTCVideoSizePreset)getHighestResolution; + +/*! + 当前订阅成功的 CDN 流最高支持的帧率 + */ +- (RCRTCVideoFPS)getHighestFPS; + +/*! + 设置分辨率和帧率 + @param videoSizePreset 分辨率 + @param fps 帧率 + */ +- (void)setVideoConfig:(RCRTCVideoSizePreset)videoSizePreset + fpsValue:(RCRTCVideoFPS)fps + completion:(nullable RCRTCConfigCallback)completion; + +/*! + 设置视频流的渲染视图 + + @param render 渲染视图 + @discussion + 接受到远端用户的视频流,然后设置视频流的渲染视图,就可以渲染出远端视频 + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable id)render; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCameraOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCameraOutputStream.h new file mode 100644 index 0000000..31a3e57 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCameraOutputStream.h @@ -0,0 +1,290 @@ +// +// RCRTCCameraOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/8. +// Copyright © 2019年 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCLibDefine.h" +#import "RCRTCVideoView.h" +#import "RCRTCVideoOutputStream.h" +#import "RCRTCVideoStreamConfig.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 摄像头输出流,以摄像头为视频源的视频输出流 + */ +@interface RCRTCCameraOutputStream : RCRTCVideoOutputStream + +/*! + 当前开启摄像头位置 + */ +@property (nonatomic, assign) RCRTCDeviceCamera cameraPosition; + +/*! + 摄像头采集角度 + 默认以 AVCaptureVideoOrientationPortrait 角度进行采集 + */ +@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation; + +/*! + 本地摄像头采集是否镜像 + + 前置摄像头默认: YES,后置摄像头默认: NO + */ +@property (nonatomic, assign) BOOL isCaptureMirror; + +/*! + 本地摄像头采集是否镜像 + + 前置摄像头默认: YES,后置摄像头默认: NO + */ +@property (nonatomic, assign) BOOL isPreviewMirror DEPRECATED_MSG_ATTRIBUTE("use RCRTCCameraOutputStream.h isCaptureMirror instead");; + +/*! + 本地摄像头发送数据是否镜像 + + 默认: NO, 不镜像 + */ +@property (nonatomic, assign) BOOL isEncoderMirror; + +/*! + 是否启用视频小流 + + 摄像头视频流,默认开启。自定义视频流,默认关闭 + */ +@property (nonatomic, assign) BOOL enableTinyStream; + +@property (atomic, copy, nullable) RCRTCVideoCMSampleBufferCallback videoDisplayBufferCallback DEPRECATED_MSG_ATTRIBUTE("please use RCRTCVideoOutputStream.h outputVideoStream:willRenderVideoFrame: instead"); + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultVideoStream 获取实例。 + + @remarks 资源管理 + @return RCRTCCameraOutputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultVideoStream 获取实例。 + + @remarks 资源管理 + @return RCRTCCameraOutputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 写入视频流数据 + + @param sample 媒体数据 + @param error 失败时返回的相关描述 + @discussion + 写入视频流数据 + + @warning + 请勿调用,摄像头输出流内部已经实现摄像头数据采集,调用者无需自己写入视频流数据 + + @remarks 资源管理 + */ +- (void)write:(CMSampleBufferRef)sample error:(NSError **)error NS_UNAVAILABLE; + +/*! + 设置视频源 + + @param videoSource 视频源 + @discussion + 请勿调用,摄像头输出流的视频源已经封装在 SDK 内,调用者无需设置视频源,如果要自定义视频流,请使用 RCRTCVideoOutputStream + + @remarks 资源管理 + */ +- (void)setVideoSource:(id)videoSource NS_UNAVAILABLE; + +/*! + 设置视频流的渲染视图 + + @param view 渲染视图 + @discussion + 设置本地摄像头采集的视频流渲染视图 + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable id)view; + +/*! + 设置视频数的渲染纹理视图 + + @param view 渲染纹理视图 + @discussion + 设置本地摄像头采集的视频流渲染纹理视图 + + @remarks 视频配置 + */ +- (void)setVideoTextureView:(nullable RCRTCVideoTextureView *)view; + +/*! + 开启摄像头数据采集 + + @discussion + 开启摄像头采集数据 + + @remarks 资源管理 + */ +- (void)startCapture; + +/*! + 停止摄像头数据采集 + + @discussion + 关闭摄像头采集数据 + + @remarks 资源管理 + */ +- (void)stopCapture; + +/*! + 切换前后摄像头 + + @discussion + 切换前后摄像头 + + @remarks 视频配置 + */ +- (void)switchCamera; + +/*! + 摄像头是否支持区域对焦 + + @discussion + 摄像头是否支持手动对焦功能 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraFocusSupported; + +/*! + 设置预览视图中的对焦点 + + @param point 对焦点,(x,y)是在预览视图中归一化的坐标,即对焦点相对预览视图的位置与预览视图宽高的比值,取值范围为[0, 1],左上角是(0, 0) + + @discussion + 改变对焦位置 + + @remarks 摄像头配置 + */ +- (BOOL)setCameraFocusPositionInPreview:(CGPoint)point; + +/*! + 摄像头是否支持区域测光 + + @discussion + 摄像头是否支持手动曝光功能 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraExposurePositionSupported; + +/*! + 设置预览视图中的曝光点 + + @param point 曝光点,(x,y)是在预览视图中归一化的坐标,即曝光点相对预览视图的位置与预览视图宽高的比值,取值范围为[0, 1],左上角是(0, 0) + + @discussion + 改变对焦位置 + + @remarks 摄像头配置 + */ +- (BOOL)setCameraExposurePositionInPreview:(CGPoint)point; + +/*! + 摄像头是否支持闪光灯 + + @discussion + 摄像头是否支持闪光灯 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraTorchSupported; + +/*! + 设置是否打开摄像头闪光灯 + + @param enable YES 为打开,NO 为关闭摄像头闪光灯 + @discussion + 设置是否打开摄像头闪光灯 + + @remarks 摄像头配置 + */ +- (BOOL)enableCameraTorch:(BOOL)enable; + +/*! + 摄像头是否支持缩放 + + @discussion + 摄像头是否支持缩放 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraZoomSupported; + +/*! + 设置摄像头缩放比例 + + @param zoomFactor 摄像头缩放比例,有效范围从 1.0 到最大缩放 + @discussion + 设置摄像头缩放比例 + + @remarks 摄像头配置 + */ +- (BOOL)setCameraZoomFactor:(float)zoomFactor; + +/*! + 获取摄像头最大缩放比例 + + @discussion + 获取摄像头最大缩放比例 + + @remarks 摄像头配置 + */ +- (float)getCameraMaxZoomFactor; + +/*! + 设置小流视频配置 + + @param config 视频配置 + @discussion + 设置小流视频配置 + + @remarks 视频配置 + */ +- (BOOL)setTinyVideoConfig:(RCRTCVideoStreamConfig *)config; + +/*! + 获取小流视频配置 + + @discussion + 获取小流视频配置 + + @remarks 视频配置 + */ +- (nullable RCRTCVideoStreamConfig *)getTinyVideoConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCodeDefine.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCodeDefine.h new file mode 100644 index 0000000..1116b70 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCodeDefine.h @@ -0,0 +1,263 @@ +// +// RongRTCError.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/12. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +/*! + 音视频错误码定义 + + 服务器返回错误以 4 开头,后两位是业务代码,最后两位是错误码 4XXXX,如 400XX 基础连接部分 + 本地返回错误以 5 开头,后两位是业务代码,最后两位是错误码 5XXXX,如 500XX 初始化基础连接部分 + */ +typedef NS_ENUM(NSInteger, RCRTCCode) { + /*! + 成功 + */ + RCRTCCodeSuccess = 0, + /*! + 初始化失败, 信令服务(IM Server)未连接 + */ + RCRTCCodeSignalServerNotConnect = 50000, + /*! + 参数错误 + */ + RCRTCCodeParameterError = 50001, + /*! + 加入相同房间错误,表示用户在客户端重复加入相同的房间 + */ + RCRTCCodeJoinToSameRoom = 50002, + /*! + 不在房间中 + */ + RCRTCCodeNotInRTCRoom = 50003, + /*! + 请检查是否开通音视频服务 + */ + RCRTCCodeVoIPNotAvailable = 50004, + /*! + RTC token为空,请查看是否还在房间内或者房间是否销毁 + */ + RCRTCCodeRTCTokenIsNull = 50006, + /*! + SDK 内部状态错误 + */ + RCRTCCodeIllegalState = 50007, + /*! + 观众加聊天室成功,kv 回调超时(30s) + */ + RCRTCCodeChatRoomKVTimeout = 50008, + /*! + HTTP 请求超时 + */ + RCRTCCodeHttpTimeoutError = 50010, + /*! + HTTP 错误(含 500,404,405 等错误) + */ + RCRTCCodeHttpError = 50011, + /*! + 发布重复资源 + */ + RCRTCCodePublishDuplicateResources = 50020, + /*! + 设置本地 SDP 错误 + */ + RCRTCCodeSetLocalSDPError = 50021, + /*! + 设置远端 SDP 错误 + */ + RCRTCCodeSetRemoteSDPError = 50022, + /*! + 发布的流的个数已经到达上限 + */ + RCRTCCodePublishStreamsHasReachedMaxCount = 50023, + /*! + 取消发布不存在的资源 + */ + RCRTCCodeUnpublishUnexistStream = 50024, + /*! + 创建本地 Offer 失败 + */ + RCRTCCodeCreateOfferError = 50025, + /*! + 创建本地 Answer 失败 + */ + RCRTCCodeCreateAnswerError = 50026, + /*! + 公有云 SDK 不能访问私有云服务 + */ + RCRTCCodeIncompatibleWithPrivateServer = 50027, + /*! + 无法使用设置的代理服务转发资源 + */ + RCRTCCodeProxyUnavailableError = 50028, + /*! + 订阅不存在的音视频资源 + */ + RCRTCCodeSubscribeNotExistResources = 50030, + /*! + 资源重复订阅 + */ + RCRTCCodeSubscribeDuplicateResources = 50031, + /*! + 取消订阅不存在的音视频资源 + */ + RCRTCCodeUnsubscribeNotExistResouce = 50032, + /*! + 当前房间不存在这个 liveUrl + */ + RCRTCCodeLiveUrlNotInCurrentRoom = 50033, + /*! + 请检查当前是否开通了语音识别服务 + */ + RCRTCCodeASRNotAvailable= 50034, + /*! + 请检查当前是否开启了语音识别服务 + */ + RCRTCCodeASRNotStart = 50035, + /*! + RTCConnection 为空 + */ + RCRTCCodeRTCConnectionIsNil = 50065, + /*! + 解析 Json 串出错 + */ + RCRTCCodeParseJsonDataError = 50069, + /*! + 未加入主房间 + */ + RCRTCCodeNotJoinedMainRoom = 50074, + /*! + 操作的副房间号码和主房间号码一致错误 + */ + RCRTCCodeOtherRoomIDSameWithMainRoomId = 50075, + /*! + 取消的跨房间连麦请求不存在 + */ + RCRTCCodeCancelInviteNotExist = 50076, + /*! + 响应的跨房间连麦请求不存在 + */ + RCRTCCodeRespondInviteNotExist = 50077, + /*! + 发布时mediaServer返回的mcu流为空 + */ + RCRTCCodeMCUListNotExist = 50079, + /*! + cdn 地址配置数量到达上限(最大为5个) + */ + RCRTCCodeCDNCountReachToLimit = 50080, + /*! + 帧时间戳非法 + */ + RCRTCCodeIllegalFrameTimestamp = 50081, + /*! + 解码视频帧失败 + */ + RCRTCCodeDecodeVideoFrameError = 50082, + /*! + 音效文件数量已经到达最大数量 + */ + RCRTCCodeEffectFileCountHasBeenReached = 50090, + /*! + 处理非法的 soundId,如停止播放没有播放过的音效文件 id, + 此音效 ID 没有预设或者播放过。 + */ + RCRTCCodeHandlingIllegalEffectSoundId = 50091, + /*! + 自动重连异常 + */ + RCRTCCodeReconnectError = 50100, + /*! + 观众加聊天室成功,pullData KV没有值 + */ + RCRTCCodeChatRoomKVNotExist = 50101, + /*! + 音频设备启动失败 + */ + RCRTCCodeAudioDeviceStartError = 52000, + /*! + 订阅流时,cdn流订阅失败 + */ + RCRTCCodeSubscribeCDNError = 52001, + /*! + 没有集成player SDK + */ + RCRTCCodePlayerModuleNotFound = 54001, + /*! + CDN内部错误 + */ + RCRTCCodeCDNInnerError = 54003, + /*! + 数据连接中断 或 音视频源格式不支持 + */ + RCRTCCodeCdnInfoVideoInterrupt = 54008, + /*! + 订阅 CDN 流时,初始化 player 模块异常 + */ + RCRTCCodePlayerInitError = 54009, + /*! + * Add from 5.1.9 + * 切换角色时房间类型错误,必须为直播房间 + */ + RCRTCCodeSwitchRoleRoomTypeError = 55001, + /*! + * Add from 5.1.9 + * 切换的角色和当前角色相同错误 + */ + RCRTCCodeSwitchRoleSameRoleError = 55002, + /*! + * Add from 5.1.17 + * RTC 网络探测未开始 + */ + RCRTCCodeProbeTestNotStart = 56001, + /*! + * Add from 5.1.17 + * RTC 网络探测已开始 + */ + RCRTCCodeProbeTestExist = 56002, + /*! + * Add from 5.1.17 + * RTC 通道连接断开 + */ + RCRTCCodeMediaServerIceDisConnect = 56003, + /*! + * RTC 网络探测被中断 + */ + RCRTCCodeProbeTestForceStop = 56004, + /*! + 加房间操作打断探测 + */ + RCRTCCodeInterruptByInternal = 56005, + /*! + SEI 数据长度超出限制 4096 个字节 + */ + RCRTCCodeSEILengthReachToLimit = 56006, + /*! + SEI 通道未建立,请检查是否开启 SEI,或者发布音视频 + */ + RCRTCCodeSEIChannelNotExist = 56007, + /*! + SEI 发送失败 + */ + RCRTCCodeSEISendUnknownError = 56008, + /*! + SEI 频率超出限制, 1秒内不超过 30 次 + */ + RCRTCCodeSEISendTimePerSecondReachToLimit = 56009, + +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCCodeDefine : NSObject + ++ (NSString *)codeDesc:(NSInteger)code; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCConfig.h new file mode 100644 index 0000000..52fee94 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCConfig.h @@ -0,0 +1,69 @@ +// +// RCRTCConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/12. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCProxy.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCConfig : NSObject + +/*! + 默认 YES:断网后一直保持重连; NO:如果音视频房间在超时时间(超时时间管理后台可以配置,默认值 60s)内没有连上网络,SDK 会自动退出音视频房间,这个时间是一个粗略值,不保证精确,有 5s 左右的误差 + */ +@property (nonatomic, assign) BOOL isEnableAutoReconnect; + +/*! + 设置房间统计信息的回调间隔 + 单位毫秒, 默认1000ms(1s)。 注意 interval 值太小会影响 SDK 性能,如果小于 100 配置无法生效 + */ +@property (nonatomic, assign) NSUInteger statusReportInterval; + +/*! + 默认 NO:是否开启媒体流加密功能(SRTP) + 特别注意:开启该功能会对性能和用户体验有一定影响,如果没有该需求请不要打开。 + */ +@property (nonatomic, assign) BOOL enableSRTP; + +/*! + 默认 YES:是否可以和其它后台 App 进行混音 + 特别注意:如果该属性设置为 NO,切换到其它 App 操作麦克风或者扬声器时,会导致自己 App 麦克风采集和播放被打断。 + */ +@property (nonatomic, assign) BOOL enableMixWithOthers; + +/*! + 默认 NO:使用BaseLine进行视频编码; YES:使用HighProfile进行视频编码 + */ +@property (nonatomic, assign) BOOL enableHardwareEncoderHighProfile; + +/*! + 默认 YES:Debug模式下检测IMSDK和RTCSDK版本号是否一致 + */ +@property (nonatomic, assign) BOOL enableVersionMismatch; + +/*! + 默认 YES:是否支持立体声 + */ +@property (nonatomic, assign) BOOL enableStereo; + +/*! + 设置代理服务地址 + 默认: 无 + */ +@property (nonatomic, strong) RCRTCProxy *proxy; + +/*! + 默认 YES:观众是否支持 PlayAndRecord 模式,该设置只对观众身份生效 + YES:AudioSession Category 为 AVAudioSessionCategoryPlayAndRecord,可以进行听筒/扬声器切换; + NO:AudioSession Category 为 AVAudioSessionCategoryPlayback。 + */ +@property (nonatomic, assign) BOOL enablePlayAndRecord; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCryptoDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCryptoDelegate.h new file mode 100644 index 0000000..b666e71 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCryptoDelegate.h @@ -0,0 +1,101 @@ +// +// RCRTCCryptoDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2020/7/28. +// Copyright © 2020 RongCloud. All rights reserved. +// + +NS_ASSUME_NONNULL_BEGIN + +/*! +自定义加密代理 +*/ +@protocol RCRTCCustomizedEncryptorDelegate + +/*! +加密回调 + +@param payloadData 需要加密的数据起始地址 +@param payloadSize 需要加密的数据的大小 +@param encryptedFrame 加密后数据起始地址 +@param bytesWritten 加密后数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义加密需要实现该方法进行加密操作。 + +@remarks 加解密配置 + +*/ +- (int)EncryptPayloadData:(const uint8_t *)payloadData + payloadSize:(size_t)payloadSize + encryptedFrame:(uint8_t *)encryptedFrame + bytesWritten:(size_t *)bytesWritten + mediastreamId:(NSString *)mediastreamId + mediaType:(int)mediatype; + +/*! +加密后数据大小 + +@param frameSize 加密前数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义加密需要根据自己的加密算法返回加密后数据的大小,SDK 会根据返回加密后数据的大小进行内存申请 + +@remarks 加解密配置 + +*/ +- (size_t)GetMaxCiphertextByteSize:(size_t)frameSize mediastreamId:(NSString *)mediastreamId mediaType:(int)mediatype; + +@end + +/*! +自定义解密代理 +*/ +@protocol RCRTCCustomizedDecryptorDelegate + +/*! +解密回调 + +@param encryptedFrame 需要解密的数据起始地址 +@param encryptedFrameSize 需要解密的数据的大小 +@param frame 解密后数据起始地址 +@param bytesWritten 解密后数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义解密需要实现该方法进行解密操作。 + +@remarks 加解密配置 + +*/ +- (int)DecryptFrame:(const uint8_t *)encryptedFrame + frameSize:(size_t)encryptedFrameSize + frame:(uint8_t *)frame + bytesWritten:(size_t *)bytesWritten + mediastreamId:(NSString *)mediastreamId + mediaType:(int)mediatype; + +/*! +解密后数据大小 + +@param frameSize 解密前数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义解密需要根据自己的解密算法返回解密后数据的大小,SDK 会根据返回解密后数据的大小进行内存申请 + +@remarks 加解密配置 + +*/ +- (size_t)GetMaxPlaintextByteSize:(size_t)frameSize mediastreamId:(NSString *)mediastreamId mediaType:(int)mediatype; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCustomLayout.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCustomLayout.h new file mode 100644 index 0000000..8884e59 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCustomLayout.h @@ -0,0 +1,44 @@ +// +// RCRTCCustomLayout.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@class RCRTCStream; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCCustomLayout : NSObject + +/*! + 要混合布局的流,必须为视频流 + */ +@property (nonatomic, strong, nullable) RCRTCStream *videoStream; + +/*! + 混流图层坐标的 y 值 + */ +@property (nonatomic, assign) NSInteger y; + +/*! + 混流图层坐标的 x 值 + */ +@property (nonatomic, assign) NSInteger x; + +/*! + 视频流的宽 + */ +@property (nonatomic, assign) NSInteger width; + +/*! + 视频流的高 + */ +@property (nonatomic, assign) NSInteger height; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCustomMixAudio.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCustomMixAudio.h new file mode 100644 index 0000000..1df7758 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCCustomMixAudio.h @@ -0,0 +1,24 @@ +// +// RCRTCCustomMixAudio.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@class RCRTCStream; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCCustomMixAudio : NSObject + +/*! + 要进行混音的流,必须为音频流 + */ +@property (nonatomic, strong, nullable) RCRTCStream *audioStream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCDrawer.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCDrawer.h new file mode 100644 index 0000000..fc9e8e3 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCDrawer.h @@ -0,0 +1,30 @@ +// +// RCRTCDrawer.h +// RongRTCLib +// +// Created by RongCloud on 2021/11/24. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +@class RCRTCVideoFrame; + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCRTCDrawer + +/*! + 接收视频数据尺寸 + */ +- (void)setSize:(CGSize)size; + +/*! + 接收视频帧数据 + */ +- (void)renderFrame:(nullable RCRTCVideoFrame *)frame; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCEngine.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCEngine.h new file mode 100644 index 0000000..f59d3da --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCEngine.h @@ -0,0 +1,499 @@ +// +// RCRTCEngine.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/2. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCAudioEffectManager.h" +#import "RCRTCCodeDefine.h" +#import "RCRTCConfig.h" +#import "RCRTCCryptoDelegate.h" +#import "RCRTCLibDefine.h" +#import "RCRTCRoomConfig.h" +#import "RCRTCJoinedRoomInfo.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCRoom; +@class RCRTCOtherRoom; +@class RCRTCVideoPreviewView; +@class RCRTCVideoStreamConfig; +@class RCRTCOutputStream; +@class RCRTCMicOutputStream; +@class RCRTCCameraOutputStream; +@class RCRTCFileVideoOutputStream; +@class RCRTCScreenShareOutputStream; +@protocol RCRTCStatusReportDelegate; +@protocol RCRTCEngineEventDelegate; +@protocol RCRTCProbeTestDelegate; + +/*! + 音视频引擎类 + */ +@interface RCRTCEngine : NSObject + +/*! + 音视频引擎单例 + + @remarks RCRTCEngine + */ ++ (RCRTCEngine *)sharedInstance; + +/*! + 请使用 sharedInstance 初始化方法 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 请使用 sharedInstance 初始化方法 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 音视频引擎参数设置 + + @param config Engine 配置 + @return 错误码,参考 RCRTCCode + + @remarks RCRTCEngine:参数配置 + */ +- (int)initWithConfig:(RCRTCConfig *)config; + +/*! + 音视频引擎销毁资源, 会有主动离开房间操作 + + @remarks RCRTCEngine + */ +- (void)unInit; + +/*! + 音效管理器,管理播放、暂停等 + + @remarks RCRTCEngine:参数配置 + */ +@property (nonatomic, strong, readonly) RCRTCAudioEffectManager *audioEffectManager; + +/*! + 全局音视频配置信息 + + @remarks RCRTCEngine:参数配置 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCConfig *config; + +/*! + 当前已加入的房间,已废弃 + + @deprecated 4.0.5 + @remarks RCRTCEngine:房间接口 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCRoom *currentRoom DEPRECATED_MSG_ATTRIBUTE("use room property instead"); + +/*! + 当前已加入的房间 + + @remarks RCRTCEngine:房间接口 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCRoom *room; + +/*! + 本地默认音频流 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, strong, readonly) RCRTCMicOutputStream *defaultAudioStream; + +/*! + 本地默认视频流 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, strong, readonly) RCRTCCameraOutputStream *defaultVideoStream; + +/*! + 房间状态报告监听 + + @remarks RCRTCEngine:统计接口 + */ +@property (nonatomic, weak, nullable) id statusReportDelegate; + +/*! + Engine 代理 + + @remarks RCRTCEngine:Engine 通知接口 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 整体播放音量,范围:0~100,默认值:100 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, assign) NSUInteger playingVolume; + +/*! + 所有远端流音量,范围:0~200,默认值:100 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, assign) NSUInteger remotePlaybackVolume; + +#pragma mark - 设备检测 +/*! + 设备检测 + @param interval 麦克风录制统计时间[2 10] 单位 s,大于10秒默认为10s 小于2秒按2秒计算 + + @remarks RCRTCEngine:设备检测开启接口 + added from 5.1.9 + */ +- (void)startEchoTest:(NSTimeInterval)interval; + +/*! + 设备检测 + + @remarks RCRTCEngine:设备检测关闭接口 + added from 5.1.9 + */ +- (void)stopEchoTest; + +#pragma mark - 创建自定义文件视频流 +/*! + 创建自定义文件视频流 + + @param path 文件路径 + @param replace 文件中音频是否替换麦克风数据,YES 替换麦克风数据,NO 与麦克风数据混音 + @param playback 文件中的音频是否在本端播放 + @param tag 自定义视频文件流标识 + @param config 自定视频文件流的配置信息 + + @return 自定义视频文件流 + + @discussion Added from 5.1.9 + + @remarks RCRTCEngine:媒体流操作 + */ +- (nullable RCRTCFileVideoOutputStream *)createFileVideoOutputStream:(NSString *)path + replaceAudio:(BOOL)replace + playback:(BOOL)playback + tag:(NSString *)tag + config:(RCRTCVideoStreamConfig *)config; + +#pragma mark - 获取屏幕共享流 +/*! + 获取屏幕共享所需流 + + @param groupId groupId 苹果开发者账号后台申请 + + @remarks RCRTCEngine:RCRTCScreenShareOutputStream get 接口 + added from 5.1.8 + */ +- (RCRTCScreenShareOutputStream *)getScreenShareVideoStreamWithGroupId:(NSString *)groupId; + +#pragma mark - 设置媒体服务器地址 +/*! + 设置媒体服务器地址 + + @remarks RCRTCEngine:参数配置 + + @param url 媒体服务器地址 + 设置媒体服务器地址,特别注意如果设置了会覆盖导航下载下来的 media server url + @return 设置是否成功 + */ +- (BOOL)setMediaServerUrl:(NSString *)url; + +#pragma mark - 听筒/扬声器切换 +/*! + 启用扬声器 + + @param useSpeaker YES 启用扬声器;NO 关闭扬声器 + @discussion + 暂态设置启用或关闭扬声器 + + @deprecated 4.0.5 + @remarks RCRTCEngine:媒体流操作 + @return 调用成功返回 YES + */ +- (BOOL)useSpeaker:(BOOL)useSpeaker DEPRECATED_MSG_ATTRIBUTE("use enableSpeaker: API instead"); + +/*! + 启用扬声器 + + @param enable 默认值为 YES;YES 启用扬声器;NO 关闭扬声器 + @discussion + 暂态设置启用或关闭扬声器,任何用户行为或者音频相关 API 的调用都有可能改变暂态设置 + + @remarks RCRTCEngine:媒体流操作 + @return 调用成功返回 YES + */ +- (BOOL)enableSpeaker:(BOOL)enable; + +/*! + 设置默认音频路由 + + @param defaultToSpeaker 默认为 NO,不使用扬声器作为默认音频路由;YES 使用扬声器作为默认音频路由 + @discussion + 设置默认的音频路由,就是在没有外接设备的前提下,设置系统使用听筒还是扬声器播放音频。 + + @remarks RCRTCEngine:媒体流操作 + @return 调用成功返回 YES + */ +- (BOOL)setDefaultAudioRouteToSpeaker:(BOOL)defaultToSpeaker; + +#pragma mark - 自定义加密 +/*! + 设置音频输出流自定义加密回调 + + @param audioEncryptorDelegate 加密代理,接口传入 RCRTCCustomizedEncryptorDelegate 的非空实现对象表示开启自定义加密; + 如果传入 nil 代表关闭自定义加密。 + + @discussion + 该接口设置为全局设置,对所有发送音频进行加密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + */ +- (void)setAudioCustomizedEncryptorDelegate:(nullable id)audioEncryptorDelegate; + +/*! + 设置音频输入流自定义解密回调 + + @param audioDecryptorDelegate 加密代理,接口传入 RCRTCDecryptorDelegate 的非空实现对象表示开启自定义解密; + 如果传入 nil 代表关闭自定义解密。 + + @discussion + 该接口设置为全局设置,对所有接收音频进行解密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + + */ +- (void)setAudioCustomizedDecryptorDelegate:(nullable id)audioDecryptorDelegate; + +/*! + 设置视频输出流自定义加密回调 + + @param videoEncryptorDelegate 加密代理,接口传入 RCRTCCustomizedEncryptorDelegate 的非空实现对象表示开启自定义加密; + 如果传入 nil 代表关闭自定义加密。 + + @discussion + 该接口设置为全局设置,对所有发送视频进行加密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + + */ +- (void)setVideoCustomizedEncryptorDelegate:(nullable id)videoEncryptorDelegate; + +/*! + 设置视频输入流自定义解密回调 + + @param videoDecryptorDelegate 加密代理,接口传入 RCRTCDecryptorDelegate 的非空实现对象表示开启自定义解密; + 如果传入 nil 代表关闭自定义解密。 + + @discussion + 该接口设置为全局设置,对所有接收视频进行解密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + */ +- (void)setVideoCustomizedDecryptorDelegate:(nullable id)videoDecryptorDelegate; + +#pragma mark - 加入房间 +/*! + 加入房间 + + @param roomId 房间 Id, 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 最长 64 个字符 + @param completion 加入房间回调,其中, room 对象中的 remoteUsers, 存储当前房间中的所有人, 包括发布资源和没有发布资源的人 + + @remarks RCRTCEngine:房间接口 + */ +- (void)joinRoom:(NSString *)roomId + completion:(nullable void (^)(RCRTCRoom *_Nullable room, RCRTCCode code))completion; + +/*! + 加入指定类型房间 + + @param roomId 房间 Id, 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 最长 64 个字符 + @param config 加入房间的配置, 主要用于配置直播场景。 + @param completion 加入房间回调, 其中 room 对象中的 remoteUsers, 存储当前房间中的所有人, 包括发布资源和没有发布资源的人 + @discussion + 加入房间 + + @remarks RCRTCEngine:房间接口 + */ +- (void)joinRoom:(NSString *)roomId + config:(RCRTCRoomConfig *)config + completion:(nullable void (^)(RCRTCRoom *_Nullable room, RCRTCCode code))completion; + +#pragma mark - 离开房间 +/*! + 离开房间,已废弃 + + @param roomId 房间 Id + @param completion 离开房间回调 + + @deprecated 4.0.5 + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveRoom:(NSString *)roomId + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion + DEPRECATED_MSG_ATTRIBUTE("use leaveRoom: API instead"); + +/*! + 离开房间 + + @param completion 离开房间回调 + @discussion + 离开房间时不需要调用取消资源发布, SDK 内部会做好取消发布资源逻辑 + + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveRoom:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 加入副房间 +/*! + 连麦邀请后加入副房间 + + @param roomId 副房间 Id, 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 最长 64 个字符 + @param completion 加入副房间回调 + @discussion + 此方法仅供连麦加入副房间使用 + + @remarks RCRTCEngine:房间接口 + */ +- (void)joinOtherRoom:(NSString *)roomId + completion:(nullable void (^)(RCRTCOtherRoom *_Nullable room, RCRTCCode code))completion; + +#pragma mark - 离开副房间 +/*! + 离开副房间 + + @param roomId 副房间 Id + @param isNotify 是否通知所有连麦用户结束, YES:通知 NO:不通知; + 如果想在退出副房间的同时结束 PK,请调用 RCRTCLocalUser.h 的 quitRoomPK 接口。 + @param completion 离开房间回调 + @discussion + 此方法仅供连麦离开副房间使用 + + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveOtherRoom:(NSString *)roomId + notifyFinished:(BOOL)isNotify + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use leaveOtherRoom:completion: API instead"); + +/*! + 离开副房间 + + @param roomId 副房间 Id + @param completion 离开房间回调 + @discussion + 此方法仅供连麦离开副房间使用 + + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveOtherRoom:(NSString *)roomId + completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 观众订阅,取消订阅 +/*! + 观众订阅主播资源,已废弃 + + @param url 主播直播的 url + @param streamType 需要具体订阅的媒体类型 + @param completion 动作的回调, 会依次回调主播的 RCRTCInputStream, 根据 streamType 区分是音频流还是视频流, 如主播发布了音视频流, 此回调会回调两次, 分别为音频的 RCRTCInputStream, 和视频的 RCRTCInputStream 。 + @discussion + 仅直播模式可用, 作为观众, 直接观看主播的直播, 无需加入房间, 通过传入主播的 url, 仅观众端可用,此接口可具体订阅音频流或视频流或大小流 + + @deprecated from 5.1.0 + @remarks RCRTCEngine:媒体流操作 + */ +- (void)subscribeLiveStream:(NSString *)url + streamType:(RCRTCAVStreamType)streamType + completion:(nullable RCRTCLiveCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use RCRTCLocalUser.h subscribeStream:tinyStreams:completion: API instead"); + +/*! + 观众取消订阅主播资源,已废弃 + + @param url 主播直播的 url + @param completion 动作的回调 + @discussion + 仅直播模式可用, 作为观众, 退出观看主播的直播, 仅观众端使用 + + @deprecated from 5.1.0 + @remarks RCRTCEngine:媒体流操作 + */ +- (void)unsubscribeLiveStream:(NSString *)url + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion + DEPRECATED_MSG_ATTRIBUTE("use RCRTCLocalUser.h unsubscribeStreams:completion: API instead"); + +/*! + 查询当前用户已经加入的房间 + + @discussion + 查询当前用户已经加入的房间 + + @remarks 房间管理 + */ +- (void)queryRTCRoomJoinedInfo:(nullable void(^)(BOOL isSuccess, RCRTCCode code, NSArray * _Nullable infoArray))completion; + +/*! + 加房间前探测回调 + + @discussion Add from 5.1.17 + + @remarks RCRTCEngine:统计接口 + */ +@property (nonatomic, weak, nullable) id probeTestDelegate; + +/*! + 加房间前探测 + + @param callback 开始探测操作的回调 + @discussion + 与当前的 media server 建立连接,可以从 RCRTCProbeTestDelegate 拿到探测的上下行报表数据,探测持续 30s 自动结束。 + Add from 5.1.17 + + @remarks RCRTCEngine:探测接口 + */ +- (void)startRTCProbeTest:(nullable RCRTCOperationCallback)callback; + +/*! + 主动结束探测 + + @param callback 开始探测操作的回调 + @discussion + 探测自动结束前,可以手动调用该接口停止探测。 + Add from 5.1.17 + + @remarks RCRTCEngine:探测接口 + */ +- (void)stopRTCProbeTest:(nullable RCRTCOperationCallback)callback; + + +#pragma mark - SDK 版本号 +/*! + 获取 SDK 版本号,已废弃 + + @return 版本号 + + @deprecated 4.0.5 + @remarks RCRTCEngine:参数配置 + */ +- (NSString *)getRTCLibVersion DEPRECATED_MSG_ATTRIBUTE("use getVersion API instead"); + +/*! + 获取 SDK 版本号 + + @return 版本号 + + @remarks RCRTCEngine:参数配置 + */ ++ (NSString *)getVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCEngineEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCEngineEventDelegate.h new file mode 100644 index 0000000..df4baa6 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCEngineEventDelegate.h @@ -0,0 +1,102 @@ +// +// RCRTCEngineDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/2. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +@class RCRTCBaseRoom; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频引擎代理 + */ +@protocol RCRTCEngineEventDelegate + +@optional + +/*! + 音频路由改变回调 + + @remarks RCRTCEngineEventDelegate + + */ +- (void)didAudioRouteChanged:(RCRTCAudioRouteType)audioRouteType; + +/*! + 屏幕共享拓展 结束消息回调 + + @remarks RCRTCEngineEventDelegate + Added from 5.1.8 + */ +- (void)screenShareExtentionFinished; + +/*! + 屏幕共享拓展 开始消息回调 + + @remarks RCRTCEngineEventDelegate + @discussion + 需要先获取屏幕共享所需流 RCRTCEngine:RCRTCScreenShareOutputStream get 接口 + Added from 5.2.0 + */ +- (void)screenShareExtentionStarted; + +/*! + 被 SDK 踢出房间通知 + + @param roomId 离开的房间 + @param reason 被踢出房间原因 + @discussion + 如果用户在房间内, 此时由于某种原因被踢离开房间, SDK 会关闭音视频连接, 释放资源, 将用户踢出房间, 回调通知用户, + 如果用户不在房间内,roomId 为 nil,只释放资源,回调通知用户 + + @remarks 代理 + */ +- (void)didKicked:(nullable NSString *)roomId + reason:(RCRTCKickedReason)reason; + +/*! + 被 SDK 踢出房间通知 + + @param roomId 离开的房间 + @param reason 被踢出房间原因 + @param extra Server API 自定义数据 + @discussion + 如果用户在房间内, 此时由于某种原因被踢离开房间, SDK 会关闭音视频连接, 释放资源, 将用户踢出房间, 回调通知用户, + 如果用户不在房间内,roomId 为 nil,只释放资源,回调通知用户 + + @remarks 代理 + */ +- (void)didKicked:(nullable NSString *)roomId + reason:(RCRTCKickedReason)reason + extra:(nullable NSDictionary *)extra; + +- (void)didKicked:(nullable NSString *)roomId + Reason:(RCRTCKickedReason)reason DEPRECATED_MSG_ATTRIBUTE("use didKicked:reason: instead"); +/*! + 发生错误回调 + 该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。 + 详细的错误代码,见 RCRTCCode。 + + @param errorCode 具体返回数据参考 RCRTCCode 说明 + */ +- (void)didOccurError:(RCRTCCode)errorCode; + +/*! + 如果用户在房间内, RTC连接状态变化通知 + + @param state 连接状态 + @discussion + 如果用户在房间内, RTC连接状态变化通知 + + @remarks 代理 + */ +- (void)didRTCConnectionStateChanged:(RCRTCConnectionState)state; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCFileVideoOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCFileVideoOutputStream.h new file mode 100644 index 0000000..1588371 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCFileVideoOutputStream.h @@ -0,0 +1,109 @@ +// +// RCRTCFileVideoOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2021/8/30. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCRTCFileVideoOutputStreamDelegate; + +/*! + 自定义文件流 + + @discussion Added from 5.1.9 + */ +@interface RCRTCFileVideoOutputStream : RCRTCVideoOutputStream +/*! + 文件路径 + */ +@property (nonatomic, readonly, nullable) NSString *filePath; + +/*! + 文件中音频是否替换麦克风数据,YES 替换麦克风数据,NO 与麦克风数据混音 + */ +@property (nonatomic, readonly) BOOL replace; + +/*! + 文件中的音频是否在本端播放 + */ +@property (nonatomic, readonly) BOOL playback; + +/*! + 文件视频流代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 音频数据回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback audioDataCallback; + +/*! + 停止 + + @return 是否调用成功 + + @discussion 调用此方法会停止解码文件视频流并释放文件资源 + */ +- (BOOL)stop; + +/*! + 初始化 + + @return 失败 + + @warning + 请勿调用,仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance] 的 + createFileVideoOutputStream:replaceAudio:playback:tag:config: 方法获取实例。 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @return 失败 + + @warning + 请勿调用,仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance] 的 + createFileVideoOutputStream:replaceAudio:playback:tag:config: 方法获取实例。 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 初始化 + + @return 失败 + + @warning + 请勿调用,仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance] 的 + createFileVideoOutputStream:replaceAudio:playback:tag:config: 方法获取实例。 + */ +- (instancetype)initVideoOutputStreamWithTag:(NSString *)tag NS_UNAVAILABLE; + +@end + +@protocol RCRTCFileVideoOutputStreamDelegate + +/*! + 开始解码文件视频流 + */ +- (void)fileVideoOutputStreamDidStartRead:(RCRTCFileVideoOutputStream *)stream; + +/*! + 完成解码文件视频流 + */ +- (void)fileVideoOutputStreamDidReadCompleted:(RCRTCFileVideoOutputStream *)stream; + +/*! + 解码文件视频流失败 + */ +- (void)fileVideoOutputStreamDidFailed:(RCRTCFileVideoOutputStream *)stream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCGlobals.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCGlobals.h new file mode 100644 index 0000000..f26258b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCGlobals.h @@ -0,0 +1,20 @@ +// +// RCRTCGlobals.h +// RongRTCLib +// +// Created by RongCloud on 2020/4/3. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#ifndef RongRTCGlobals_h +#define RongRTCGlobals_h + +#if defined(__cplusplus) +#define RONGRTCLIB_EXTERN extern "C" +#else +#define RONGRTCLIB_EXTERN extern +#endif + +typedef void(^RCRTCVoidBlock)(void); + +#endif /* RongRTCGlobals_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCInputStream.h new file mode 100644 index 0000000..e2e5ac0 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCInputStream.h @@ -0,0 +1,56 @@ +// +// RongRTCInputStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCLibDefine.h" +#import "RCRTCStream.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoView; +@class RCRTCVideoTextureView; +@class RCRTCInputStream; + +/*! + 接收到的音视频流 + */ +@interface RCRTCInputStream : RCRTCStream + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCInputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCInputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCJoinedRoomInfo.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCJoinedRoomInfo.h new file mode 100644 index 0000000..cde3cb8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCJoinedRoomInfo.h @@ -0,0 +1,35 @@ +// +// RCRTCJoinedRoomInfo.h +// RongRTCLib +// +// Created by RongCloud on 2021/8/13. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/*! + 已经加入房间信息 + */ +@interface RCRTCJoinedRoomInfo : NSObject + +/*! + 设备ID + */ +@property (nonatomic, strong) NSString *deviceId; + +/*! + 房间号 + */ +@property (nonatomic, strong) NSString *roomId; + +/*! + 房间加入时间 (毫秒) + */ +@property (nonatomic, assign) long long joinTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLibDefine.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLibDefine.h new file mode 100644 index 0000000..a1fff5b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLibDefine.h @@ -0,0 +1,745 @@ +// +// RCRTCLibDefine.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/3. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#ifndef RCRTCLibDefine_h +#define RCRTCLibDefine_h + +#import +#import +#import "RCRTCCodeDefine.h" + +@class RongRTCMember; +@class RCRTCRoom; +@class RCRTCStream; +@class RCRTCLiveInfo; +@class RCRTCInputStream; +@class RCRTCVideoFrame; + +/*! + 某些操作的回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败描述的错误码 + @discussion + 某些操作的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCOperationCallback)(BOOL isSuccess, RCRTCCode code); + +/*! + 直播操作的回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败描述的错误码 + @param liveInfo 当前直播主持人的数据模型 + @discussion + 直播操作的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCLiveOperationCallback)(BOOL isSuccess, RCRTCCode code, RCRTCLiveInfo *_Nullable liveInfo); + +/*! + 观众观看直播的回调 + + @param code 成功或者失败描述的错误码 + @param inputStream 当前直播流 + @discussion + 观众观看直播的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCLiveCallback)(RCRTCCode code, RCRTCInputStream *_Nullable inputStream); + +/*! + 观众观看直播的回调 + + @param code 成功或者失败描述的错误码 + @param inputStreams 当前直播流 + @discussion + 观众观看直播的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCLiveUrlCallback)(RCRTCCode code, NSArray *_Nullable inputStreams); + +/*! + 获取用户属性操作回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败的描述 错误码 + @param attr 获取结果 + @discussion + 获取用户属性操作回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCAttributeOperationCallback)(BOOL isSuccess, RCRTCCode code, NSDictionary *_Nullable attr); + +/*! + 订阅操作的回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败描述的错误码 + @param subscribeErrorList 服务器返回的订阅失败列表 + @discussion + 订阅操作的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCSubscribeOperationCallback)(BOOL isSuccess, RCRTCCode code, NSArray *_Nullable subscribeErrorList); + +/*! + 当前流状态 + */ +typedef NS_ENUM(NSUInteger, RCRTCResourceState) { + /*! + 流处于禁用状态 + */ + ResourceStateDisabled = 0, + /*! + 流处于正常状态 + */ + ResourceStateNormal +}; + +/*! + 资源类型 + deprecated from 5.1.8 + */ +typedef NS_ENUM(NSUInteger, RTCMediaType) { + /*! + 只有声音 + */ + RTCMediaTypeAudio, + /*! + 声音视频 + */ + RTCMediaTypeVideo, + /*! + 数据(暂不支持) + */ + RTCMediaTypeData, + /*! + 空数据 + */ + RTCMediaTypeNothing +}; + +/*! + 媒体类型 + added from 5.1.8 + */ +typedef NS_ENUM(NSUInteger, RCRTCMediaType) { + /*! + 音频 + */ + RCRTCMediaTypeAudio, + /*! + 音视频 + */ + RCRTCMediaTypeVideo, + /*! + 数据(暂不支持) + */ + RCRTCMediaTypeData, + /*! + 空数据 + */ + RCRTCMediaTypeNothing +}; + +/*! + 媒体流类型 + added from 5.1.8 + */ +typedef NS_ENUM(NSUInteger, RCRTCMediaStreamType) { + /*! + 默认 + */ + RCRTCMediaStreamTypeDefault, + /*! + 自定义 + */ + RCRTCMediaStreamTypeCustomized, + /*! + 直播合流 + */ + RCRTCMediaStreamTypeMCULive, + /*! + CDN + */ + RCRTCMediaStreamTypeCDN, + /*! + 屏幕共享 + */ + RCRTCMediaStreamTypeScreenShare +}; + +/*! + 视频分辨率类型 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoSizePreset) { + /*! + 无效参数 + */ + RCRTCVideoSizePresetInvalid = -1, + /*! + 分辨率 176X144 + */ + RCRTCVideoSizePreset176x144, + /*! + 分辨率 180X180 + */ + RCRTCVideoSizePreset180x180, + /*! + 分辨率 256X144 + */ + RCRTCVideoSizePreset256x144, + /*! + 分辨率 240X180 + */ + RCRTCVideoSizePreset240x180, + /*! + 分辨率 320X180 + */ + RCRTCVideoSizePreset320x180, + /*! + 分辨率 240X240 + */ + RCRTCVideoSizePreset240x240, + /*! + 分辨率 320X240 + */ + RCRTCVideoSizePreset320x240, + /*! + 分辨率 360X360 + */ + RCRTCVideoSizePreset360x360, + /*! + 分辨率 480X360 + */ + RCRTCVideoSizePreset480x360, + /*! + 分辨率 640X360 + */ + RCRTCVideoSizePreset640x360, + /*! + 分辨率 480X480 + */ + RCRTCVideoSizePreset480x480, + /*! + 分辨率 640X480 + */ + RCRTCVideoSizePreset640x480, + /*! + 分辨率 720X480 + */ + RCRTCVideoSizePreset720x480, + /*! + 分辨率 848X480 + */ + RCRTCVideoSizePreset848x480, + /*! + 分辨率 960X720 + */ + RCRTCVideoSizePreset960x720, + /*! + 分辨率 1280X720 + */ + RCRTCVideoSizePreset1280x720, + /*! + 分辨率 1920X1080 + */ + RCRTCVideoSizePreset1920x1080 +}; + +/*! + 视频方向 + */ +typedef NS_ENUM(NSUInteger, RCRTCVideoOrientation) { + /*! + 竖立, home 键在下部 + */ + RCRTCVideoOrientationPortrait = 1, + /*! + 竖立, home 键在上部 + */ + RCRTCVideoOrientationPortraitUpsideDown, + /*! + 横屏, home 键在左侧 + */ + RCRTCVideoOrientationLandscapeRight, + /*! + 竖立, home 键在右侧 + */ + RCRTCVideoOrientationLandscapeLeft +}; + +/*! + 视频填充模式 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoFillMode) { + /*! + 完整显示, 填充黑边 + 等比例填充,直到一个维度到达区域边界 + */ + RCRTCVideoFillModeAspectFit, + RCRTCVideoFillModeAspect + __attribute__((deprecated("RCRTCVideoFillModeAspect即将废弃 请更换为RCRTCVideoFillModeAspectFit"))) = + RCRTCVideoFillModeAspectFit, + /*! + 满屏显示 + 等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪 + */ + RCRTCVideoFillModeAspectFill, + /*! + 非均匀模式。两个维度完全填充至整个视图区域 + */ + RCRTCVideoFillModeResize +}; + +/*! + 帧率 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoFPS) { + /*! + 无效参数 + */ + RCRTCVideoFPSInvalid = -1, + /*! + 每秒 10 帧 + */ + RCRTCVideoFPS10, + /*! + 每秒 15 帧 + */ + RCRTCVideoFPS15, + /*! + 每秒 24 帧 + */ + RCRTCVideoFPS24, + /*! + 每秒 30 帧 + */ + RCRTCVideoFPS30 +}; + +/*! + 视频编解码 + */ +typedef NS_ENUM(NSUInteger, RCRTCCodecType) { + /*! + H264 编码 + */ + RCRTCCodecH264 +}; + +/*! + 音频编解码 + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioCodecType) { + /*! + PCMU + */ + RCRTCAudioCodecPCMU = 0, + /*! + OPUS + */ + RCRTCAudioCodecOPUS = 111 +}; + +/*! + 摄像头 + */ +typedef NS_ENUM(NSUInteger, RCRTCDeviceCamera) { + /*! + 未指明 + */ + RCRTCCaptureDeviceUnspecified = AVCaptureDevicePositionUnspecified, + /*! + 后置摄像头 + */ + RCRTCCaptureDeviceBack = AVCaptureDevicePositionBack, + /*! + 前置摄像头 + */ + RCRTCCaptureDeviceFront = AVCaptureDevicePositionFront +}; + +/*! + 设置加入房间时音视频使用模式 + */ +typedef NS_ENUM(NSUInteger, RCRTCRoomType) { + /*! + 普通音视频类型 + */ + RCRTCRoomTypeNormal = 0, + /*! + 直播类型 + */ + RCRTCRoomTypeLive = 2, + /*! + 跨应用多人房间 + */ + RCRTCRoomTypeCrossMuti = 7 +}; + +/*! + 直播类型 + */ +typedef NS_ENUM(NSUInteger, RCRTCLiveType) { + /*! + 当前直播为音视频直播 + */ + RCRTCLiveTypeAudioVideo = 0, + + /*! + 当前直播为仅音频直播 + */ + RCRTCLiveTypeAudio = 1 +}; + +/*! + 同一 UserID 多端加入房间处理类型 + */ +typedef NS_ENUM(NSUInteger, RCRTCJoinRoomType) { + /*! + 将之前加入房间的端踢出房间 + */ + RCRTCJoinRoomTypeKick = 0, + /*! + 拒绝当前端加入房间 + */ + RCRTCJoinRoomTypeRefuse = 1 +}; + +/*! + 直播类型下的角色区分 + */ +typedef NS_ENUM(NSUInteger, RCRTCLiveRoleType) { + /*! + 当前直播角色为主播 + */ + RCRTCLiveRoleTypeBroadcaster = 0, + + /*! + 当前直播角色为观众 + */ + RCRTCLiveRoleTypeAudience = 1 +}; + +/*! + 观众订阅直播类型直播类型 + */ +typedef NS_ENUM(NSUInteger, RCRTCAVStreamType) { + /*! + 仅订阅音频 + */ + RCRTCAVStreamTypeAudio = 0, + + /*! + 仅订阅视频(大流) + */ + RCRTCAVStreamTypeVideo = 1, + + /*! + 订阅音频+视频(大流) + */ + RCRTCAVStreamTypeAudioVideo = 2, + + /*! + 仅订阅视频(小流) + */ + RCRTCAVStreamTypeVideo_tiny = 3, + + /*! + 订阅音频+视频(小流) + */ + RCRTCAVStreamTypeAudioVideo_tiny = 4 +}; + +/*! + 设置音频通话质量, 默认为普通通话模式 RCRTCAudioQualitySpeech + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioQuality) { + /*! + 人声音质,编码码率最大值为32Kbps + */ + RCRTCAudioQualitySpeech, + /*! + 标清音乐音质,编码码率最大值为64Kbps + */ + RCRTCAudioQualityMusic, + /*! + 高清音乐音质,编码码率最大值为128Kbps + */ + RCRTCAudioQualityMusicHigh, +}; + +/*! + 设置音频通话模式, 默认为普通通话模式 RCRTCAudioScenarioDefault + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioScenario) { + /*! + 普通通话模式(普通音质模式), 满足正常音视频场景 + */ + RCRTCAudioScenarioDefault, + /*! + 音乐聊天室模式, 提升声音质量, 适用对音乐演唱要求较高的场景 + */ + RCRTCAudioScenarioMusicChatRoom, + /*! + 音乐教室模式, 提升声音质量, 适用对乐器演奏音质要求较高的场景 + */ + RCRTCAudioScenarioMusicClassRoom +}; + +/*! + 被踢原因 + */ +typedef NS_ENUM(NSInteger, RCRTCKickedReason) { + /*! + 被服务端踢下线 + */ + RCRTCKickedReasonForServer = 1, + /*! + 被同一UserId加入其他房间踢出当前房间 + */ + RCRTCKickedReasonForOtherJoinedRoom, + /*! + 关闭 SDK 断线重连,SDK 将用户踢出房间 + */ + RCRTCKickedReasonForSDKDisconnect, + /*! + IMLib 退出登录,SDK 将用户踢出房间 + */ + RCRTCKickedReasonForIMLogout, + /*! + 被其它端登录挤下线 + */ + RCRTCKickedReasonForOtherClientLogin, + /*! + 服务器销毁房间,被迫离开房间 + */ + RCRTCKickedReasonForSeverDestory +}; + +/*! + RTC连接状态 + */ +typedef NS_ENUM(NSInteger, RCRTCConnectionState) { + /*! + 连接中 + */ + RCRTCConnectionStateConnecting, + /*! + 已连接 + */ + RCRTCConnectionStateConnected +}; + +/*! + 代理协议类型 + */ +typedef NS_OPTIONS(NSUInteger, RCRTCProxyOptions) { + RCRTCProxyOptionsNone = 0, + RCRTCProxyOptionsHTTP = 1 << 0, + RCRTCProxyOptionsUDP = 1 << 1, + RCRTCProxyOptionsAll = RCRTCProxyOptionsHTTP | RCRTCProxyOptionsUDP +}; + +/*! + 视频帧格式 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoFrameFormat) { + /*! + NV12 + */ + RCRTCVideoFrameFormatNV12, + /*! + BGRA + */ + RCRTCVideoFrameFormatBGRA, + /*! + I420 + */ + RCRTCVideoFrameFormatI420 +}; + +/*! + 音频路由类型 + */ +typedef NS_ENUM(NSInteger, RCRTCAudioRouteType) { + /*! + 扬声器 + */ + RCRTCAudioRouteTypeSpeaker, + /*! + 听筒 + */ + RCRTCAudioRouteTypeReceiver, + /*! + 耳机 + */ + RCRTCAudioRouteTypeHeadphone, + /*! + 蓝牙设备 + */ + RCRTCAudioRouteTypeBluetooth +}; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 原始音频数据 + */ +@interface RCRTCAudioFrame : NSObject + +/*! + 音频数据 + */ +@property (assign, nonatomic) uint8_t * bytes; +/*! + 音频数据长度(字节数) + */ +@property (assign, nonatomic) int32_t length; +/*! + 声道数 + */ +@property (assign, nonatomic) int32_t channels; +/*! + 采样率 + */ +@property (assign, nonatomic) int32_t sampleRate; +/*! + 位深 + */ +@property (assign, nonatomic) int32_t bytesPerSample; +/*! + 帧数 + */ +@property (assign, nonatomic) int32_t samples; +/*! + 时间戳 + */ +@property (assign, nonatomic) uint64_t renderTimeMs; + +@end + +@interface RCRTCASRContent : NSObject +/** + 当前语音识别关联用户的 ID + */ +@property (nonatomic, copy) NSString *userId; +/** + 当前语音识别的 ID, 用于关联当前语音识别结果 + */ +@property (nonatomic, copy) NSString *msgId; +/** + 当前语音识别的时间戳, 单位为秒 + */ +@property (nonatomic, assign) NSTimeInterval timeUTC; +/** + 当前语音识别结果 + */ +@property (nonatomic, copy) NSString *msg; +/** + 当前语音识别是否结束, 如果为 YES, 则表示当前语音识别已结束 + */ +@property (nonatomic, assign) BOOL isEnd; + +@end + +@interface RCRTCRealtimeTranslationContent : NSObject +/** + 当前语音翻译的目标语言码 + */ +@property (nonatomic, copy) NSString *destLangCode; +/** + 当前语音翻译关联用户的 ID + */ +@property (nonatomic, copy) NSString *userId; +/** + 当前语音翻译的 ID, 用于关联当前语音识别和语音翻译结果 + */ +@property (nonatomic, copy) NSString *msgId; +/** + 当前语音翻译的时间戳, 单位为秒 + */ +@property (nonatomic, assign) NSTimeInterval timeUTC; +/** + 当前语音翻译结果 + */ +@property (nonatomic, copy) NSString *msg; +/** + 当前语音翻译是否结束, 如果为 YES, 则表示当前语音翻译已结束 + */ +@property (nonatomic, assign) BOOL isEnd; + +@end + +NS_ASSUME_NONNULL_END + +/*! + 视频帧回调 + + @param valid 该视频帧是否有效 + @param videoFrame 视频帧内容 + @discussion + 视频帧回调 + + @remarks 视频流处理 + @return 用户自定义视频帧 + */ +typedef RCRTCVideoFrame *_Nullable (^RCRTCVideoFrameCallback)(BOOL valid, RCRTCVideoFrame *_Nullable videoFrame); + +/*! + 视频帧回调 + + @param valid 该视频帧是否有效 + @param sampleBuffer 视频帧内容 + @discussion + 视频帧回调 + + @remarks 视频流处理 + @return 用户自定义视频帧 + */ +typedef CMSampleBufferRef _Nullable (^RCRTCVideoCMSampleBufferCallback)(BOOL valid, + CMSampleBufferRef _Nullable sampleBuffer); + +/*! + 音频输入输出的回调 + + @param inNumberFrames 帧个数 + @param ioData 音频 pcm 数据 + @param inTimeStamp 音频时间戳 + @param asbd 音频数据格式 + @discussion + 音频输入输出的回调 + + @remarks 音频流处理 + */ +typedef void (^RCRTCAudioDataCallback)(UInt32 inNumberFrames, + AudioBufferList *_Nonnull ioData, + const AudioTimeStamp *_Nonnull inTimeStamp, + const AudioStreamBasicDescription asbd); + +/*! + 音频数据的回调 + + @param frame 音频数据 + @discussion + 音频输入输出的回调 + + @remarks 音频流处理 + */ +typedef void (^RCRTCAudioFrameCallback)(RCRTCAudioFrame *_Nonnull frame); + +#endif /* RCRTCLibDefine_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLiveAudioStatus.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLiveAudioStatus.h new file mode 100644 index 0000000..4b50aa4 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLiveAudioStatus.h @@ -0,0 +1,32 @@ +// +// RCRTCLiveAudioStatus.h +// RongRTCLib +// +// Created by RongCloud on 2021/10/18. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCLiveAudioStatus : NSObject + +/*! + 用户Id + */ +@property (nonatomic, readonly, nullable) NSString *userId; + +/*! + 流Id + */ +@property (nonatomic, readonly, nullable) NSString *streamId; + +/*! + 音量大小, 0 - 9表示音量高低 + */ +@property (nonatomic, readonly) NSInteger audioLevel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLiveInfo.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLiveInfo.h new file mode 100644 index 0000000..fcbc97b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLiveInfo.h @@ -0,0 +1,81 @@ +// +// RCRTCLiveInfo.h +// RongRTCLib +// +// Created by RongCloud on 2019/8/22. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCLibDefine.h" +#import "RCRTCMixConfig.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCLiveInfo : NSObject + +/** + 当前的直播地址(已废弃) + @discussion 新版观众加房间,直接可以拿到直播合流, 单个主播流,使用常规方式订阅即可 + @deprecated from 5.1.0 + */ +@property (nonatomic, copy, readonly) + NSString *liveUrl DEPRECATED_MSG_ATTRIBUTE("audience can join room on 5.1.0 version"); + +/*! + 设置是否开启内置CDN + + @param enable YES开启,NO关闭, 默认是NO + @param completion 动作的回调 + @remarks 资源管理 + */ +- (void)enableInnerCDN:(BOOL)enable completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion; + +/*! + 设置混流布局配置 + + @param config 混流布局配置 + @param completion 动作的回调 + @discussion + 设置混流布局配置 + + @remarks 资源管理 + */ +- (void)setMixStreamConfig:(RCRTCMixConfig *)config + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion + DEPRECATED_MSG_ATTRIBUTE("use setMixConfig:completion: API instead"); + +/*! + 设置混流布局配置 + + @param config 混流布局配置 + @param completion 动作的回调 + @discussion + 设置混流布局配置 + + @remarks 资源管理 + */ +- (void)setMixConfig:(RCRTCMixConfig *)config completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion; + +/*! + 添加一个 CDN 直播推流地址 + + @param url 推流地址 + @param completion 回调 + */ +- (void)addPublishStreamUrl:(NSString *)url + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code, NSArray * _Nullable array))completion; + +/*! + 删除一个 CDN 直播推流地址 + + @param url 要删除的推流地址 + @param completion 回调 + */ +- (void)removePublishStreamUrl:(NSString *)url + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code, NSArray * _Nullable array))completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLocalUser.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLocalUser.h new file mode 100644 index 0000000..8e8e03e --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLocalUser.h @@ -0,0 +1,592 @@ +// +// RCRTCLocalUser.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/9. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCCodeDefine.h" +#import "RCRTCUser.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCOutputStream; +@class RCRTCInputStream; +@class RCMessageContent; + +/*! + 音视频本地用户(当前登陆者) + */ +@interface RCRTCLocalUser : RCRTCUser + +/*! + 本地用户发布的音视频流 + */ +@property (nonatomic, copy, readonly) + NSArray *localStreams DEPRECATED_MSG_ATTRIBUTE("use streams property instead"); + +/*! + 本地用户发布的音视频流 + */ +@property (nonatomic, copy, readonly) NSArray *streams; + +#pragma mark - 用户属性 +/*! + 设置全局用户属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息(也不会收到有用户属性变换的回调) + @param completion 设置完成回调 + @discussion + 设置用户属性 + + @remarks 房间管理 + */ +- (void)setAttributeValue:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use setAttribute:forKey:message:completion: API instead"); + +/*! + 设置全局用户属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息(也不会收到有用户属性变换的回调) + @param completion 设置完成回调 + @discussion + 设置用户属性 + + @remarks 房间管理 + */ +- (void)setAttribute:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 删除全局用户属性 + + @param attributeKeys 属性名称数组 + @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息 + @param completion 删除完成回调 + @discussion + 删除用户属性 + + @remarks 房间管理 + */ +- (void)deleteAttributes:(NSArray *)attributeKeys + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 获取全局用户属性 + + @param attributeKeys 属性名称 + @param completion 获取结果回调 + @discussion + 获取用户属性 + + @remarks 房间管理 + */ +- (void)getAttributes:(NSArray *)attributeKeys + completion:(nullable RCRTCAttributeOperationCallback)completion; + +#pragma mark - 发布资源 +/*! + 发布本地默认音视频流 + + @param completion 发布完成回调 + @discussion + 发布默认音视频流 + + @remarks 资源管理 + */ +- (void)publishDefaultStreams:(nullable RCRTCOperationCallback)completion; + +/*! + 发布本地指定音视频流 + + @param stream 发布的音视频流 + @param completion 发布的音视频流结果 + @discussion + 发布音视频流 + + @remarks 资源管理 + */ +- (void)publishStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +/*! + 发布多路本地指定音视频流 + + @param streams 发布音视频流集合 + @param completion 发布的音视频流结果 + @discussion + 发布多路音视频流 + + @remarks 资源管理 + */ +- (void)publishStreams:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 发布本地默认音视频流,直播模式专用 + + @param completion 发布完成回调 + @discussion + 发布主播默认音视频流, 此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)publishDefaultLiveStreams:(nullable RCRTCLiveOperationCallback)completion; + +/*! + 发布本地指定音视频流,直播模式专用 + + @param stream 发布的音视频流 + @param completion 发布的音视频流结果, 包括此主播的推流 url + @discussion + 发布直播音视频流, 此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)publishLiveStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCLiveOperationCallback)completion; + +#pragma mark - 取消发布资源 +/*! + 取消发布本地默认音视频流 + + @param completion 取消发布完成回调 + @discussion + 取消发布默认音视频流 + + @remarks 资源管理 + */ +- (void)unpublishDefaultStreams:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布本地指定音视频流 + + @param stream 取消发布的音视频流 + @param completion 发布的音视频流结果 + @discussion + 取消发布音视频流 + + @remarks 资源管理 + */ +- (void)unpublishStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布多路本地指定音视频流 + + @param streams 取消发布的音视频流集合 + @param completion 发布的音视频流结果 + @discussion + 取消发布多路音视频流 + + @remarks 资源管理 + */ +- (void)unpublishStreams:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布本地默认音视频流,直播模式专用 + + @param completion 取消发布完成回调 + @discussion + 取消发布默认音视频流,此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)unpublishDefaultLiveStreams:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布本地指定音视频流,直播模式专用 + + @param stream 取消发布的音视频流 + @param completion 发布的音视频流结果 + @discussion + 取消发布音视频流,此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)unpublishLiveStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 订阅资源 +/*! + 订阅多路远端指定音视频流 + + @param avStreams 普通流数组 + @param tinyStreams 小流数组,同一个流只能填写在 avStreams 或 tinyStreams 中的一个数组中 + @param completion 完成的回调 + @discussion + 订阅流 + + @remarks 资源管理 + */ +- (void)subscribeStream:(nullable NSArray *)avStreams + tinyStreams:(nullable NSArray *)tinyStreams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 订阅多路远端指定音视频流 + + @param avStreams 普通流数组 + @param tinyStreams 小流数组,同一个流只能填写在 avStreams 或 tinyStreams 中的一个数组中 + @param callback 完成的回调 + @discussion + 订阅流,callback 返回订阅结果,callback 中 subscribeErrorList 为服务器返回的订阅失败列表;另外可能存在 isSuccess 为 YES,但是 subscribeErrorList 不为空的情况,这种情况是部分订阅成功,用户可以根据业务决定是否对 subscribeErrorList 中的流进行重新订阅 + + @remarks 资源管理 + */ +- (void)subscribeStreams:(nullable NSArray *)avStreams + tinyStreams:(nullable NSArray *)tinyStreams + callback:(nullable RCRTCSubscribeOperationCallback)callback; + +/*! + 观众订阅合流资源 + + @param liveUrl 主播直播的 liveUrl (针对 4x版本的主播兼容方案) + @param streamType 需要具体订阅的媒体类型 + @param completion 完成的回调, 会依次回调合流的 RCRTCInputStream, 根据 streamType 区分是音频流还是视频流, 如主播发布了音视频流, 此回调会回调两次, 分别为音频的 RCRTCInputStream, 和视频的 RCRTCInputStream 。 + @discussion + 仅直播模式可用, 作为观众, 直接观看主播的直播, 通过传入主播的 url, 仅观众端可用,此接口可具体订阅音频流或视频流或大小流 + Added from 5.1.0 + + @remarks 媒体流操作 + */ +- (void)subscribeLiveUrl:(nullable NSString *)liveUrl + streamType:(RCRTCAVStreamType)streamType + completion:(nullable RCRTCLiveUrlCallback)completion; + +#pragma mark - 取消订阅资源 +/*! + 取消订阅远端指定音视频流 + + @param stream 音视频流 + @param completion 音视频流结果 + @discussion + 取消订阅音视频流 + + @remarks 资源管理 + */ +- (void)unsubscribeStream:(nullable RCRTCInputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消订阅多路远端指定音视频流 + + @param streams 音视频流集合 + @param completion 音视频流结果 + @discussion + 取消订阅多路音视频流 + + @remarks 资源管理 + */ +- (void)unsubscribeStreams:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 订阅与取消订阅 +/*! + 同时订阅+取消订阅多路远端指定音视频流 + + 在订阅时, 同一个流只能填写在 subStreams 或 subTinyStreams 中的一个数组中 + 订阅列表与取消订阅列表不能存在重复的音视频流 + + @param subStreams 普通音视频流列表 + @param subTinyStreams 需要携带小流的流数组 + @param unsubStreams 取消订阅的音视频数组 + @param completion 完成的回调 + @discussion + 订阅+取消订阅多路远端指定音视频流 + + @remarks 资源管理 + */ +- (void)subscribeStreams:(nullable NSArray *)subStreams + tinyStreams:(nullable NSArray *)subTinyStreams + unsubscribeStreams:(nullable NSArray *)unsubStreams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 同时订阅+取消订阅多路远端指定音视频流 + + 在订阅时, 同一个流只能填写在 subStreams 或 subTinyStreams 中的一个数组中 + 订阅列表与取消订阅列表不能存在重复的音视频流 + + @param subStreams 普通音视频流列表 + @param subTinyStreams 需要携带小流的流数组 + @param unsubStreams 取消订阅的音视频数组 + @param callback 完成的回调 + @discussion + 订阅+取消订阅多路远端指定音视频流,callback 返回订阅结果,callback 中 subscribeErrorList 为服务器返回的订阅失败列表;另外可能存在 isSuccess 为 YES,但是 subscribeErrorList 不为空的情况,这种情况是部分订阅成功,用户可以根据业务决定是否对 subscribeErrorList 中的流进行重新订阅 + + @remarks 资源管理 + */ +- (void)subscribeStreams:(nullable NSArray *)subStreams + tinyStreams:(nullable NSArray *)subTinyStreams + unsubscribeStreams:(nullable NSArray *)unsubStreams + callback:(nullable RCRTCSubscribeOperationCallback)callback; + +#pragma mark - 跨房间连麦 +/*! + 向指定用户发送跨房间连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param autoMix 是否将被邀请人音视频资源合流到邀请人房间中 + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)requestJoinOtherRoom:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use requestRoomPK:forKey:userId:autoMix:extra:completion: API instead"); + +/*! + 向指定用户发送PK连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param autoMix 是否将被邀请人音视频资源合流到邀请人房间中 + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)requestRoomPK:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消正在进行中的跨房间连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)cancelRequestJoinOtherRoom:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use cancelRequestJoinPK:userId:extra:completion: API instead"); + +/*! + 取消正在进行中的PK连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)cancelRequestJoinPK:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 响应跨房间连麦请求 + + @param inviterRoomId 邀请人所在的房间号 + @param inviterUserId 邀请人userId + @param agree 是否同意加入副房间 + @param autoMix 是否将邀请人音视频资源合流到被邀请人(响应邀请的人)房间中 + @param extra 附加信息, 可随消息发送给邀请人 + @param completion 完成的回调 + @discussion + 取消订阅多路音视频流 + + @remarks 资源管理 + */ +- (void)responseJoinOtherRoom:(nullable NSString *)inviterRoomId + userId:(nullable NSString *)inviterUserId + agree:(BOOL)agree + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use responseRoomPK:userId:agree:autoMix:extra:completion: API instead"); + +/*! + 响应PK连麦请求 + + @param inviterRoomId 邀请人所在的房间号 + @param inviterUserId 邀请人userId + @param agree 是否同意加入副房间 + @param autoMix 是否将邀请人音视频资源合流到被邀请人(响应邀请的人)房间中 + @param extra 附加信息, 可随消息发送给邀请人 + @param completion 完成的回调 + @discussion + 取消订阅多路音视频流 + + @remarks 资源管理 + */ +- (void)responseRoomPK:(nullable NSString *)inviterRoomId + userId:(nullable NSString *)inviterUserId + agree:(BOOL)agree + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 结束PK连麦 + + @param roomId 副房间 Id + @param completion 完成的回调 + @discussion + 通知所有连麦用户结束连麦 + + @remarks 资源管理 + */ +- (void)quitRoomPK:(nullable NSString *)roomId + completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 身份切换 +/*! + 主播切换到观众 + + @param onSucceed 切换成功的回调。 + @param onFailed 切换失败会回调,但不影响当前角色继续音视频。 + @param onKicked 切换失败会回调,SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。 + + @discussion + 当前角色为主播,切换角色到观众,仅限主播使用。 + 如果当前用户加入了 RCRTCOtherRoom 切换为观众时,RTC SDK 内部会帮其退出所有 RCRTCOtherRoom。 + Added from 5.1.9 + */ +- (void)switchToAudienceOnSucceed:(nullable void (^)(void))onSucceed + onFailed:(nullable void (^)(RCRTCCode code))onFailed + onKicked:(nullable void (^)(void))onKicked; + +/*! + 观众切换到主播 + + @param publishStreams 切换成主播后需要发布的流。 + @param onSucceed 切换成功的回调 + @param onFailed 切换失败会回调,但不影响当前角色继续音视频。 + @param onKicked 切换失败会回调,SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。 + + @discussion + 观众切换角色到主播,仅限观众使用。 + Added from 5.1.9 + */ +- (void)switchToBroadcaster:(NSArray *)publishStreams + onSucceed:(nullable void (^)(RCRTCLiveInfo *liveInfo))onSucceed + onFailed:(nullable void (^)(RCRTCCode code))onFailed + onKicked:(nullable void (^)(void))onKicked; + + +/*! + 设置开启 SEI 功能 + + @param enable YES 开启,NO 不开启,默认 NO + @param completion 开启结果的回调 + + @discussion 开启 SEI 功能观众身份调用无效,观众不允许发布流,所以不具备 SEI 能力。 + Added from 5.2.5 +*/ +- (void)setEnableSEI:(BOOL)enable + completion:(void(^)(BOOL isSuccess, RCRTCCode errCode))completion; + +/*! + 发送媒体增强补充信息 + + @param SEI 数据字符 + @discussion 此接口可在开发者推流传输音视频流数据并且[setEnableSEI] 开启SEI 功能的同时,发送流媒体增强补充信息来同步一些其他附加信息。 + 一般如同步音乐歌词或视频画面精准布局等场景,可选择使用发送 SEI。当推流方发送 SEI 后,拉流方可通过 RCRTCRoomEventDelegate 监听 [didReceiveSEI] & [didReceiveLiveStreamSEI] 的回调获取 SEI 内容。由于 SEI 信息跟随视频帧,由于网络问题有可能丢帧,因此 SEI 信息也有可能丢,为解决这种情况,应该在限制频率内多发几次。限制频率:1秒钟不要超过30次。SEI 数据长度限制为 4096 字节。 + @return 0 成功,非 0 失败,返回具体错误码 + Added from 5.2.5 +*/ +- (RCRTCCode)sendSEI:(NSString *)SEI; + +/*! + 开启语音识别服务 + + @param completion 开启语音识别服务回调 + + @discussion + 开启语音识别服务,如果房间内没有人发布流,则无法开启语音识别服务,SDK 会在有人发布流后补偿进行开启语音识别服务 + + @remarks 语音识别 + */ +- (void)startASR:(nullable RCRTCOperationCallback)completion; + +/*! + 停止语音识别服务 + + @param completion 停止语音识别服务回调 + + @discussion + 停止语音识别服务 + + @remarks 语音识别 + */ +- (void)stopASR:(nullable RCRTCOperationCallback)completion; + +/*! + 获取语音识别服务是否可用 + + @return YES 表示语音识别服务已经开启,NO 表示语音识别服务已经停止 + + @discussion + 获取语音识别服务是否可用,非实时查询接口,根据端上缓存进行的判断 + + @remarks 语音识别 + */ +- (BOOL)asrIsAvailable; + +/*! + 开启语音翻译 + @param destLangCode 翻译目标语言码 + + @discussion + 1. 语音翻译依赖语音识别服务,需要在收到 RCRTCRoomEventDelegate 的 didReceiveStartASR 回调后,调用开启语音翻译 + 2. 开启语音翻译,会通过 RCRTCRoomEventDelegate 的 didReceiveRealtimeTranslationContent 回调返回语音翻译结果 + + @remarks 语音识别 + */ +- (void)startRealtimeTranslation:(NSString *)destLangCode copmletion:(nullable RCRTCOperationCallback)completion; + +/*! + 关闭语音翻译 + + @discussion + 关闭语音翻译 + + @remarks 语音识别 + */ +- (void)stopRealtimeTranslation:(nullable RCRTCOperationCallback)completion; + +/*! + 设置是否接收语音识别信息 + @param enable 是否接收语音识别信息 + + @discussion + 设置接收语音识别信息时候,会通过 RCRTCRoomEventDelegate 的 didReceiveASRContent 回调返回语音识别结果 + + @remarks 语音识别 + */ +- (int)setEnableASR:(BOOL)enable; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLocalVideoView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLocalVideoView.h new file mode 100644 index 0000000..41e03a1 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCLocalVideoView.h @@ -0,0 +1,34 @@ +// +// RCLocalPreviewView.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/17. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import +#import "RCRTCVideoPreviewView.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + ⚠️ RCRTCLocalVideoView 即将废弃 , 请使用RCRTCVideoView + + @discussion deprecated from 5.1.10 + */ +__attribute__((deprecated("Class RCRTCLocalVideoView is deprecated , use Class RCRTCVideoView instead"))) + +@interface RCRTCLocalVideoView : RCRTCVideoPreviewView +/*! + 刷新渲染视图 View + + @discussion + 刷新渲染视图 View + + @remarks 视频配置 + */ +- (void)flushVideoView DEPRECATED_MSG_ATTRIBUTE("Method flushVideoView is deprecated"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMediaConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMediaConfig.h new file mode 100644 index 0000000..800ebd9 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMediaConfig.h @@ -0,0 +1,30 @@ +// +// RCRTCMediaConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@class RCRTCVideoConfig; +@class RCRTCAudioConfig; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCMediaConfig : NSObject + +/*! + 视频配置 + */ +@property (nonatomic, strong) RCRTCVideoConfig *videoConfig; + +/*! + 音频配置 + */ +@property (nonatomic, strong) RCRTCAudioConfig *audioConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMicOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMicOutputStream.h new file mode 100644 index 0000000..e3e32cd --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMicOutputStream.h @@ -0,0 +1,113 @@ +// +// RCRTCMicOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/4/16. +// Copyright © 2020年 RongCloud. All rights reserved. +// + +#import "RCRTCAudioMixer.h" +#import "RCRTCAudioOutputStream.h" +#import "RCRTCLibDefine.h" +#import "RCRTCOutputStream.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 麦克风输出流,以麦克风为音频源的音频输出流 + */ +@interface RCRTCMicOutputStream : RCRTCAudioOutputStream + +/*! + 麦克风的音量,范围:0~200,默认值:100 + */ +@property (nonatomic, assign) NSUInteger recordingVolume; + +/*! + 音频码率 +*/ +@property (nonatomic, assign, readwrite) NSInteger bitrateValue; + +/*! + 音频编解码方式 + 默认: OPUS + */ +@property (nonatomic, assign, readwrite) RCRTCAudioCodecType audioCodecType; + +/*! + 音频通话质量 + 默认: 人声音质,RCRTCAudioQualitySpeech + */ +@property (nonatomic, assign, readonly) RCRTCAudioQuality audioQuality; + +/*! + 音频通话模式 + 默认: 普通通话模式,RCRTCAudioScenarioDefault + */ +@property (nonatomic, assign, readonly) RCRTCAudioScenario audioScenario; + +/*! + 本地发送的音频数据(合流)回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioDataCallback willSendAudioBufferCallback; + +/*! + 麦克风的音频数据回调 + added from 5.1.6 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback recordAudioDataCallback; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultAudioStream 获取实例。 + + @remarks 资源管理 + @return 失败 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultAudioStream 获取实例。 + + @remarks 资源管理 + @return 失败 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 关闭/打开麦克风 + + @param disable YES 关闭,NO 打开 + @discussion + 关闭/打开麦克风 + + @remarks 音频配置 + */ +- (void)setMicrophoneDisable:(BOOL)disable; + +/*! + 设置音频通话质量和音频通话模式 + + @param audioQuality 音频通话质量, audioScenario 音频通话模式 + @discussion + 设置音频通话质量和音频通话模式 + + @remarks 音频流处理 + @return 设置是否成功 + */ +- (BOOL)setAudioQuality:(RCRTCAudioQuality)audioQuality Scenario:(RCRTCAudioScenario)audioScenario; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMixConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMixConfig.h new file mode 100644 index 0000000..893f3f7 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCMixConfig.h @@ -0,0 +1,136 @@ +// +// RCRTCMixConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCCustomLayout.h" +#import "RCRTCCustomMixAudio.h" +#import "RCRTCMediaConfig.h" +#import "RCRTCStream.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCRTCMixLayoutMode) { + /*! + 自定义布局 + */ + RCRTCMixLayoutModeCustom = 1, + /*! + 悬浮布局 + */ + RCRTCMixLayoutModeSuspension = 2, + /*! + 自适应布局 + */ + RCRTCMixLayoutModeAdaptive = 3 +}; + +typedef NS_ENUM(NSInteger, RCRTCMixMediaType) { + /*! + 音频 + */ + RCRTCMixMediaType_Audio = 1, + /*! + 视频 + */ + RCRTCMixMediaType_Video = 2, + /*! + 音视频 + */ + RCRTCMixMediaType_AV = 3 +}; + +@interface RCRTCMixConfig : NSObject + +/*! + 合流服务版本,不支持修改 + + @discussion + 从 5.1.1 版本,version 变更为 2 + */ +@property (nonatomic, assign, readonly) NSInteger version; + +/*! + 合流布局模式 + + 1:自定义布局,需要设置 customLayouts 2:悬浮布局 3:自适应布局 + */ +@property (nonatomic, assign) RCRTCMixLayoutMode layoutMode; + +/** + mode 为 2 或者 3 时可用,作用将此 stream 置顶,必须为视频流 + */ +@property (nonatomic, strong, nullable) RCRTCStream *hostVideoStream; + +/*! + 自定义模式开关 + + @discussion + 1. version == 1 时,customMode 字段不传, 保持上次逻辑不变,上次是按需订阅,就按需订阅。 + 2. version == 2 时,customMode == YES,按自定义视频布局列表 customLayouts,自定义混音音频列表 customMixAudios 来筛选。 + 2.1 当 customLayouts == nil,按之前逻辑通过设置 layoutMode 控制合流; + 2.2 当 customLayouts != nil,且 customLayouts.count == 0,所有视频流都不合流; + 2.3 当 customLayouts != nil,且 customLayouts.count != 0,layoutMode == 2 || layoutMode == 3,按 customLayouts 列表指定的视频流进行合流,但里面的 x,y,width,height 不会生效; + 2.4 当 customLayouts != nil,且 customLayouts.count != 0,layoutMode == 1,按 customLayouts 列表指定的视频流进行合流,并且按照设置的 x,y,width,height 进行布局; + 2.5 当 customMixAudios == nil,可参与合流的音频流和之前保持一致; + 2.6 当 customMixAudios != nil,且 customMixAudios.count == 0,所有音频流都不合流; + 2.7 当 customMixAudios != nil,且 customMixAudios.count != 0,按照 customMixAudios 列表指定的音频流进行合流; + 3. version == 2 时,customMode == NO,取消之前设置过的参数筛选配置 + Added from 5.1.1 + */ +@property (nonatomic, assign) BOOL customMode; + +/*! + 自定义视频流列表,SDK 根据输入视频流列表中的流进行混流,效果为设置其他人的窗口排版 + */ +@property (nonatomic, strong) NSMutableArray *customLayouts; + +/*! + 自定义音频流列表,SDK 根据输入音频流列表中的流进行混流 + + @discussion + Added from 5.1.1 + */ +@property (nonatomic, strong) NSMutableArray *customMixAudios; + +/*! + 合流音视频配置,包括音频和视频 + */ +@property (nonatomic, strong) RCRTCMediaConfig *mediaConfig; + +/*! + 设置 MCU 混流配置 + + @param mixVideos 视频输入混流列表,为 nil 代表视频全混流,为空数组代表视频全不混流,否则按输入列表进行混流 + @param mixAudios 音频输入混流列表,为 nil 代表音频全混流,为空数组代表音频全不混流,否则按输入列表进行混流 + @discussion + 通过传入音频、视频混流列表,设置 MCU 的音视频混流 + + @remarks RCRTCMixConfig:混流操作 + Added from 5.1.3 + */ +- (void)setMixInputFilterByStreams:(nullable NSArray *)mixVideos + mixAudios:(nullable NSArray *)mixAudios; + +/*! + 设置 MCU 混流配置 + + @param roomIds 混流房间列表 + @param mixMediaType 混流媒体类型 + @param isAppend 是否为增量混流,YES 为增量混流,NO 为全量覆盖混流 + @discussion + 通过传入混流房间列表,设置 MCU 的音视频混流 + + @remarks RCRTCMixConfig:混流操作 + Added from 5.1.3 + */ +- (void)setMixInputFilterByRoomIds:(nullable NSArray *)roomIds + mixMediaType:(RCRTCMixMediaType)mixMediaType + isAppend:(BOOL)isAppend; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOtherRoom.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOtherRoom.h new file mode 100644 index 0000000..33002be --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOtherRoom.h @@ -0,0 +1,24 @@ +// +// RCRTCOtherRoom.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/3. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCBaseRoom.h" +#import "RCRTCOtherRoomEventDelegate.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCOtherRoom : RCRTCBaseRoom + +/*! + 副房间代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOtherRoomEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOtherRoomEventDelegate.h new file mode 100644 index 0000000..8025ea1 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOtherRoomEventDelegate.h @@ -0,0 +1,205 @@ +// +// RCRTCOtherRoomEventDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#ifndef RCRTCOtherRoomEventDelegate_h +#define RCRTCOtherRoomEventDelegate_h + +#import +#import + +@class RCRTCRemoteUser; +@class RCRTCInputStream; +@class RCRTCRoom; +@class RCRTCBaseRoom; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频通话的房间代理, 实现这个代理之后房间成员变化以及资源的变化都会通过代理通知给您 + */ +@protocol RCRTCOtherRoomEventDelegate + +@optional + +/*! + 有用户加入的回调, 此时 user 不包含任何资源, 只是标记有人加入, 此时无法订阅这个人的流 + + @param room 用户所在房间 + @param user 加入的用户信息 + @discussion + 有用户加入的回调, 此时 user 不包含任何资源, 只是标记有人加入, 此时无法订阅这个人的流 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didJoinUser:(nullable RCRTCRemoteUser *)user; + +/*! + 有用户离开时的回调, 当有用户离开的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @param room 用户所在房间 + @param user 离开的用户 + @discussion + 有用户离开时的回调, 当有用户离开的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didLeaveUser:(nullable RCRTCRemoteUser *)user; + +/*! + 有用户掉线时的回调, 当有用户掉线的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @param room 用户所在房间 + @param user 掉线的用户 + @discussion + 有用户掉线时的回调, 当有用户掉线的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didOfflineUser:(nullable RCRTCRemoteUser *)user; + +/*! + 副房间远端用户切换身份通知 + + @param room 用户所在房间 + @param user 切换身份的用户 + @param roleType 该用户当前的身份 + + @discussion + 当副房间用户切换身份的时候,副房间内其他主播会收到该消息。 + 如果订阅了当前 user 的流,SDK 会主动取消订阅,不需要手动取消订阅。 + added from 5.2.6 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didSwitchRoleWithUser:(RCRTCRemoteUser *)user roleType:(RCRTCLiveRoleType)roleType; + +/*! + 订阅远端资源成功后, 音频或视频首帧到达通知 + + @param room 事件所在房间 + @param stream 开始接收数据的 stream + @param mediaType 数据流类型(如视频流、音频流) + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didReportFirstFrame:(nullable RCRTCInputStream *)stream mediaType:(RCRTCMediaType)mediaType; + +/*! + 当有远端用户发布资源时, 通过此方法回调通知上报该用户发布的流 + + @param room 事件所在房间 + @param streams 用户发布的资源信息 + @discussion + 当有远端用户发布资源时, 通过此方法回调通知上报该用户发布的流, 其中流中有 + userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, + 可调用订阅接口, 订阅其中的流 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didPublishStreams:(NSArray *)streams; + +/*! + 当有远端用户取消发布资源时, 通过此方法回调, SDK 默认会取消订阅这些流, 其中流中有 + userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, + APP 可根据这些关键信息自定义化, 无需再次调用取消订阅接口 + + @param streams 取消发布资源 + @discussion + 当有远端用户取消发布资源时, 通过此方法回调, SDK 默认会取消订阅这些流, 其中流中有 + userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, + APP 可根据这些关键信息自定义化, 无需再次调用取消订阅接口 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didUnpublishStreams:(NSArray *)streams; + +/*! + 接收到副房间内远端用户发送的 SEI 通知 + + @param room 事件所在房间 + @param SEI sei 数据 + @param userId 用户id + @discussion 监听远端用户发送的 SEI 内容,通过 userId 区分。 + Added from 5.2.5 + + @remarks 代理 + */ +- (void)room:(RCRTCBaseRoom *)room didReceiveSEI:(NSString *)SEI userId:(NSString *)userId; + +/*! + 音频状态改变 + + @param stream 流信息 + @param mute 当前流是否可用 + @discussion + 音频状态改变 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room stream:(nullable RCRTCInputStream *)stream didAudioMute:(BOOL)mute; + +/*! + 视频状态改变 + + @param stream 流信息 + @param enable 当前流是否可用 + @discussion + 视频状态改变 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room stream:(nullable RCRTCInputStream *)stream didVideoEnable:(BOOL)enable; + +/*! + 接收到其他人发送到 room 里的消息 + + @param message 消息体, 参考 IMLib 中 RCMessage + @discussion + 接收到其他人发送到 room 里的消息 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didReceiveMessage:(RCMessage *)message; + +/*! + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, + 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @param room 离开的房间 + @discussion + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, + 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @remarks 代理 + */ +- (void)didKickedOutOfTheRoom:(nullable RCRTCRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked:reason: instead"); + +/*! + 如果用户在房间内, 此时收到服务器封禁的通知, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @param room 离开的房间 + @discussion + 如果用户在房间内, 此时收到服务器封禁的通知, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @remarks 代理 + */ +- (void)didKickedOtherRoomByServer:(nullable RCRTCBaseRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked:reason: instead"); + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RongRTCRoomDelegate_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOutputStream.h new file mode 100644 index 0000000..c8e7392 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCOutputStream.h @@ -0,0 +1,51 @@ +// +// RCRTCOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/8. +// Copyright © 2019年 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCStream.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 本地输出音视频流 + */ +@interface RCRTCOutputStream : RCRTCStream + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCOutputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCOutputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProbeStatusForm.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProbeStatusForm.h new file mode 100644 index 0000000..333f7b4 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProbeStatusForm.h @@ -0,0 +1,39 @@ +// +// RCRTCProbeStatusForm.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/21. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCRTCProbeQualityLevel) { + RCRTCProbeQualityLevel_Excellent, + RCRTCProbeQualityLevel_Good, + RCRTCProbeQualityLevel_Pool, + RCRTCProbeQualityLevel_Bad, + RCRTCProbeQualityLevel_VeryBad, + RCRTCProbeQualityLevel_Down, +}; + +typedef NS_ENUM(NSInteger, RCRTCStreamDirection) { + RCRTCStreamDirection_UpLink = 1, + RCRTCStreamDirection_DownLink = 2, +}; + +@class RCRTCBaseStat; +/// Add from 5.1.17 +@interface RCRTCProbeStatusForm : NSObject + +@property (nonatomic, readonly) RCRTCProbeQualityLevel qualityLevel; + +@property (nonatomic, readonly) RCRTCStreamDirection direction; + +@property (nonatomic, readonly) RCRTCBaseStat *stat; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProbeTestDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProbeTestDelegate.h new file mode 100644 index 0000000..218bdbf --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProbeTestDelegate.h @@ -0,0 +1,36 @@ +// +// RCRTCProbeTestDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/16. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCProbeStatusForm; + +/// Add from 5.1.17 +@protocol RCRTCProbeTestDelegate + +/*! + 汇报探测状态数据 + */ +- (void)didReportProbeForms:(NSArray *)forms; + +/*! + 探测完成 + */ +- (void)didRTCProbeComplete; + +/*! + 探测中断 + */ +- (void)didRTCProbeInterrput:(RCRTCCode)errorCode; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProxy.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProxy.h new file mode 100644 index 0000000..1dd788d --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCProxy.h @@ -0,0 +1,57 @@ +// +// RCRTCProxyInfo.h +// RongRTCLib +// +// Created by RongCloud on 2022/09/06. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCProxy : NSObject + +/*! + 代理地址, 默认值: @"", 非 nil 或非 @"" 时有效 + */ +@property (nonatomic, copy) NSString *host; + +/*! + 代理地址对应IP, 只读, 不可设置 + */ +@property (nonatomic, copy, readonly) NSString *ip; + +/*! + 代理端口, 默认值: -1, 大于 0 时有效 + */ +@property (nonatomic, assign) NSInteger port; + +/*! + 代理服务登录用户名, 默认值: @"" + 如果需要则填写, 不需要可不填写, + userName 与 password 同时非 nil 或非 @"" 时有效 + */ +@property (nonatomic, copy) NSString *userName; + +/*! + 代理服务登录密码, 默认值: @"" + 如果需要则填写, 不需要可不填写, + userName 与 password 同时非 nil 或非 @"" 时有效 + */ +@property (nonatomic, copy) NSString *password; + +/*! + 可通过代理服务连接的协议类型, 默认值: RCRTCProxyOptionsAll, 全支持 + */ +@property (nonatomic, assign) RCRTCProxyOptions proxyOption; + +/*! + 验证设置数据是否有效 + */ +- (BOOL)isValid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRemoteUser.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRemoteUser.h new file mode 100644 index 0000000..b3b5f8f --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRemoteUser.h @@ -0,0 +1,53 @@ +// +// RCRTCRemoteUser.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/9. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCInputStream.h" +#import "RCRTCUser.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频远端用户 + */ +@interface RCRTCRemoteUser : RCRTCUser + +/*! + 获取该远端用户发布的所有音视频流 + */ +@property (nonatomic, copy, readonly) NSArray *remoteStreams; + +/*! + 将一个视频流切换成小码率视频流 + + @param streams 要切换的流 + @param completion 切换是否成功 + @discussion + 将一个视频流切换成小码率视频流 + + @remarks 资源管理 + */ +- (void)switchToTinyStream:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 将一个视频流切换成正常码率视频流 + + @param streams 要切换的视频流 + @param completion 切换是否成功 + @discussion + 将一个视频流切换成正常码率视频流 + + @remarks 资源管理 + */ +- (void)switchToNormalStream:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRemoteVideoView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRemoteVideoView.h new file mode 100644 index 0000000..c0cb687 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRemoteVideoView.h @@ -0,0 +1,24 @@ +// +// RCRemoteVideoView.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/17. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import "RCRTCVideoPreviewView.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + ⚠️ RCRTCRemoteVideoView 即将废弃 , 请使用RCRTCVideoView + + @discussion deprecated from 5.1.10 + */ +__attribute__((deprecated("Class RCRTCRemoteVideoView is deprecated , use Class RCRTCVideoView instead"))) + +@interface RCRTCRemoteVideoView : RCRTCVideoPreviewView + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoom.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoom.h new file mode 100644 index 0000000..be40c16 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoom.h @@ -0,0 +1,77 @@ +// +// RCRTCRoom.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCBaseRoom.h" +#import "RCRTCRoomEventDelegate.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCLocalUser; +@class RCRTCCDNInputStream; + +/*! + 音视频通话的房间 + */ +@interface RCRTCRoom : RCRTCBaseRoom + +/*! + 房间事件代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 当前用户 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCLocalUser *localUser; + +/*! + 主房间中主播已经加入的副房间Id列表 + */ +@property (nonatomic, strong, readonly) NSArray *otherRoomIdArray; + +/*! + 远端音频数据(合流)回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioDataCallback receivedAudioBufferCallback; + +/*! + 设置所有远端用户是否静音 + + @param mute 是否静音所有远端用户, YES 禁止 NO 允许 + @discussion + 将所有远端用户静音, 注: 该功能只是不播放接收到的音频数据 + + @remarks 音频流处理 + */ +- (void)muteAllRemoteAudio:(BOOL)mute; + +/*! + 获取直播合流数组 + + @discussion + 只要有主播就会存在, 房间内没有主播则为 空数组 + Added from 5.1.0 + + @remarks 资源管理 + */ +- (NSArray *)getLiveStreams; + +/*! + 获取CDN流 + + @discussion + 只要有房间有cdn流发布 + + @remarks 资源管理 + */ +- (nullable RCRTCCDNInputStream *)getCDNStream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoomConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoomConfig.h new file mode 100644 index 0000000..d9207ad --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoomConfig.h @@ -0,0 +1,60 @@ +// +// RCRTCRoomConfig.h +// RongRTCLib +// +// Created by RongCloud on 2019/5/21. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCRoomConfig : NSObject + +/*! + 语音识别源语言 + */ +@property (nonatomic, copy) NSString *srcLanguageCode; + +/*! + 加入房间场景, 默认值: RCRTCRoomTypeNormal + */ +@property (nonatomic, assign) RCRTCRoomType roomType; + +/*! + 直播类型,仅在 RCRTCRoomType 为 RCRTCRoomTypeLive 时可用,选择当前为音频直播还是音视频直播, 默认值: RCRTCLiveTypeAudioVideo + */ +@property (nonatomic, assign) RCRTCLiveType liveType; + +/*! + 直播角色类型,仅在 RCRTCRoomType 为 RCRTCRoomTypeLive 时可用,默认值: RCRTCLiveRoleTypeBroadcaster + + @discussion add from 5.1.0 + */ +@property (nonatomic, assign) RCRTCLiveRoleType roleType; + +/*! + 加入房间类型, 同一 UserID 多端加入房间时的处理类型 + */ +@property (nonatomic, assign) RCRTCJoinRoomType joinType; + +/*! +设置用户属性 + */ +@property (nonatomic, copy, nullable) NSDictionary *localUserDatas; + +/*! + 离开房间是否停止混音和短音效,默认值:YES + */ +@property (nonatomic, assign) BOOL stopAudioMixer; + +/*! + 请求超时时间,默认值:30s + */ +@property (nonatomic, assign) NSInteger timeout; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoomEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoomEventDelegate.h new file mode 100644 index 0000000..48e2142 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCRoomEventDelegate.h @@ -0,0 +1,383 @@ +// +// RCRTCRoomEventDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#ifndef RongRTCRoomDelegate_h +#define RongRTCRoomDelegate_h + +#import +#import + +@class RCRTCRemoteUser; +@class RCRTCAudioInputStream; +@class RCRTCVideoInputStream; +@class RCRTCRoom; +@class RCRTCCDNInputStream; +@class RCRTCASR; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频通话的房间代理, 实现这个代理之后房间成员变化以及资源的变化都会通过代理通知给您 + */ +@protocol RCRTCRoomEventDelegate + +@optional + +/*! + 语音识别服务开启通知回调 + + @remarks 代理 + */ +- (void)didReceiveStartASR; + +/*! + 语音识别服务停止通知回调 + + @remarks 代理 + */ +- (void)didReceiveStopASR; + +/*! + 语音识别信息回调 + + @param asrContent 语音识别信息 + + @remarks 代理 + */ +- (void)didReceiveASRContent:(RCRTCASRContent *)asrContent; + +/*! + 语音翻译结果回调 + + @param content 语音翻译结果 + + @remarks 代理 + */ +- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content; + +/*! + 远端用户加入通知 + + @param user 加入的用户信息 + @discussion + 有用户加入的回调, 此时 user 不包含任何资源, 只是标记有人加入, 此时无法订阅这个人的流 + + @remarks 代理 + */ +- (void)didJoinUser:(RCRTCRemoteUser *)user; + +/*! + 远端用户离开通知 + + @param user 离开的用户 + @discussion + 有用户离开时的回调, 当有用户离开的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)didLeaveUser:(RCRTCRemoteUser *)user; + +/*! + 远端用户切换身份通知 + + @param user 切换身份的用户 + @param roleType 该用户当前的身份 + + @discussion + 有切换身份时的回调,当有用户切换身份的时候,当前房间内其他主播会收到该消息。 + 如果订阅了当前 user 的流,SDK 会主动取消订阅,不需要手动取消订阅。 + added from 5.1.9 + + @remarks 代理 + */ +- (void)didSwitchRoleWithUser:(RCRTCRemoteUser *)user roleType:(RCRTCLiveRoleType)roleType; + + +/*! + 远端用户掉线通知 + + @param user 掉线的用户 + @discussion + 有用户掉线时的回调, 当有用户掉线的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)didOfflineUser:(RCRTCRemoteUser *)user; + +/*! + 第一个视频关键帧到达通知 + + @param stream 开始接收数据的 stream + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)didReportFirstKeyframe:(RCRTCVideoInputStream *)stream + DEPRECATED_MSG_ATTRIBUTE("use RCRTCRoomEventDelegate.h didReportFirstFrame:mediaType: instead"); + +/*! + 加入房间后, 第一个音频关键帧到达通知 + + @param stream 开始接收数据的 stream + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)didReportFirstAudioFrame:(RCRTCAudioInputStream *)stream + DEPRECATED_MSG_ATTRIBUTE("use RCRTCRoomEventDelegate.h didReportFirstFrame:mediaType: instead"); + +/*! + 订阅远端资源成功后, 音频或视频首帧到达通知 + + @param stream 开始接收数据的 stream + @param mediaType 数据流类型(如视频流、音频流) + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)didReportFirstFrame:(RCRTCInputStream *)stream mediaType:(RCRTCMediaType)mediaType; + +/*! + 远端用户发布资源通知 + + @param streams 用户发布的资源信息 + @discussion + 当有远端用户发布资源时, 通过此方法回调通知上报该用户发布的流, 其中流中有 userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, 可调用订阅接口, 订阅其中的流 + + @remarks 代理 + */ +- (void)didPublishStreams:(NSArray *)streams; + +/*! + 远端用户取消发布资源通知 + + @param streams 取消发布资源 + @discussion + 当有远端用户取消发布资源时, 通过此方法回调, SDK 默认会取消订阅这些流, 其中流中有 userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, APP 可根据这些关键信息自定义化, 无需再次调用取消订阅接口 + + @remarks 代理 + */ +- (void)didUnpublishStreams:(NSArray *)streams; + +/*! + 远端直播合流发布资源通知 + + @param streams 发布的直播资源 + @discussion + 当直播存在的时候(只要有一个主播存在),直播合流就存在,代理会通知到用户liveStreams已经发布 + 用户可以使用RCRTCLocal.h 里面的 subscribeStream:tinyStreams:completion: api去订阅. + Added from 5.1.0 + + @remarks 代理 + */ +- (void)didPublishLiveStreams:(NSArray *)streams; + +/*! + 远端直播合流取消发布资源通知 + + @param streams 取消发布的直播资源 + @discussion + 当房间内没有任何主播在发布资源的时候, 直播的合流就不存在了, + 代理会通知到用户liveStreams已经取消发布,sdk内部会主动取消订阅一次,用户也可以进行一次取消订阅合流. + Added from 5.1.0 + + @remarks 代理 + */ +- (void)didUnpublishLiveStreams:(NSArray *)streams; + +/*! + 远端CDN流发布资源通知 + + @param stream 发布的CDN资源 + @discussion + Added from 5.1.5 + + @remarks 代理 + */ +- (void)didPublishCDNStream:(RCRTCCDNInputStream *)stream; + +/*! + 远端CDN流取消发布资源通知 + + @param stream 取消发布的CDN资源 + @discussion + Added from 5.1.5 + + @remarks 代理 + */ +- (void)didUnpublishCDNStream:(RCRTCCDNInputStream *)stream; + +/*! + 接收到远端用户发送的 SEI 通知 + + @param SEI sei 数据 + @param userId 用户id + @discussion 监听远端用户发送的 SEI 内容,通过 userId 区分。 + Added from 5.2.5 + + @remarks 代理 + */ +- (void)didReceiveSEI:(NSString *)SEI userId:(NSString *)userId; + +/*! + 观众接收到合流 SEI 通知 + + @param SEI sei 数据 + @discussion 观众角色订阅 liveStreams 后,该回调会接收以下两种类型的数据。 + 1.mcu server 会主动通过该接口回调主播合流布局的信息 {"mcuRoomState":"xxx"} + 2.如果远端主播有发送 SEI,可以通过此回调接收数据。 + Added from 5.2.5 + + @remarks 代理 + */ +- (void)didReceiveLiveStreamSEI:(NSString *)SEI; + +/*! + 接收到其他人发送到 room 里的消息 + + @param message 消息体, 参考 IMLib 中 RCMessage + @discussion + 接收到其他人发送到 room 里的消息 + + @remarks 代理 + */ +- (void)didReceiveMessage:(RCMessage *)message; + +/*! + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @param room 离开的房间 + @discussion + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + @deprecated from 5.1.0 + + @remarks 代理 + */ +- (void)didKickedOutOfTheRoom:(RCRTCRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked instead"); + +/*! + 被服务端踢下线通知 + + @param room 离开的房间 + @discussion + 如果用户在房间内, 此时收到服务器封禁的通知, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + @deprecated from 5.1.0 + + @remarks 代理 + */ +- (void)didKickedByServer:(RCRTCBaseRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked instead"); + +/*! + 远端用户音频静默改变通知 + + @param stream 流信息 + @param mute 当前流是否可用 + @discussion + 音频状态改变 + + @remarks 代理 + */ +- (void)stream:(RCRTCInputStream *)stream didAudioMute:(BOOL)mute; + +/*! + 远端用户视频静默改变通知 + + @param stream 流信息 + @param enable 当前流是否可用 + @discussion + 视频状态改变 + + @remarks 代理 + */ +- (void)stream:(RCRTCInputStream *)stream didVideoEnable:(BOOL)enable; + +#pragma mark - 邀请跨房间连麦 +/*! + 其他房间邀请人调用 RCRTCLocalUser 类中 requestJoinOtherRoom:userId:autoMix:extra:completion: 方法, + 定向发起连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @param inviterRoomId 邀请人所在房间号 + @param inviterUserId 邀请人的用户Id + @param extra 自定义扩展信息, 邀请人发起邀请时填写的自定义扩展信息 + @discussion + 其他房间邀请人定向发起连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @remarks 代理 + */ +- (void)didRequestJoinOtherRoom:(NSString *)inviterRoomId + inviterUserId:(nullable NSString *)inviterUserId + extra:(nullable NSString *)extra; + +/*! + 其他房间邀请人调用 RCRTCLocalUser 类中 cancelRequestJoinOtherRoom:userId:extra:completion: 方法, + 取消之前发起的连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @param inviterRoomId 邀请人所在房间号 + @param inviterUserId 邀请人的用户Id + @param extra 自定义扩展信息, 邀请人取消邀请时填写的自定义扩展信息 + @discussion + 其他房间邀请人取消之前发起的连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @remarks 代理 + */ +- (void)didCancelRequestOtherRoom:(NSString *)inviterRoomId + inviterUserId:(nullable NSString *)inviterUserId + extra:(nullable NSString *)extra; + +/*! + 被邀请人调用 RCRTCLocalUser 类中 responseJoinOtherRoom:userId:agree:autoMix:extra:completion: 方法, + 被邀请人应答同意连麦邀请后, 邀请人及其房间中其他非观众用户收到的回调 + 被邀请人应答拒绝连麦邀请后, 只有邀请人收到的回调, 其他用户不会收到此回调 + + @param inviterRoomId 邀请人所在房间号 + @param inviterUserId 邀请人的用户Id + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人的用户Id + @param agree 被邀请人同意/拒绝 + @param extra 自定义扩展信息, 被邀请人应答时填写的自定义扩展信息 + @discussion + 被邀请人应答同意连麦邀请后, 邀请人及其房间中其他非观众用户收到的回调 + 被邀请人应答拒绝连麦邀请后, 只有邀请人收到的回调, 其他用户不会收到此回调 + + @remarks 代理 + */ +- (void)didResponseJoinOtherRoom:(nullable NSString *)inviterRoomId + inviterUserId:(nullable NSString *)inviterUserId + inviteeRoomId:(nullable NSString *)inviteeRoomId + inviteeUserId:(nullable NSString *)inviteeUserId + agree:(BOOL)agree + extra:(nullable NSString *)extra; + +/*! + 结束连麦用户在调用 RCRTCEngine 类中 leaveOtherRoom:notifyFinished:completion: 方法时, + 如果将 notifyFinished 对应的参数填写为 YES, 正在跨房间连麦的所有用户将会收到此回调, 否则不会收到此回调 + + @param roomId 结束连麦用户所在房间号 + @param userId 结束连麦用户Id + @discussion + 结束连麦用户在调用 leaveOtherRoom:notifyFinished:completion: 方法时, + 如果将 notifyFinished 对应的参数填写为 YES, 正在跨房间连麦的所有用户将会收到此回调, 否则不会收到此回调 + + @remarks 代理 + */ +- (void)didFinishOtherRoom:(NSString *)roomId userId:(NSString *)userId; + + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RongRTCRoomDelegate_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCScreenShareOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCScreenShareOutputStream.h new file mode 100644 index 0000000..d09513b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCScreenShareOutputStream.h @@ -0,0 +1,30 @@ +// +// RCRTCScreenShareOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2021/8/24. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +/* + Added from 5.1.8 + */ +@interface RCRTCScreenShareOutputStream : RCRTCVideoOutputStream + +/*! + 音频数据回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback audioDataCallback; + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)new NS_UNAVAILABLE; + +- (instancetype)initVideoOutputStreamWithTag:(NSString *)tag NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStatusForm.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStatusForm.h new file mode 100644 index 0000000..f3bfbaa --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStatusForm.h @@ -0,0 +1,94 @@ +// +// RCRTCStatusForm.h +// RongRTCLib +// +// Created by RongCloud on 2019/5/30. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCGlobals.h" +#import "RCRTCLibDefine.h" +#import "RCRTCStreamStat.h" + +NS_ASSUME_NONNULL_BEGIN + +RONGRTCLIB_EXTERN NSString *const RongRTCMediaTypeVideo; +RONGRTCLIB_EXTERN NSString *const RongRTCMediaTypeAudio; + +typedef NS_ENUM(NSInteger, RongRTCStreamState) { Equivocal = -1, Disabled = 0, Enabled = 1 }; + +/*! + sdk 状态统计表 + */ +@interface RCRTCStatusForm : NSObject + +/*! + cpu 使用率 + */ +@property (nonatomic, readonly) float cpuUsage; + +/*! + 上行码率 + */ +@property (nonatomic, readonly) float totalSendBitRate; + +/*! + 下行码率 + */ +@property (nonatomic, readonly) float totalRecvBitRate; + +/*! + 系统 cpu 使用率 + */ +@property (nonatomic, readonly) float cpuUsageOfOS; + +/*! + 网络类型,wlan 4g + */ +@property (nonatomic, readonly, nullable) NSString *networkType; + +/*! + 往返时间 + */ +@property (nonatomic, readonly) NSInteger rtt; + +/*! + ip 地址 + */ +@property (nonatomic, readonly, nullable) NSString *ipAddress; + +/*! + 可接收带宽 + */ +@property (nonatomic, readonly) NSInteger availableReceiveBandwidth; + +/*! + 可发送带宽 + */ +@property (nonatomic, readonly) NSInteger availableSendBandwidth; + +/*! + 发送端丢包数 + */ +@property (nonatomic, readonly) NSInteger packetsDiscardedOnSend; + +/*! + 上行 媒体流状态统计 数组 + */ +@property (nonatomic, readonly) NSArray *sendStats; + +/*! + 下行 媒体流状态统计 数组 + */ +@property (nonatomic, readonly) NSArray *recvStats; + +/*! + 通过 trackId 查找到此 Track 所属的 UserId + */ ++ (NSString *)fetchUserIdFromTrackId:(NSString *)trackId + DEPRECATED_MSG_ATTRIBUTE("use RCRTCStreamStat userId property instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStatusReportDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStatusReportDelegate.h new file mode 100644 index 0000000..d21d2a3 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStatusReportDelegate.h @@ -0,0 +1,45 @@ +// +// RCRTCStatusReportDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2019/6/12. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCStatusForm; +@class RCRTCLiveAudioStatus; + +@protocol RCRTCStatusReportDelegate + +/*! + 汇报 SDK 状态数据 + + @param form 状态表单对象 + @discussion + 汇报 SDK 状态数据 + + @remarks 代理 + */ +- (void)didReportStatusForm:(RCRTCStatusForm *)form; + +@optional +/*! + 汇报直播音频合流音声状态 + + @param audioStatus 音频流声音状态 + @discussion + 当前用户订阅了直播音频合流,汇报合流声音状态,例如当前音频合流有 A B C 三个主播的声音, + 此时 A 在发声,audioStatus 数组里面就会上报 A 的 audioLevel [0 ~ 9] + + + @remarks 代理 + */ +- (void)didReportLiveAudioStatus:(NSArray *)audioStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStream.h new file mode 100644 index 0000000..bf755d0 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStream.h @@ -0,0 +1,88 @@ +// +// RCRTCStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/5/18. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频流 + */ +@interface RCRTCStream : NSObject + +/*! + 媒体流 ID + */ +@property (nonatomic, copy, readonly, nullable) NSString *streamId; + +/*! + 媒体流类型 + */ +@property (nonatomic, assign, readonly) RCRTCMediaStreamType mediaStreamType; + +/*! + 媒体类型 + */ +@property (nonatomic, assign, readonly) RCRTCMediaType mediaType; + +/*! + 媒体流扩展标识符 + */ +@property (nonatomic, copy, readonly, nullable) NSString *tag; + +/*! + 媒体流所属的用户 ID + */ +@property (nonatomic, copy, readonly, nullable) NSString *userId; + +/*! + 媒体流资源状态 + */ +@property (nonatomic, assign, readonly) RCRTCResourceState resourceState; + +/*! + 媒体流禁用状态 + 注: + 1. 对于远端流(输入流),只是不解码视频与音频,但是音视频数据是正常接收的,如果不想接收数据可以进行取消订阅远端流 + 2. 对于本地流(输出流),不编码和发送音视频数据,不影响采集。 + */ +@property (nonatomic, assign, readwrite) BOOL isMute; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStreamStat.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStreamStat.h new file mode 100644 index 0000000..a880d08 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCStreamStat.h @@ -0,0 +1,31 @@ +// +// RCRTCStreamStat.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import "RCRTCBaseStat.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCStreamStat : RCRTCBaseStat +/*! + trackId + */ +@property (nonatomic, readonly) NSString *trackId DEPRECATED_MSG_ATTRIBUTE("use streamId property instead"); + +/*! + 流Id + */ +@property (nonatomic, readonly, nullable) NSString *streamId; + +/*! + 用户Id + */ +@property (nonatomic, readonly, nullable) NSString *userId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCUser.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCUser.h new file mode 100644 index 0000000..117a522 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCUser.h @@ -0,0 +1,41 @@ +// +// RCRTCStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/2. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 列席会议的成员信息 + */ +@interface RCRTCUser : NSObject + +/*! + 请勿调用初始化方法 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 请勿调用初始化方法 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 用户 ID + */ +@property (nonatomic, copy, readonly) NSString *userId; + +/*! + 用户扩展信息 + */ +@property (nonatomic, copy, readonly, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoConfig.h new file mode 100644 index 0000000..3086b2c --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoConfig.h @@ -0,0 +1,60 @@ +// +// RCRTCVideoConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCVideoExtend.h" +#import "RCRTCVideoLayout.h" +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCVideoConfig : NSObject + +/*! + 视频大流配置 + */ +@property (nonatomic, strong) RCRTCVideoLayout *videoLayout; + +/*! + 视频小流配置 + */ +@property (nonatomic, strong) RCRTCVideoLayout *tinyVideoLayout; + +/*! + 视频扩展配置 + */ +@property (nonatomic, strong) RCRTCVideoExtend *videoExtend; + +/*! + 合流布局背景色 + */ +@property (nonatomic, copy, readonly) NSString *backgroundColor; + +/*! + 设置合流布局背景色 + + @param red 取值范围: 0 ~ 255 + @param green 取值范围: 0 ~ 255 + @param blue 取值范围: 0 ~ 255 + @discussion + 此方法与 setBackgroundColor: 二选一使用, 效果相同 + 如果两个方法都使用, 将以最后一次设置为准 + */ +- (BOOL)setBackgroundColorWithRed:(NSUInteger)red green:(NSUInteger)green blue:(NSUInteger)blue; + +/*! + 设置合流布局背景色 + + @param backgroundColor 取值范围: 0x000000 ~ 0xffffff + @discussion + 此方法与 setBackgroundColorWithRed:green:blue: 二选一使用, 效果相同 + 如果两个方法都使用, 将以最后一次设置为准 + */ +- (BOOL)setBackgroundColor:(NSUInteger)backgroundColor; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoExtend.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoExtend.h new file mode 100644 index 0000000..566103d --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoExtend.h @@ -0,0 +1,33 @@ +// +// RCRTCVideoExtend.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCRTCVideoRenderMode) { + /*! + 自适应裁剪 + */ + RCRTCVideoRenderModeCrop = 1, + /*! + 填充 + */ + RCRTCVideoRenderModeWhole = 2 +}; + +@interface RCRTCVideoExtend : NSObject + +/*! + 本地输出视频流的裁剪模式 + */ +@property (nonatomic, assign) RCRTCVideoRenderMode renderMode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoFrame.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoFrame.h new file mode 100644 index 0000000..5359497 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoFrame.h @@ -0,0 +1,96 @@ +// +// RCRTCVideoFrame.h +// RongRTCLib +// +// Created by RongCloud on 2021/11/22. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 视频帧数据 + */ +@interface RCRTCVideoFrame : NSObject + +/*! + 视频帧格式 + */ +@property (nonatomic, readonly) RCRTCVideoFrameFormat format; + +/*! + 视频宽度,单位为像素 + */ +@property (nonatomic, readonly) NSInteger width; + +/*! + 视频高度,单位为像素 + */ +@property (nonatomic, readonly) NSInteger height; + +/*! + 储存视频 buffer 对象 + */ +@property (nonatomic, readonly, nullable) CVPixelBufferRef pixelBuffer; + +/*! + 视频原始数据 + */ +@property (nonatomic, readonly, nullable) NSData *data; + +/*! + 旋转角度,0,90,180,270 顺时针 + */ +@property (nonatomic, readonly) int rotation; + +/*! + 显示时间戳,单位为纳秒 + */ +@property (nonatomic, readonly) int64_t timeStampNs; + +/*! + 初始化视频帧数据 + + @param pixelBuffer 储存视频 buffer 对象, 只支持 NV12(420f) 或者 BGRA 格式视频 + @param timeStampNs 显示时间戳,单位为纳秒 + @param rotation 旋转角度,0,90,180,270 + + @return 视频帧数据 + @discussion SDK 内部会持有 pixelBuffer,所以使用者生成的 pixelBuffer 需要 CVBufferRelease() + */ +- (nullable instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer + timeStampNs:(int64_t)timeStampNs + rotation:(int)rotation; + +/*! + 初始化视频帧数据 + + @param sampleBuffer 储存视频 buffer 对象, 只支持 NV12(420f) 或者 BGRA 格式视频 + @param rotation 旋转角度,0,90,180,270 + + @return 视频帧数据 + @discussion SDK 内部会持有 sampleBuffer,所以使用者生成的 sampleBuffer 需要 CFRelease() + */ +- (nullable instancetype)initWithSampleBuffer:(CMSampleBufferRef)sampleBuffer + rotation:(int)rotation; + +/*! + 转码视频数据 + + @param pixelBuffer 转码后保存视频数据的buffer + + @discussion + 注意: + 1.需要确保传入 CVPixelBufferRef 的宽高和 RCRTCVideoFrame 的宽高一致,否则会放弃转码。 + 2.请传入一个 NV12 或者 BGRA 格式的 CVPixelBufferRef, 否则会放弃转码。 + + added from 5.1.15 + */ +- (void)convertToPixelBuffer:(CVPixelBufferRef)pixelBuffer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoInputStream.h new file mode 100644 index 0000000..21ca513 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoInputStream.h @@ -0,0 +1,152 @@ +// +// RCRTCVideoInputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/1. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCInputStream.h" +#import "RCRTCDrawer.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoInputStream; +/*! + 接收到视频流的代理 + */ +DEPRECATED_MSG_ATTRIBUTE("please use RCRTCInputStream.h RCRTCVideoInputStreamEventDelegate instead") +@protocol RCRTCVideoInputStreamDelegate + +/*! + 即将渲染视频帧的数据回调 + + @param ref 即将渲染的视频帧数据 + @param stream 即将渲染的视频帧数据所属接收到的流 + @discussion + 即将渲染视频帧数据, 如果需要自定义视频显示的话需要修改该视频帧 + + @remarks 代理 + */ +- (void)willRenderCVPixelBufferRef:(CVPixelBufferRef)ref stream:(RCRTCInputStream *)stream; +@end + + +/*! + 接收到视频流事件的代理 + */ +@protocol RCRTCVideoInputStreamEventDelegate + +@optional +/*! + 视频数据大小发生变化回调 + + @param stream 流信息 + @param size 流变化后的宽高 + + @discussion + 回调给流size的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)inputVideoStream:(RCRTCVideoInputStream *)stream didChangedFrameSize:(CGSize)size; + +/*! + 视频数据方向发生变化回调 + + @param stream 流信息 + @param rotation 0、90、180、270 + + @discussion + 回调给流方向的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)inputVideoStream:(RCRTCVideoInputStream *)stream didChangedRotation:(NSInteger)rotation; + +/*! + 即将渲染视频帧的数据回调 + + @param videoFrame 即将渲染的视频帧数据 + @param stream 即将渲染的视频帧数据所属接收到的流 + @discussion + 即将渲染视频帧数据,如果修改该视频帧,会影响本地渲染远端用户的视频帧,不支持修改数据格式 + + @remarks 代理 + added from 5.1.14 + */ +- (void)inputVideoStream:(RCRTCVideoInputStream *)stream willRenderVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +@end + +/*! + 接收到的视频流 + */ +@interface RCRTCVideoInputStream : RCRTCInputStream + +/*! + 接收到视频流事件的代理 + */ +@property (nonatomic, weak, nullable) id streamEventDelegate; + +/*! + 接收到的视频流代理 + */ +@property (nonatomic, weak, nullable) id delegate DEPRECATED_MSG_ATTRIBUTE( + "please use RCRTCVideoInputStream.h streamEventDelegate instead"); + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCVideoInputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCVideoInputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 设置视频流的渲染视图 + + @param view 渲染视图 RCRTCVideoView 对象 + @discussion + 接受到远端用户的视频流,然后设置视频流的渲染视图,就可以渲染出远端视频 + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable id)view; + +/*! + 设置视频流的渲染纹理视图 + + @param view 渲染纹理视图 + @discussion + 接受到远端用户的视频流,然后设置视频流的渲染纹理视图,就可以渲染出远端视频 + + @remarks 视频配置 + */ +- (void)setVideoTextureView:(nullable RCRTCVideoTextureView *)view; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoLayout.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoLayout.h new file mode 100644 index 0000000..1e6d180 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoLayout.h @@ -0,0 +1,37 @@ +// +// RCRTCVideoLayout.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCVideoLayout : NSObject + +/*! + 输出视频合流宽度 + */ +@property (nonatomic, assign) NSInteger width; + +/*! + 输出视频合流高度 + */ +@property (nonatomic, assign) NSInteger height; + +/*! + 输出视频合流帧率 + */ +@property (nonatomic, assign) NSInteger fps; + +/*! + 输出视频合流码率 + */ +@property (nonatomic, assign) NSInteger bitrate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoOutputStream.h new file mode 100644 index 0000000..5021c86 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoOutputStream.h @@ -0,0 +1,226 @@ +// +// RCRTCVideoOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/2. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCOutputStream.h" +#import "RCRTCVideoSourceInterface.h" +#import "RCRTCDrawer.h" +@class RCRTCVideoView; +@class RCRTCVideoTextureView; +@class RCRTCVideoOutputStream; +@class RCRTCVideoFrame; + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoStreamConfig; + +/*! + 接收到视频流事件的代理 + */ +@protocol RCRTCVideoOutputStreamEventDelegate + +@optional +/*! + 视频数据大小发生变化回调 + + @param stream 流信息 + @param size 流变化后的宽和高 + + @discussion + 回调给流size的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream didChangedFrameSize:(CGSize)size; + +/*! + 视频数据方向发生变化回调 + + @param stream 流信息 + @param rotation 0、90、180、270 + + @discussion + 回调给流方向的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream didChangedRotation:(NSInteger)rotation; + +/*! + 采集视频数据回调 + + @param videoFrame 采集的视频数据,类型为 RCRTCVideoFrameFormatNV12 + @param stream 采集的视频帧数据所属接收到的流 + @discussion + 采集的视频数据,如果修改该视频帧,会影响本地渲染和编码发送的视频帧数据,不支持修改数据格式 + + @remarks 代理 + added from 5.2.3 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream captureVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +/*! + 即将渲染视频帧的数据回调 + + @param videoFrame 即将渲染的视频帧数据,类型为 RCRTCVideoFrameFormatI420 + @param stream 即将渲染的视频帧数据所属接收到的流 + @discussion + 即将渲染视频帧数据,如果修改该视频帧,会影响本地视频渲染,不支持修改数据格式 + + @remarks 代理 + added from 5.1.14 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream willRenderVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +/*! + 即将编码发送的视频帧数据回调 + + @param videoFrame 即将编码发送的视频帧数据,类型为 RCRTCVideoFrameFormatI420 + @param stream 即将编码发送的视频帧数据所属接收到的流 + @discussion + 即将编码发送的视频帧数据,如果修改该视频帧,会影响发送出去的视频帧,不支持修改数据格式 + + @remarks 代理 + added from 5.2.1 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream willEncodeVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +@end + +/** + 视频数据写入接口 + */ +@protocol RCRTCVideoObserverInterface + +/*! + 写入媒体流 + + @param videoFrame 媒体数据 + @param error 失败时返回的相关描述 + @discussion 写入媒体流, 该方法会直接将视频数据进行视频编码并发送至远端 + + @remarks 资源管理 + */ +- (void)writeVideoFrame:(RCRTCVideoFrame *)videoFrame error:(NSError **)error; + +/*! + 写入媒体流 + + @param videoFrame 媒体数据 + @param mirror 视频数据是否镜像发送 + @param error 失败时返回的相关描述 + @discussion 写入媒体流, 该方法会直接将视频数据进行视频编码并发送至远端 + + @remarks 资源管理 + */ +- (void)writeVideoFrame:(RCRTCVideoFrame *)videoFrame mirror:(BOOL)mirror error:(NSError **)error; + + +- (void)write:(CMSampleBufferRef)sample + error:(NSError **)error DEPRECATED_MSG_ATTRIBUTE("use writeVideoFrame:error: instead"); +- (void)write:(CMSampleBufferRef)sample + mirror:(BOOL)mirror + error:(NSError **)error DEPRECATED_MSG_ATTRIBUTE("use writeVideoFrame:mirror:error: instead"); + +@end + +@interface RCRTCVideoOutputStream : RCRTCOutputStream + +/** + 本地视频配置 + */ +@property (nonatomic, copy, nullable) RCRTCVideoStreamConfig *videoConfig; + +/** + 输出视频源 + */ +@property (nonatomic, weak, nullable) id videoSource; + +@property (atomic, copy, nullable) RCRTCVideoFrameCallback videoFrameSendCallback DEPRECATED_MSG_ATTRIBUTE("use RCRTCVideoOutputStream.h outputVideoStream:willEncodeVideoFrame: instead"); + +@property (atomic, copy, nullable) RCRTCVideoCMSampleBufferCallback videoSendBufferCallback DEPRECATED_MSG_ATTRIBUTE("use RCRTCVideoOutputStream.h outputVideoStream:willEncodeVideoFrame: instead"); + +/*! + 接收到视频流事件的代理 + */ +@property (nonatomic, weak, nullable) id streamEventDelegate; + +/*! + 初始化视频流数据并设置标签 + + @param tag 用户自定标签,注:用户不能传特殊字符,只支持 ASCII + @discussion + 初始化流数据的参数 + + @remarks 资源管理 + @return 流对象 + */ +- (instancetype)initVideoOutputStreamWithTag:(NSString *)tag; + +/*! + 设置视频流的渲染视图 + + @param view 渲染界面,传空则将原视图删除 + @discussion + 设置视频媒体数据的渲染界面 + + @remarks 资源管理 + */ +- (void)setVideoView:(nullable id)view; + +/*! + 设置视频媒体数据的渲染纹理界面 + + @param view 渲染纹理界面,传空则将原视图删除 + @discussion + 设置视频媒体数据的渲染纹理界面 + + @remarks 资源管理 + */ +- (void)setVideoTextureView:(nullable RCRTCVideoTextureView *)view; + +/*! + 设置视频源 + + @param source 视频源 + @discussion + 设置视频源,如果使用者需要自定义视频流的话,需要实现 RCRTCVideoSourceInterface 协议,视频源中通过调用 RCRTCVideoOutputStream 的 write 方法写入视频数据 + + @remarks 资源管理 + */ +- (void)setVideoSource:(nullable id)source; + +#pragma mark - 水印 + +/*! + 设置水印 + + @param image 水印图片,如果该参数为 nil,则移除水印 + @param position 水印位置尺寸 + + @return 水印是否设置成功 + + @discussion Added from 5.1.15 + position 范围 0 ~ 1, 左上角为原点, + x:水印的坐标,取值范围为0 ~ 1的浮点数。 + y:水印的坐标,取值范围为0 ~ 1的浮点数。 + width:水印的宽度,取值范围为0 ~ 1的浮点数。 + height:不用设置,内部会根据水印图片的宽高比自动计算一个合适的高度。 + + 例如:当前视频的编码分辨率是 640 × 480 ,且 position 设置为(0.1,0.1,0.2,0.0) + 那么水印的左上坐标点就是(480 × 0.1,640 × 0.1)即(48,64) + 水印的宽度是 480 × 0.2 = 96px,水印的高度会根据水印图片的宽高比由 SDK 自动算出。 + + @remarks RCRTCEngine:媒体流操作 + */ +- (BOOL)setWaterMark:(nullable UIImage *)image position:(CGRect)position; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoPreviewView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoPreviewView.h new file mode 100644 index 0000000..2eeb813 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoPreviewView.h @@ -0,0 +1,27 @@ +// +// RCVideoPreview.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/17. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCVideoView.h" +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + ⚠️ RCRTCVideoPreviewView 即将废弃 , 请使用RCRTCVideoView + + @discussion deprecated from 5.1.10 + */ +__attribute__((deprecated("Class RCRTCVideoPreviewView is deprecated , use Class RCRTCVideoView instead"))) + +@interface RCRTCVideoPreviewView : RCRTCVideoView + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoSourceInterface.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoSourceInterface.h new file mode 100644 index 0000000..945a6d5 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoSourceInterface.h @@ -0,0 +1,57 @@ +// +// RCRTCVideoSourceInterface.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/4. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@protocol RCRTCVideoObserverInterface; + +NS_ASSUME_NONNULL_BEGIN + +/** + 视频数据源接口 + */ +@protocol RCRTCVideoSourceInterface + +/** + 视频流接口,RCRTCVideoOutputStream 实现了该接口,使用者可以通过 write 方法往视频输出流里写入视频数据 + */ +@property (nonatomic, weak, nullable) id observer; + +/*! + 初始化回调 + + @discussion + 调用 RCRTCVideoOutputStream 中 setVideoSource 方法成功,SDK 会通过 didInit 进行回调通知,接口实现类可以进行视频数据源的初始化工作 + + @remarks 资源管理 + */ +- (void)didInit; + +/*! + 开始回调 + + @discussion + 发布 RCRTCVideoOutputStream 成功,SDK 会通过 didStart 进行回调通知,接口实现类可以进行视频数据采集 + + @remarks 资源管理 + */ +- (void)didStart; + +/*! + 停止回调 + + @discussion + 取消发布 RCRTCVideoOutputStream,SDK 会通过 didStop 进行回调通知,接口实现类可以停止视频数据采集 + + @remarks 资源管理 + */ +- (void)didStop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoStreamConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoStreamConfig.h new file mode 100644 index 0000000..ff81ed8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoStreamConfig.h @@ -0,0 +1,48 @@ +// +// RCRTCVideoStreamConfig.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/10. +// Copyright © 2019年 RongCloud. All rights reserved. +// + +#import +#import +#import + +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 视频采集器参数 + */ +@interface RCRTCVideoStreamConfig : NSObject + +/*! + 视频发送的分辨率 + 默认: RCRTCVideoSizePreset640x480 + */ +@property (nonatomic, assign) RCRTCVideoSizePreset videoSizePreset; + +/*! + 视频发送的帧率 + 默认: 15 FPS + */ +@property (nonatomic, assign) RCRTCVideoFPS videoFps; + +/*! + 视频发送的最大码率 + 默认 640x480 分辨率时, 默认: 1000 kbps,如果外部修改过该值,使用修改的值 + */ +@property (nonatomic, assign) NSUInteger maxBitrate; + +/*! + 视频发送的最小码率 + 默认 640x480 分辨率时, 默认: 350 kbps,如果外部修改过该值,使用修改的值 + */ +@property (nonatomic, assign) NSUInteger minBitrate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoTextureView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoTextureView.h new file mode 100644 index 0000000..7eb4afa --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoTextureView.h @@ -0,0 +1,33 @@ +// +// RCRTCVideoTextureView.h +// RongRTCLib +// +// Created by RongCloud on 2020/10/21. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol RCRTCVideoTextureViewDelegate + +- (void)changeSize:(int)width height:(int)height; + +- (void)changeRotation:(int)rotation; + +- (void)firstFrameRendered; + +- (void)frameRendered; + +@end + +@interface RCRTCVideoTextureView : NSObject + +@property (nonatomic, weak, nullable) id textureViewDelegate; + +- (CVPixelBufferRef)pixelBufferRef; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoUnityView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoUnityView.h new file mode 100644 index 0000000..4cacfcb --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoUnityView.h @@ -0,0 +1,36 @@ +// +// RCRTCVideoUnityView.h +// RongRTCLib +// +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RTCUnityVideoFrame : NSObject + +@property (nonatomic, readonly) int width; +@property (nonatomic, readonly) int height; +@property (nonatomic, readonly, nullable) const uint8_t *dataY; +@property (nonatomic, readonly, nullable) const uint8_t *dataU; +@property (nonatomic, readonly, nullable) const uint8_t *dataV; +@property (nonatomic, readonly) int strideY; +@property (nonatomic, readonly) int strideU; +@property (nonatomic, readonly) int strideV; + +- (void)clear; + +@end + +@interface RCRTCVideoUnityView : NSObject + +- (nullable RTCUnityVideoFrame *)getCurrentFrame; + +- (NSInteger)getBufferLength; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoView.h new file mode 100644 index 0000000..1adcf10 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoView.h @@ -0,0 +1,67 @@ +// +// RCRTCVideoView.h +// RongRTCLib +// +// Created by RongCloud on 2021/4/19. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" + +@protocol RCRTCVideoViewEventDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 视图渲染类 + + @discussion add from 5.1.10 + */ +@interface RCRTCVideoView : UIView + +/*! + 修改 Frame 时,是否使用动画,默认:YES + */ +@property (nonatomic, assign) BOOL frameAnimated; + +/*! + 是否做镜像翻转,只做视图翻转,默认: YES + */ +@property (nonatomic, assign) BOOL isPreviewMirror; + +/*! + 视频填充方式 + */ +@property (nonatomic, assign) RCRTCVideoFillMode fillMode; + +/*! + 视频 view 代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 是否隐藏视图 + + @param isHidden 是否隐藏,YES 隐藏 NO 不隐藏 + @discussion + 隐藏视图 + + @remarks 视频配置 + */ +- (void)setHidden:(BOOL)isHidden; + +/*! + 刷新渲染视图 View + + @discussion + 刷新渲染视图 View + + @remarks 视频配置 + */ +- (void)flushVideoView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoViewEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoViewEventDelegate.h new file mode 100644 index 0000000..4c516fb --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RCRTCVideoViewEventDelegate.h @@ -0,0 +1,51 @@ +// +// RCRTCVideoViewEventDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2021/11/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoStream; + +/*! + 视频 view 代理 + @discussion + added from 5.1.10 + */ +@protocol RCRTCVideoViewEventDelegate + +@optional + +/*! + 首帧通知 + + @param stream 视频流 + + @discussion + 视频数据渲染第一帧的回调 + added from 5.1.11 + + @remarks 代理 + */ +- (void)didFirstFrameRendered:(RCRTCStream *)stream; + +/*! + 远端视频尺寸大小改变通知 + + @param size 视频尺寸 + @discussion + 当远端视频尺寸大小改变时,会进行回调通知 + @deprecated from 5.1.11 + + @remarks 代理 + */ +- (void)didVideoSizeChanged:(CGSize)size DEPRECATED_MSG_ATTRIBUTE("use RCRTCVideoInputStream.h RCRTCVideoInputStreamEventDelegate didFrameSizeChanged:width:height: API instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RongRTCLib.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RongRTCLib.h new file mode 100644 index 0000000..1f15964 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Headers/RongRTCLib.h @@ -0,0 +1,76 @@ +// +// RongRTCLib.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/13. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import + +//! Project version number for RongRTCLib. +FOUNDATION_EXPORT double RongRTCLibVersionNumber; + +//! Project version string for RongRTCLib. +FOUNDATION_EXPORT const unsigned char RongRTCLibVersionString[]; + +// In this header, you should import all the public headers of your framework +// using statements like #import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Info.plist new file mode 100644 index 0000000..e675c25 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Modules/module.modulemap b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Modules/module.modulemap new file mode 100644 index 0000000..2cc41a7 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongRTCLib { + umbrella header "RongRTCLib.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/PrivacyInfo.xcprivacy b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..d601263 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/PrivacyInfo.xcprivacy @@ -0,0 +1,32 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyTrackingDomains + + NSPrivacyTracking + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/RongRTCLib b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/RongRTCLib new file mode 100755 index 0000000..bbca4dd Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-arm64/RongRTCLib.framework/RongRTCLib differ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioConfig.h new file mode 100644 index 0000000..89c3096 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioConfig.h @@ -0,0 +1,22 @@ +// +// RCRTCAudioConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCAudioConfig : NSObject + +/*! + 本地音频码率 + */ +@property (nonatomic, assign) NSUInteger bitrate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioEffectManager.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioEffectManager.h new file mode 100644 index 0000000..1900c84 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioEffectManager.h @@ -0,0 +1,160 @@ +// +// RCRTCEffectManager.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/18. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCCodeDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音效代理方法 + */ +@protocol RCRTCSoundEffectProtocol + +/*! + 当前音效播放进度 + + @param progress 播放进度 range [0,1] + @discussion + 当前播放进度 + + @remarks 代理 + */ +- (void)didReportEffectPlayingProgress:(float)progress effectId:(NSUInteger)effectId; + +/*! + 音效播放结束,如果循环播放多次,多次循环后调用 + + @discussion + 播放结束,如果循环播放多次,多次循环后调用 + + @remarks 代理 + */ +- (void)didEffectFinished:(NSUInteger)effectId; + +@end + +@interface RCRTCAudioEffectManager : NSObject + +/*! + delegate + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 开启或关闭耳返 + @param enabled YES 开启,NO 关闭,默认为 NO + */ +- (void)enableInEarMonitoring:(BOOL)enabled; + +/*! + 设置耳返音量 + @param volume [0,100] + */ +- (void)setInEarMonitoringVolume:(NSUInteger)volume; + +/*! + 播放指定音效文件,filePath 必须可用,需要指定唯一的 ID,如果调用`preloadEffect`接口设置过 ID,此 ID 要与其相同 + 如果前后传入相同的 ID,但是 filePath 不同,会覆盖,播放最新的 filePath 音效 + @param soundId 音效的唯一 ID + @param filePath 音效的路径 + @param loopCount 音效的循环次数 + @param publish 是否将音效推送到远端,设置为 YES,其他端可听到此音效声音,如果设置为 NO,只有本端可以听到 + */ +- (RCRTCCode)playEffect:(NSInteger)soundId + filePath:(NSString *)filePath + loopCount:(int)loopCount + publish:(BOOL)publish; + +/*! + 播放指定音效文件,filePath 必须可用,需要指定唯一的 ID,如果调用`preloadEffect`接口设置过 ID,此 ID 要与其相同 + 如果前后传入相同的 ID,但是 filePath 不同,会覆盖,播放最新的 filePath 音效 + @param soundId 音效的唯一 ID + @param filePath 音效的路径 + @param loopCount 音效的循环次数 + @param volume 音效音量 [0,100] + @param publish 是否将音效推送到远端,设置为 YES,其他端可听到此音效声音,如果设置为 NO,只有本端可以听到 + */ +- (RCRTCCode)playEffect:(NSInteger)soundId + filePath:(NSString *_Nullable)filePath + loopCount:(NSUInteger)loopCount + volume:(NSUInteger)volume + publish:(BOOL)publish; + +/*! + 停止指定的音效 + @param soundId 音效唯一 ID + */ +- (RCRTCCode)stopEffect:(NSInteger)soundId; + +/*! + 停止所有的音效 + */ +- (RCRTCCode)stopAllEffects; + +/*! + 暂停指定的音效文件 + @param soundId 指定的音效 ID + */ +- (RCRTCCode)pauseEffect:(NSInteger)soundId; + +/*! + 暂停所有的音效 + */ +- (RCRTCCode)pauseAllEffects; + +/*! + 恢复播放指定的音效 + @param soundId 指定的音效 ID + */ +- (RCRTCCode)resumeEffect:(NSInteger)soundId; + +/*! + 恢复播放所有的音效 + */ +- (RCRTCCode)resumeAllEffects; + +/*! + 预加载指定的音效文件,filePath 必须可用 + @param soundId 指定的音效 ID + @param filePath 音效路径 + */ +- (RCRTCCode)preloadEffect:(NSInteger)soundId filePath:(NSString *)filePath; + +/*! + 取消加载的音效文件 + @param soundId 指定的音效 ID + */ +- (RCRTCCode)unloadEffect:(NSInteger)soundId; + +/*! + 设置全局的音效的音量 + @param volume 音量 [0,100],默认为 100. + */ +- (RCRTCCode)setEffectsVolume:(NSUInteger)volume; + +/*! + 设置指定音效的音效音量 + @param soundId 指定的音效 ID + @param volume 音量 [0,100],默认为 100 + */ +- (RCRTCCode)setVolumeOfEffect:(NSInteger)soundId withVolume:(NSUInteger)volume; + +/*! + 获取指定音效的音量 + */ +- (NSUInteger)getVolumeOfEffectId:(NSInteger)soundId; + +/*! + 获取全局音效的音量 + */ +- (NSUInteger)getEffectsVolume; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioInputStream.h new file mode 100644 index 0000000..31e6f10 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioInputStream.h @@ -0,0 +1,55 @@ +// +// RCRTCAudioInputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/1. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCInputStream.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 接收到的的音频流 + */ +@interface RCRTCAudioInputStream : RCRTCInputStream + +/*! + 远端音频数据回调 + added from 5.1.6 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback audioDataCallback; + + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioInputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioInputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioMixer.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioMixer.h new file mode 100644 index 0000000..cb875db --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioMixer.h @@ -0,0 +1,382 @@ +// +// RCRTCAudioMixer.h +// RTCLib +// +// Created by RongCloud on 2019/5/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import +#import "RCRTCGlobals.h" + +/*! + 无限期循环 + */ +RONGRTCLIB_EXTERN const UInt32 RCRTCLoopsIndefinitely; + +/*! + 混音引擎状态 + deprecated from 5.1.3 + */ +typedef NS_ENUM(NSUInteger, RTCMixEngineStatus) { + /*! + 正常 + */ + RTCMixEngineStatusNormal, + /*! + 准备中 + */ + RTCMixEngineStatusPrepare, + /*! + 播放中(或混音中) + */ + RTCMixEngineStatusPlaying, + /*! + 暂停中 + */ + RTCMixEngineStatusPause, + /*! + 停止 + */ + RTCMixEngineStatusStop +}; + +/*! + 播放(或混音)状态 + added from 5.1.3 + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioMixingState) { + /*! + 播放中(或混音中) + */ + RCRTCMixingStatePlaying, + /*! + 暂停中 + */ + RCRTCMixingStatePause, + /*! + 停止 + */ + RCRTCMixingStateStop, + /*! + 播放失败 + */ + RCRTCMixingStateFailed +}; + +/*! + 播放(或混音)状态改变的原因 + added from 5.1.3 + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioMixingReason) { + /*! + 成功调用 startMixingWithURL:playback:mixerMode:loopCount:; + */ + RCRTCMixingReasonStartedByUser, + /*! + 混音文件加载完成 + */ + RCRTCMixingReasonFileLoaded, + /*! + 混音文件完成一次循环播放(或混音) + */ + RCRTCMixingReasonOneLoopCompleted, + /*! + 混音文件开始新的一次循环播放(或混音) + */ + RCRTCMixingReasonStartNewLoop, + /*! + 混音文件完成所有循环播放(或混音) + */ + RCRTCMixingReasonAllLoopsCompleted, + /*! + 成功调用 stop 停止播放(或混音) + */ + RCRTCMixingReasonStoppedByUser, + /*! + 成功调用 pause 停止播放(或混音) + */ + RCRTCMixingReasonPausedByUser, + /*! + 成功调用 resume 停止播放(或混音) + */ + RCRTCMixingReasonResumedByUser, + /*! + 混音文件加载失败(文件不存在或者文件格式不支持等原因导致加载失败) + */ + RCRTCMixingReasonCanNotOpen, +}; + +/*! + 混音模式 + */ +typedef NS_ENUM(NSInteger, RCRTCMixerMode) { + /*! + 对端只能听见麦克风采集的声音 + */ + RCRTCMixerModeNone, + /*! + 对端能够听到麦克风采集的声音和音频文件的声音 + */ + RCRTCMixerModeMixing, + /*! + 对端只能听到音频文件的声音 + */ + RCRTCMixerModeReplace +}; + +/** + 本地音频左右声道混音 + @discussion Add from 5.1.13 + */ +typedef NS_ENUM(NSInteger, RCRTCAudioDualMonoMode) { + /*! + 当前音频立体声混音 + */ + RCRTCAudioDualMonoStereo = 0, + /*! + 当前音频左声道混音 + */ + RCRTCAudioDualMonoLeft = 1, + /*! + 当前音频右声道混音 + */ + RCRTCAudioDualMonoRight = 2 +}; + +NS_ASSUME_NONNULL_BEGIN + +/*! + AudioMixer 的播放代理 + */ +@protocol RCRTCAudioMixerAudioPlayDelegate + +/*! + 当前播放进度 + + @param progress 播放进度 range [0,1] + @discussion + 当前播放进度 + + @remarks 代理 + */ +- (void)didReportPlayingProgress:(float)progress; + +/*! + 混音状态 + + @param mixingState 混音状态 + @param mixingReason 混音状态改变的原因 + @discussion + 当前混音状态 + Add from 5.1.3 + + @remarks 代理 + */ +- (void)didAudioMixingStateChanged:(RCRTCAudioMixingState)mixingState reason:(RCRTCAudioMixingReason)mixingReason; + +@optional +/*! + 播放结束,如果循环播放多次,多次循环后调用 + + @discussion + 播放结束,如果循环播放多次,多次循环后调用 + @deprecated from 5.1.3 + + @remarks 代理 + */ +- (void)didPlayToEnd DEPRECATED_MSG_ATTRIBUTE("use didAudioMixingStateChanged:reason: instead"); + +@end + +/*! + 混音引擎 + */ +@interface RCRTCAudioMixer : NSObject + +/*! + 获取混音引擎单例 + */ ++ (RCRTCAudioMixer *)sharedInstance; + +/*! + AudioMixer 的代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 音频文件混音时的输入音量, 取值范围 [0,100], 默认值 100 + */ +@property (nonatomic, assign) NSUInteger mixingVolume; + +/*! + 音频文件本地播放音量, 取值范围 [0,100], 默认值 100 + */ +@property (nonatomic, assign) NSUInteger playingVolume; + +/*! + 混音文件的播放音调相对原始音调的偏移值,取值范围 [-12,12],默认值 0,其中 0 表示原始音调,1 表示升高一个半音,-1 降低一个半音,以此类推。 + 暂不支持处理在线音频 + */ +@property (nonatomic, assign) double pitch; + +/*! + 混音文件的播放速度,取值范围 [50,400],默认值 100,其中 100 表示原始速度,50 表示 0.5 倍速,400 表示 4 倍速,以此类推。 + 暂不支持处理在线音频 + */ +@property (nonatomic, assign) double playbackSpeed; + +/*! + 当前混音状态 + */ +@property (nonatomic, assign, readonly) + RTCMixEngineStatus status DEPRECATED_MSG_ATTRIBUTE("use didAudioMixingStateChanged:reason: instead"); + +/*! + 方法 writeAudioBufferList:frames:sampleTime:playback: 写入 AudioBufferList 的格式 + */ +@property (nonatomic, readonly, class) AudioStreamBasicDescription writeAsbd; + +/*! + 当前混音文件时长 + */ +@property (nonatomic, assign, readonly) NSTimeInterval duration; + +/*! + 获取指定音频文件的时长 + + @param url 音频文件的 File URL + @discussion + 获取指定音频文件的时长,只支持本地音频文件 + + @remarks 音频配置 + @return 音频文件的时长 + */ ++ (Float64)durationOfAudioFile:(NSURL *)url; + +/*! + 设置播放进度 + @param progress 设置播放进度 取值范围 [0,1] + @discussion + 设置播放进度 + + @remarks 音频配置 + */ +- (void)setPlayProgress:(float)progress; + +/*! + 设置混音文件的播放音调 + @param pitch 相对原始音调的偏移值,默认值为 0,取值范围 [-12,12],其中 0 表示原始音调,1 表示升高一个半音,-1 降低一个半音,以此类推。 + @discussion + 设置混音文件的播放音调,暂不支持处理在线音频 + Added from 5.2.0 + + @remarks 音频配置 + */ +- (void)setPitch:(double)pitch; + +/*! + 设置混音文件的播放速度 + @param playbackSpeed 播放速度,默认值为 100,取值范围 [50,400],其中 100 表示原始速度,50 表示 0.5 倍速,400 表示 4 倍速,以此类推。 + @discussion + 设置混音文件的播放速度,暂不支持处理在线音频 + Added from 5.2.0 + + @remarks 音频配置 + */ +- (void)setPlaybackSpeed:(double)playbackSpeed; + +/*! + 开始混音, 开始新混音之前需要先调用 stop 结束混音, 重复调用会忽略操作 + @param fileURL 资源 URL + @param isPlay 是否播放 + @param mode 混音行为模式 + @param count 循环混音或者播放次数 + + @discussion + 混音功能 + + @remarks 音频配置 + @return 开始是否成功 + */ +- (BOOL)startMixingWithURL:(NSURL *)fileURL + playback:(BOOL)isPlay + mixerMode:(RCRTCMixerMode)mode + loopCount:(NSUInteger)count; + +/*! + 设置混音声道模式 + @param mode 声道模式 0 立体声混音, 1 左声道混音, 2 右声道混音 + @discussion + 只针对本地文件资源产生效果, 不支持网络资源的 url + Add from 5.1.13 + + @remarks 音频配置 + @return 设置是否成功 + */ +- (BOOL)setAudioDualMonoMode:(RCRTCAudioDualMonoMode)mode; + +/*! + 写入自定义音频数据 + @param abl 音频数据,格式为 PCM + @param frames 音频帧个数 + @param sampleTime 音频帧时间戳 + @param isPlay 是否在本地播放 + + @discussion + 写入自定义音频数据 + + @remarks 音频流处理 + */ +- (void)writeAudioBufferList:(const AudioBufferList *)abl + frames:(UInt32)frames + sampleTime:(SInt64)sampleTime + playback:(BOOL)isPlay; + +/*! + 写入自定义音频数据 + @param abl 音频数据,格式为 PCM + @param frames 音频帧个数 + @param sampleTime 音频帧时间戳 + @param asbd 音频格式描述 + @param isPlay 是否在本地播放 + + @discussion + 写入自定义音频数据 + + @remarks 音频流处理 + */ +- (void)writeAudioBufferList:(const AudioBufferList *)abl + frames:(UInt32)frames + sampleTime:(SInt64)sampleTime + asbd:(AudioStreamBasicDescription)asbd + playback:(BOOL)isPlay; + +/*! + 暂停 + + @remarks 音频配置 + @return 暂停是否成功 + */ +- (BOOL)pause; + +/*! + 恢复 + + @remarks 音频配置 + @return 恢复是否成功 + */ +- (BOOL)resume; + +/*! + 结束 + + @remarks 音频配置 + @return 结束是否成功 + */ +- (BOOL)stop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioOutputStream.h new file mode 100644 index 0000000..6e20204 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCAudioOutputStream.h @@ -0,0 +1,45 @@ +// +// RCRTCAudioOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/2. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCOutputStream.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCAudioOutputStream : RCRTCOutputStream + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioOutputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCAudioOutputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCBaseRoom.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCBaseRoom.h new file mode 100644 index 0000000..26d2d0e --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCBaseRoom.h @@ -0,0 +1,163 @@ +// +// RCBaseRoom.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/3. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCRoomConfig; +@class RCRTCRemoteUser; + +@interface RCRTCBaseRoom : NSObject + +/*! + 房间ID + */ +@property (nonatomic, copy, readonly) NSString *roomId; + +/*! + 加入房间时设置的房间配置 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCRoomConfig *roomConfig; + +/*! + 会话 id, 用于 server API,会话唯一标识 + */ +@property (nonatomic, copy, readonly, nullable) NSString *sessionId; + +/*! + 参与用户 + */ +@property (nonatomic, strong, readonly) NSArray *remoteUsers; + +/*! + 获取指定远端用户 + + @param userId 用户 ID + @discussion + 根据用户 ID 获取房间内远端用户,不存在则返回 nil + */ +- (nullable RCRTCRemoteUser *)getRemoteUser:(NSString *)userId; + +/*! + 发送消息 + + @param content 消息的内容 + @param successBlock 消息发送成功的回调 [messageId:消息的ID] + @param errorBlock 消息发送失败的回调 [nErrorCode:发送失败的错误码,messageId:消息的ID] + @discussion + 该接口只能发送 persistentFlag 为 MessagePersistent_STATUS 的状态消息, 远端用户如果不在线则消息丢失, 自定义消息时下面标识一定要给出, 否则会导致消息发送失败 + + (RCMessagePersistent)persistentFlag { + return MessagePersistent_STATUS; + } + + @remarks 房间管理 + @return 发送的消息实体 + */ +- (nullable RCMessage *)sendMessage:(RCMessageContent *)content + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(NSInteger nErrorCode, long messageId))errorBlock; + +/*! + 设置房间属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 设置完成回调 + @discussion + 设置房间属性 + + @remarks 房间管理 + */ +- (void)setRoomAttributeValue:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use setAttribute:forKey:message:completion: API instead"); + +/*! + 设置房间属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 设置完成回调 + @discussion + 设置房间属性 + + @remarks 房间管理 + */ +- (void)setAttribute:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 删除房间属性 + + @param attributeKeys 属性名称数组 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 删除完成回调 + @discussion + 删除房间属性 + + @remarks 房间管理 + */ +- (void)deleteRoomAttributes:(NSArray *)attributeKeys + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use deleteAttributes:message:completion: API instead"); + +/*! + 删除房间属性 + + @param attributeKeys 属性名称数组 + @param message 是否在设置属性的时候携带消息内容, 传空则不往房间中发送消息 + @param completion 删除完成回调 + @discussion + 删除房间属性 + + @remarks 房间管理 + */ +- (void)deleteAttributes:(NSArray *)attributeKeys + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 获取房间属性 + + @param attributeKeys 属性名称 + @param completion 获取结果回调 + @discussion + 获取房间属性 + + @remarks 房间管理 + */ +- (void)getRoomAttributes:(NSArray *)attributeKeys + completion:(nullable RCRTCAttributeOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use getAttributes:completion: API instead"); + +/*! + 获取房间属性 + + @param attributeKeys 属性名称 + @param completion 获取结果回调 + @discussion + 获取房间属性 + + @remarks 房间管理 + */ +- (void)getAttributes:(NSArray *)attributeKeys + completion:(nullable RCRTCAttributeOperationCallback)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCBaseStat.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCBaseStat.h new file mode 100644 index 0000000..2a96aca --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCBaseStat.h @@ -0,0 +1,93 @@ +// +// RCRTCBaseStat.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCBaseStat : NSObject + +/*! + 媒体类型 + */ +@property (nonatomic, readonly) NSString *mediaType; + +/*! + 媒体流类型 + */ +@property (nonatomic, readonly) RCRTCMediaStreamType mediaStreamType; + +/*! + 音量大小, 0 - 9表示音量高低 + */ +@property (nonatomic, readonly) NSInteger audioLevel; + +/*! + 码率 + */ +@property (nonatomic, readonly) float bitRate; + +/*! + 丢包率 + */ +@property (nonatomic, readonly) float packetLoss; + +/*! + 视频帧宽度 + */ +@property (nonatomic, readonly) NSInteger frameWidth; + +/*! + 视频帧高度 + */ +@property (nonatomic, readonly) NSInteger frameHeight; + +/*! + 往返时间 + */ +@property (nonatomic, readonly) NSInteger rtt; + +/*! + 帧率 + */ +@property (nonatomic, readonly) NSInteger frameRate; + +/*! + 抖动 + */ +@property (nonatomic, readonly) NSInteger jitterReceived; + +/*! + 编码名称 + */ +@property (nonatomic, readonly, nullable) NSString *codecName; + +/*! + 渲染延时 + */ +@property (nonatomic, readonly) NSInteger renderDelayMs; + +/*! + 编解码器名称 + */ +@property (nonatomic, readonly, nullable) NSString *codecImplementationName; + +/*! + nacks 数量 + */ +@property (nonatomic, readonly) NSInteger googNacksReceived; + +/*! + 统计格式化字符串 + */ +@property (nonatomic, readonly) NSString *formString; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCDNInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCDNInputStream.h new file mode 100644 index 0000000..c51ee68 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCDNInputStream.h @@ -0,0 +1,82 @@ +// +// RCRTCCDNStream.h +// RongRTCLib +// +// Created by RongCloud on 2021/5/18. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCInputStream.h" +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" +NS_ASSUME_NONNULL_BEGIN + +typedef void (^RCRTCConfigCallback)(BOOL isSuccess, RCRTCCode code); + +@class RCRTCCDNInputStream; + +@protocol RCRTCCDNInputStreamDelegate +/*! + SEI 数据监听回调 + + @param cdnStream 当前 cdn 流对象 + @param data SEI 数据 + @discussion + 订阅 cdn 流成功后,通过 receiver 回调 cdn 流中包含 SEI 信息 + 回调的频次取决于 cdn 流的 SEI 帧数据间隔 + */ +- (void)cdnStream:(RCRTCCDNInputStream *)cdnStream handleSEIData:(NSString *)data; + +@end + +@interface RCRTCCDNInputStream : RCRTCInputStream + +/*! + 设置 cdn 流监听代理 + */ +@property (nonatomic, weak) id delegate; + +/*! + 获取订阅 CDN 流前设置的分辨率 + */ +- (RCRTCVideoSizePreset)getVideoResolution; + +/*! + 获取订阅 CDN 流前设置的帧率 + */ +- (RCRTCVideoFPS)getVideoFps; + +/*! + 当前订阅成功的 CDN 流最高支持的分辨率 + */ +- (RCRTCVideoSizePreset)getHighestResolution; + +/*! + 当前订阅成功的 CDN 流最高支持的帧率 + */ +- (RCRTCVideoFPS)getHighestFPS; + +/*! + 设置分辨率和帧率 + @param videoSizePreset 分辨率 + @param fps 帧率 + */ +- (void)setVideoConfig:(RCRTCVideoSizePreset)videoSizePreset + fpsValue:(RCRTCVideoFPS)fps + completion:(nullable RCRTCConfigCallback)completion; + +/*! + 设置视频流的渲染视图 + + @param render 渲染视图 + @discussion + 接受到远端用户的视频流,然后设置视频流的渲染视图,就可以渲染出远端视频 + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable id)render; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCameraOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCameraOutputStream.h new file mode 100644 index 0000000..31a3e57 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCameraOutputStream.h @@ -0,0 +1,290 @@ +// +// RCRTCCameraOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/8. +// Copyright © 2019年 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCLibDefine.h" +#import "RCRTCVideoView.h" +#import "RCRTCVideoOutputStream.h" +#import "RCRTCVideoStreamConfig.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 摄像头输出流,以摄像头为视频源的视频输出流 + */ +@interface RCRTCCameraOutputStream : RCRTCVideoOutputStream + +/*! + 当前开启摄像头位置 + */ +@property (nonatomic, assign) RCRTCDeviceCamera cameraPosition; + +/*! + 摄像头采集角度 + 默认以 AVCaptureVideoOrientationPortrait 角度进行采集 + */ +@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation; + +/*! + 本地摄像头采集是否镜像 + + 前置摄像头默认: YES,后置摄像头默认: NO + */ +@property (nonatomic, assign) BOOL isCaptureMirror; + +/*! + 本地摄像头采集是否镜像 + + 前置摄像头默认: YES,后置摄像头默认: NO + */ +@property (nonatomic, assign) BOOL isPreviewMirror DEPRECATED_MSG_ATTRIBUTE("use RCRTCCameraOutputStream.h isCaptureMirror instead");; + +/*! + 本地摄像头发送数据是否镜像 + + 默认: NO, 不镜像 + */ +@property (nonatomic, assign) BOOL isEncoderMirror; + +/*! + 是否启用视频小流 + + 摄像头视频流,默认开启。自定义视频流,默认关闭 + */ +@property (nonatomic, assign) BOOL enableTinyStream; + +@property (atomic, copy, nullable) RCRTCVideoCMSampleBufferCallback videoDisplayBufferCallback DEPRECATED_MSG_ATTRIBUTE("please use RCRTCVideoOutputStream.h outputVideoStream:willRenderVideoFrame: instead"); + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultVideoStream 获取实例。 + + @remarks 资源管理 + @return RCRTCCameraOutputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultVideoStream 获取实例。 + + @remarks 资源管理 + @return RCRTCCameraOutputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 写入视频流数据 + + @param sample 媒体数据 + @param error 失败时返回的相关描述 + @discussion + 写入视频流数据 + + @warning + 请勿调用,摄像头输出流内部已经实现摄像头数据采集,调用者无需自己写入视频流数据 + + @remarks 资源管理 + */ +- (void)write:(CMSampleBufferRef)sample error:(NSError **)error NS_UNAVAILABLE; + +/*! + 设置视频源 + + @param videoSource 视频源 + @discussion + 请勿调用,摄像头输出流的视频源已经封装在 SDK 内,调用者无需设置视频源,如果要自定义视频流,请使用 RCRTCVideoOutputStream + + @remarks 资源管理 + */ +- (void)setVideoSource:(id)videoSource NS_UNAVAILABLE; + +/*! + 设置视频流的渲染视图 + + @param view 渲染视图 + @discussion + 设置本地摄像头采集的视频流渲染视图 + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable id)view; + +/*! + 设置视频数的渲染纹理视图 + + @param view 渲染纹理视图 + @discussion + 设置本地摄像头采集的视频流渲染纹理视图 + + @remarks 视频配置 + */ +- (void)setVideoTextureView:(nullable RCRTCVideoTextureView *)view; + +/*! + 开启摄像头数据采集 + + @discussion + 开启摄像头采集数据 + + @remarks 资源管理 + */ +- (void)startCapture; + +/*! + 停止摄像头数据采集 + + @discussion + 关闭摄像头采集数据 + + @remarks 资源管理 + */ +- (void)stopCapture; + +/*! + 切换前后摄像头 + + @discussion + 切换前后摄像头 + + @remarks 视频配置 + */ +- (void)switchCamera; + +/*! + 摄像头是否支持区域对焦 + + @discussion + 摄像头是否支持手动对焦功能 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraFocusSupported; + +/*! + 设置预览视图中的对焦点 + + @param point 对焦点,(x,y)是在预览视图中归一化的坐标,即对焦点相对预览视图的位置与预览视图宽高的比值,取值范围为[0, 1],左上角是(0, 0) + + @discussion + 改变对焦位置 + + @remarks 摄像头配置 + */ +- (BOOL)setCameraFocusPositionInPreview:(CGPoint)point; + +/*! + 摄像头是否支持区域测光 + + @discussion + 摄像头是否支持手动曝光功能 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraExposurePositionSupported; + +/*! + 设置预览视图中的曝光点 + + @param point 曝光点,(x,y)是在预览视图中归一化的坐标,即曝光点相对预览视图的位置与预览视图宽高的比值,取值范围为[0, 1],左上角是(0, 0) + + @discussion + 改变对焦位置 + + @remarks 摄像头配置 + */ +- (BOOL)setCameraExposurePositionInPreview:(CGPoint)point; + +/*! + 摄像头是否支持闪光灯 + + @discussion + 摄像头是否支持闪光灯 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraTorchSupported; + +/*! + 设置是否打开摄像头闪光灯 + + @param enable YES 为打开,NO 为关闭摄像头闪光灯 + @discussion + 设置是否打开摄像头闪光灯 + + @remarks 摄像头配置 + */ +- (BOOL)enableCameraTorch:(BOOL)enable; + +/*! + 摄像头是否支持缩放 + + @discussion + 摄像头是否支持缩放 + + @remarks 摄像头配置 + */ +- (BOOL)isCameraZoomSupported; + +/*! + 设置摄像头缩放比例 + + @param zoomFactor 摄像头缩放比例,有效范围从 1.0 到最大缩放 + @discussion + 设置摄像头缩放比例 + + @remarks 摄像头配置 + */ +- (BOOL)setCameraZoomFactor:(float)zoomFactor; + +/*! + 获取摄像头最大缩放比例 + + @discussion + 获取摄像头最大缩放比例 + + @remarks 摄像头配置 + */ +- (float)getCameraMaxZoomFactor; + +/*! + 设置小流视频配置 + + @param config 视频配置 + @discussion + 设置小流视频配置 + + @remarks 视频配置 + */ +- (BOOL)setTinyVideoConfig:(RCRTCVideoStreamConfig *)config; + +/*! + 获取小流视频配置 + + @discussion + 获取小流视频配置 + + @remarks 视频配置 + */ +- (nullable RCRTCVideoStreamConfig *)getTinyVideoConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCodeDefine.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCodeDefine.h new file mode 100644 index 0000000..1116b70 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCodeDefine.h @@ -0,0 +1,263 @@ +// +// RongRTCError.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/12. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +/*! + 音视频错误码定义 + + 服务器返回错误以 4 开头,后两位是业务代码,最后两位是错误码 4XXXX,如 400XX 基础连接部分 + 本地返回错误以 5 开头,后两位是业务代码,最后两位是错误码 5XXXX,如 500XX 初始化基础连接部分 + */ +typedef NS_ENUM(NSInteger, RCRTCCode) { + /*! + 成功 + */ + RCRTCCodeSuccess = 0, + /*! + 初始化失败, 信令服务(IM Server)未连接 + */ + RCRTCCodeSignalServerNotConnect = 50000, + /*! + 参数错误 + */ + RCRTCCodeParameterError = 50001, + /*! + 加入相同房间错误,表示用户在客户端重复加入相同的房间 + */ + RCRTCCodeJoinToSameRoom = 50002, + /*! + 不在房间中 + */ + RCRTCCodeNotInRTCRoom = 50003, + /*! + 请检查是否开通音视频服务 + */ + RCRTCCodeVoIPNotAvailable = 50004, + /*! + RTC token为空,请查看是否还在房间内或者房间是否销毁 + */ + RCRTCCodeRTCTokenIsNull = 50006, + /*! + SDK 内部状态错误 + */ + RCRTCCodeIllegalState = 50007, + /*! + 观众加聊天室成功,kv 回调超时(30s) + */ + RCRTCCodeChatRoomKVTimeout = 50008, + /*! + HTTP 请求超时 + */ + RCRTCCodeHttpTimeoutError = 50010, + /*! + HTTP 错误(含 500,404,405 等错误) + */ + RCRTCCodeHttpError = 50011, + /*! + 发布重复资源 + */ + RCRTCCodePublishDuplicateResources = 50020, + /*! + 设置本地 SDP 错误 + */ + RCRTCCodeSetLocalSDPError = 50021, + /*! + 设置远端 SDP 错误 + */ + RCRTCCodeSetRemoteSDPError = 50022, + /*! + 发布的流的个数已经到达上限 + */ + RCRTCCodePublishStreamsHasReachedMaxCount = 50023, + /*! + 取消发布不存在的资源 + */ + RCRTCCodeUnpublishUnexistStream = 50024, + /*! + 创建本地 Offer 失败 + */ + RCRTCCodeCreateOfferError = 50025, + /*! + 创建本地 Answer 失败 + */ + RCRTCCodeCreateAnswerError = 50026, + /*! + 公有云 SDK 不能访问私有云服务 + */ + RCRTCCodeIncompatibleWithPrivateServer = 50027, + /*! + 无法使用设置的代理服务转发资源 + */ + RCRTCCodeProxyUnavailableError = 50028, + /*! + 订阅不存在的音视频资源 + */ + RCRTCCodeSubscribeNotExistResources = 50030, + /*! + 资源重复订阅 + */ + RCRTCCodeSubscribeDuplicateResources = 50031, + /*! + 取消订阅不存在的音视频资源 + */ + RCRTCCodeUnsubscribeNotExistResouce = 50032, + /*! + 当前房间不存在这个 liveUrl + */ + RCRTCCodeLiveUrlNotInCurrentRoom = 50033, + /*! + 请检查当前是否开通了语音识别服务 + */ + RCRTCCodeASRNotAvailable= 50034, + /*! + 请检查当前是否开启了语音识别服务 + */ + RCRTCCodeASRNotStart = 50035, + /*! + RTCConnection 为空 + */ + RCRTCCodeRTCConnectionIsNil = 50065, + /*! + 解析 Json 串出错 + */ + RCRTCCodeParseJsonDataError = 50069, + /*! + 未加入主房间 + */ + RCRTCCodeNotJoinedMainRoom = 50074, + /*! + 操作的副房间号码和主房间号码一致错误 + */ + RCRTCCodeOtherRoomIDSameWithMainRoomId = 50075, + /*! + 取消的跨房间连麦请求不存在 + */ + RCRTCCodeCancelInviteNotExist = 50076, + /*! + 响应的跨房间连麦请求不存在 + */ + RCRTCCodeRespondInviteNotExist = 50077, + /*! + 发布时mediaServer返回的mcu流为空 + */ + RCRTCCodeMCUListNotExist = 50079, + /*! + cdn 地址配置数量到达上限(最大为5个) + */ + RCRTCCodeCDNCountReachToLimit = 50080, + /*! + 帧时间戳非法 + */ + RCRTCCodeIllegalFrameTimestamp = 50081, + /*! + 解码视频帧失败 + */ + RCRTCCodeDecodeVideoFrameError = 50082, + /*! + 音效文件数量已经到达最大数量 + */ + RCRTCCodeEffectFileCountHasBeenReached = 50090, + /*! + 处理非法的 soundId,如停止播放没有播放过的音效文件 id, + 此音效 ID 没有预设或者播放过。 + */ + RCRTCCodeHandlingIllegalEffectSoundId = 50091, + /*! + 自动重连异常 + */ + RCRTCCodeReconnectError = 50100, + /*! + 观众加聊天室成功,pullData KV没有值 + */ + RCRTCCodeChatRoomKVNotExist = 50101, + /*! + 音频设备启动失败 + */ + RCRTCCodeAudioDeviceStartError = 52000, + /*! + 订阅流时,cdn流订阅失败 + */ + RCRTCCodeSubscribeCDNError = 52001, + /*! + 没有集成player SDK + */ + RCRTCCodePlayerModuleNotFound = 54001, + /*! + CDN内部错误 + */ + RCRTCCodeCDNInnerError = 54003, + /*! + 数据连接中断 或 音视频源格式不支持 + */ + RCRTCCodeCdnInfoVideoInterrupt = 54008, + /*! + 订阅 CDN 流时,初始化 player 模块异常 + */ + RCRTCCodePlayerInitError = 54009, + /*! + * Add from 5.1.9 + * 切换角色时房间类型错误,必须为直播房间 + */ + RCRTCCodeSwitchRoleRoomTypeError = 55001, + /*! + * Add from 5.1.9 + * 切换的角色和当前角色相同错误 + */ + RCRTCCodeSwitchRoleSameRoleError = 55002, + /*! + * Add from 5.1.17 + * RTC 网络探测未开始 + */ + RCRTCCodeProbeTestNotStart = 56001, + /*! + * Add from 5.1.17 + * RTC 网络探测已开始 + */ + RCRTCCodeProbeTestExist = 56002, + /*! + * Add from 5.1.17 + * RTC 通道连接断开 + */ + RCRTCCodeMediaServerIceDisConnect = 56003, + /*! + * RTC 网络探测被中断 + */ + RCRTCCodeProbeTestForceStop = 56004, + /*! + 加房间操作打断探测 + */ + RCRTCCodeInterruptByInternal = 56005, + /*! + SEI 数据长度超出限制 4096 个字节 + */ + RCRTCCodeSEILengthReachToLimit = 56006, + /*! + SEI 通道未建立,请检查是否开启 SEI,或者发布音视频 + */ + RCRTCCodeSEIChannelNotExist = 56007, + /*! + SEI 发送失败 + */ + RCRTCCodeSEISendUnknownError = 56008, + /*! + SEI 频率超出限制, 1秒内不超过 30 次 + */ + RCRTCCodeSEISendTimePerSecondReachToLimit = 56009, + +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCCodeDefine : NSObject + ++ (NSString *)codeDesc:(NSInteger)code; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCConfig.h new file mode 100644 index 0000000..52fee94 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCConfig.h @@ -0,0 +1,69 @@ +// +// RCRTCConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/12. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCProxy.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCConfig : NSObject + +/*! + 默认 YES:断网后一直保持重连; NO:如果音视频房间在超时时间(超时时间管理后台可以配置,默认值 60s)内没有连上网络,SDK 会自动退出音视频房间,这个时间是一个粗略值,不保证精确,有 5s 左右的误差 + */ +@property (nonatomic, assign) BOOL isEnableAutoReconnect; + +/*! + 设置房间统计信息的回调间隔 + 单位毫秒, 默认1000ms(1s)。 注意 interval 值太小会影响 SDK 性能,如果小于 100 配置无法生效 + */ +@property (nonatomic, assign) NSUInteger statusReportInterval; + +/*! + 默认 NO:是否开启媒体流加密功能(SRTP) + 特别注意:开启该功能会对性能和用户体验有一定影响,如果没有该需求请不要打开。 + */ +@property (nonatomic, assign) BOOL enableSRTP; + +/*! + 默认 YES:是否可以和其它后台 App 进行混音 + 特别注意:如果该属性设置为 NO,切换到其它 App 操作麦克风或者扬声器时,会导致自己 App 麦克风采集和播放被打断。 + */ +@property (nonatomic, assign) BOOL enableMixWithOthers; + +/*! + 默认 NO:使用BaseLine进行视频编码; YES:使用HighProfile进行视频编码 + */ +@property (nonatomic, assign) BOOL enableHardwareEncoderHighProfile; + +/*! + 默认 YES:Debug模式下检测IMSDK和RTCSDK版本号是否一致 + */ +@property (nonatomic, assign) BOOL enableVersionMismatch; + +/*! + 默认 YES:是否支持立体声 + */ +@property (nonatomic, assign) BOOL enableStereo; + +/*! + 设置代理服务地址 + 默认: 无 + */ +@property (nonatomic, strong) RCRTCProxy *proxy; + +/*! + 默认 YES:观众是否支持 PlayAndRecord 模式,该设置只对观众身份生效 + YES:AudioSession Category 为 AVAudioSessionCategoryPlayAndRecord,可以进行听筒/扬声器切换; + NO:AudioSession Category 为 AVAudioSessionCategoryPlayback。 + */ +@property (nonatomic, assign) BOOL enablePlayAndRecord; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCryptoDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCryptoDelegate.h new file mode 100644 index 0000000..b666e71 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCryptoDelegate.h @@ -0,0 +1,101 @@ +// +// RCRTCCryptoDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2020/7/28. +// Copyright © 2020 RongCloud. All rights reserved. +// + +NS_ASSUME_NONNULL_BEGIN + +/*! +自定义加密代理 +*/ +@protocol RCRTCCustomizedEncryptorDelegate + +/*! +加密回调 + +@param payloadData 需要加密的数据起始地址 +@param payloadSize 需要加密的数据的大小 +@param encryptedFrame 加密后数据起始地址 +@param bytesWritten 加密后数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义加密需要实现该方法进行加密操作。 + +@remarks 加解密配置 + +*/ +- (int)EncryptPayloadData:(const uint8_t *)payloadData + payloadSize:(size_t)payloadSize + encryptedFrame:(uint8_t *)encryptedFrame + bytesWritten:(size_t *)bytesWritten + mediastreamId:(NSString *)mediastreamId + mediaType:(int)mediatype; + +/*! +加密后数据大小 + +@param frameSize 加密前数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义加密需要根据自己的加密算法返回加密后数据的大小,SDK 会根据返回加密后数据的大小进行内存申请 + +@remarks 加解密配置 + +*/ +- (size_t)GetMaxCiphertextByteSize:(size_t)frameSize mediastreamId:(NSString *)mediastreamId mediaType:(int)mediatype; + +@end + +/*! +自定义解密代理 +*/ +@protocol RCRTCCustomizedDecryptorDelegate + +/*! +解密回调 + +@param encryptedFrame 需要解密的数据起始地址 +@param encryptedFrameSize 需要解密的数据的大小 +@param frame 解密后数据起始地址 +@param bytesWritten 解密后数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义解密需要实现该方法进行解密操作。 + +@remarks 加解密配置 + +*/ +- (int)DecryptFrame:(const uint8_t *)encryptedFrame + frameSize:(size_t)encryptedFrameSize + frame:(uint8_t *)frame + bytesWritten:(size_t *)bytesWritten + mediastreamId:(NSString *)mediastreamId + mediaType:(int)mediatype; + +/*! +解密后数据大小 + +@param frameSize 解密前数据的大小 +@param mediastreamId 当前解密的音视频流名称 +@param mediatype 媒体类型,0为"audio" 1为"video" + +@discussion +如果使用自定义解密需要根据自己的解密算法返回解密后数据的大小,SDK 会根据返回解密后数据的大小进行内存申请 + +@remarks 加解密配置 + +*/ +- (size_t)GetMaxPlaintextByteSize:(size_t)frameSize mediastreamId:(NSString *)mediastreamId mediaType:(int)mediatype; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCustomLayout.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCustomLayout.h new file mode 100644 index 0000000..8884e59 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCustomLayout.h @@ -0,0 +1,44 @@ +// +// RCRTCCustomLayout.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@class RCRTCStream; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCCustomLayout : NSObject + +/*! + 要混合布局的流,必须为视频流 + */ +@property (nonatomic, strong, nullable) RCRTCStream *videoStream; + +/*! + 混流图层坐标的 y 值 + */ +@property (nonatomic, assign) NSInteger y; + +/*! + 混流图层坐标的 x 值 + */ +@property (nonatomic, assign) NSInteger x; + +/*! + 视频流的宽 + */ +@property (nonatomic, assign) NSInteger width; + +/*! + 视频流的高 + */ +@property (nonatomic, assign) NSInteger height; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCustomMixAudio.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCustomMixAudio.h new file mode 100644 index 0000000..1df7758 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCCustomMixAudio.h @@ -0,0 +1,24 @@ +// +// RCRTCCustomMixAudio.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@class RCRTCStream; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCCustomMixAudio : NSObject + +/*! + 要进行混音的流,必须为音频流 + */ +@property (nonatomic, strong, nullable) RCRTCStream *audioStream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCDrawer.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCDrawer.h new file mode 100644 index 0000000..fc9e8e3 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCDrawer.h @@ -0,0 +1,30 @@ +// +// RCRTCDrawer.h +// RongRTCLib +// +// Created by RongCloud on 2021/11/24. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +@class RCRTCVideoFrame; + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCRTCDrawer + +/*! + 接收视频数据尺寸 + */ +- (void)setSize:(CGSize)size; + +/*! + 接收视频帧数据 + */ +- (void)renderFrame:(nullable RCRTCVideoFrame *)frame; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCEngine.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCEngine.h new file mode 100644 index 0000000..f59d3da --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCEngine.h @@ -0,0 +1,499 @@ +// +// RCRTCEngine.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/2. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCAudioEffectManager.h" +#import "RCRTCCodeDefine.h" +#import "RCRTCConfig.h" +#import "RCRTCCryptoDelegate.h" +#import "RCRTCLibDefine.h" +#import "RCRTCRoomConfig.h" +#import "RCRTCJoinedRoomInfo.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCRoom; +@class RCRTCOtherRoom; +@class RCRTCVideoPreviewView; +@class RCRTCVideoStreamConfig; +@class RCRTCOutputStream; +@class RCRTCMicOutputStream; +@class RCRTCCameraOutputStream; +@class RCRTCFileVideoOutputStream; +@class RCRTCScreenShareOutputStream; +@protocol RCRTCStatusReportDelegate; +@protocol RCRTCEngineEventDelegate; +@protocol RCRTCProbeTestDelegate; + +/*! + 音视频引擎类 + */ +@interface RCRTCEngine : NSObject + +/*! + 音视频引擎单例 + + @remarks RCRTCEngine + */ ++ (RCRTCEngine *)sharedInstance; + +/*! + 请使用 sharedInstance 初始化方法 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 请使用 sharedInstance 初始化方法 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 音视频引擎参数设置 + + @param config Engine 配置 + @return 错误码,参考 RCRTCCode + + @remarks RCRTCEngine:参数配置 + */ +- (int)initWithConfig:(RCRTCConfig *)config; + +/*! + 音视频引擎销毁资源, 会有主动离开房间操作 + + @remarks RCRTCEngine + */ +- (void)unInit; + +/*! + 音效管理器,管理播放、暂停等 + + @remarks RCRTCEngine:参数配置 + */ +@property (nonatomic, strong, readonly) RCRTCAudioEffectManager *audioEffectManager; + +/*! + 全局音视频配置信息 + + @remarks RCRTCEngine:参数配置 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCConfig *config; + +/*! + 当前已加入的房间,已废弃 + + @deprecated 4.0.5 + @remarks RCRTCEngine:房间接口 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCRoom *currentRoom DEPRECATED_MSG_ATTRIBUTE("use room property instead"); + +/*! + 当前已加入的房间 + + @remarks RCRTCEngine:房间接口 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCRoom *room; + +/*! + 本地默认音频流 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, strong, readonly) RCRTCMicOutputStream *defaultAudioStream; + +/*! + 本地默认视频流 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, strong, readonly) RCRTCCameraOutputStream *defaultVideoStream; + +/*! + 房间状态报告监听 + + @remarks RCRTCEngine:统计接口 + */ +@property (nonatomic, weak, nullable) id statusReportDelegate; + +/*! + Engine 代理 + + @remarks RCRTCEngine:Engine 通知接口 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 整体播放音量,范围:0~100,默认值:100 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, assign) NSUInteger playingVolume; + +/*! + 所有远端流音量,范围:0~200,默认值:100 + + @remarks RCRTCEngine:媒体流操作 + */ +@property (nonatomic, assign) NSUInteger remotePlaybackVolume; + +#pragma mark - 设备检测 +/*! + 设备检测 + @param interval 麦克风录制统计时间[2 10] 单位 s,大于10秒默认为10s 小于2秒按2秒计算 + + @remarks RCRTCEngine:设备检测开启接口 + added from 5.1.9 + */ +- (void)startEchoTest:(NSTimeInterval)interval; + +/*! + 设备检测 + + @remarks RCRTCEngine:设备检测关闭接口 + added from 5.1.9 + */ +- (void)stopEchoTest; + +#pragma mark - 创建自定义文件视频流 +/*! + 创建自定义文件视频流 + + @param path 文件路径 + @param replace 文件中音频是否替换麦克风数据,YES 替换麦克风数据,NO 与麦克风数据混音 + @param playback 文件中的音频是否在本端播放 + @param tag 自定义视频文件流标识 + @param config 自定视频文件流的配置信息 + + @return 自定义视频文件流 + + @discussion Added from 5.1.9 + + @remarks RCRTCEngine:媒体流操作 + */ +- (nullable RCRTCFileVideoOutputStream *)createFileVideoOutputStream:(NSString *)path + replaceAudio:(BOOL)replace + playback:(BOOL)playback + tag:(NSString *)tag + config:(RCRTCVideoStreamConfig *)config; + +#pragma mark - 获取屏幕共享流 +/*! + 获取屏幕共享所需流 + + @param groupId groupId 苹果开发者账号后台申请 + + @remarks RCRTCEngine:RCRTCScreenShareOutputStream get 接口 + added from 5.1.8 + */ +- (RCRTCScreenShareOutputStream *)getScreenShareVideoStreamWithGroupId:(NSString *)groupId; + +#pragma mark - 设置媒体服务器地址 +/*! + 设置媒体服务器地址 + + @remarks RCRTCEngine:参数配置 + + @param url 媒体服务器地址 + 设置媒体服务器地址,特别注意如果设置了会覆盖导航下载下来的 media server url + @return 设置是否成功 + */ +- (BOOL)setMediaServerUrl:(NSString *)url; + +#pragma mark - 听筒/扬声器切换 +/*! + 启用扬声器 + + @param useSpeaker YES 启用扬声器;NO 关闭扬声器 + @discussion + 暂态设置启用或关闭扬声器 + + @deprecated 4.0.5 + @remarks RCRTCEngine:媒体流操作 + @return 调用成功返回 YES + */ +- (BOOL)useSpeaker:(BOOL)useSpeaker DEPRECATED_MSG_ATTRIBUTE("use enableSpeaker: API instead"); + +/*! + 启用扬声器 + + @param enable 默认值为 YES;YES 启用扬声器;NO 关闭扬声器 + @discussion + 暂态设置启用或关闭扬声器,任何用户行为或者音频相关 API 的调用都有可能改变暂态设置 + + @remarks RCRTCEngine:媒体流操作 + @return 调用成功返回 YES + */ +- (BOOL)enableSpeaker:(BOOL)enable; + +/*! + 设置默认音频路由 + + @param defaultToSpeaker 默认为 NO,不使用扬声器作为默认音频路由;YES 使用扬声器作为默认音频路由 + @discussion + 设置默认的音频路由,就是在没有外接设备的前提下,设置系统使用听筒还是扬声器播放音频。 + + @remarks RCRTCEngine:媒体流操作 + @return 调用成功返回 YES + */ +- (BOOL)setDefaultAudioRouteToSpeaker:(BOOL)defaultToSpeaker; + +#pragma mark - 自定义加密 +/*! + 设置音频输出流自定义加密回调 + + @param audioEncryptorDelegate 加密代理,接口传入 RCRTCCustomizedEncryptorDelegate 的非空实现对象表示开启自定义加密; + 如果传入 nil 代表关闭自定义加密。 + + @discussion + 该接口设置为全局设置,对所有发送音频进行加密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + */ +- (void)setAudioCustomizedEncryptorDelegate:(nullable id)audioEncryptorDelegate; + +/*! + 设置音频输入流自定义解密回调 + + @param audioDecryptorDelegate 加密代理,接口传入 RCRTCDecryptorDelegate 的非空实现对象表示开启自定义解密; + 如果传入 nil 代表关闭自定义解密。 + + @discussion + 该接口设置为全局设置,对所有接收音频进行解密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + + */ +- (void)setAudioCustomizedDecryptorDelegate:(nullable id)audioDecryptorDelegate; + +/*! + 设置视频输出流自定义加密回调 + + @param videoEncryptorDelegate 加密代理,接口传入 RCRTCCustomizedEncryptorDelegate 的非空实现对象表示开启自定义加密; + 如果传入 nil 代表关闭自定义加密。 + + @discussion + 该接口设置为全局设置,对所有发送视频进行加密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + + */ +- (void)setVideoCustomizedEncryptorDelegate:(nullable id)videoEncryptorDelegate; + +/*! + 设置视频输入流自定义解密回调 + + @param videoDecryptorDelegate 加密代理,接口传入 RCRTCDecryptorDelegate 的非空实现对象表示开启自定义解密; + 如果传入 nil 代表关闭自定义解密。 + + @discussion + 该接口设置为全局设置,对所有接收视频进行解密,开启时机为加入房间前或者观众订阅流前,关闭时机为离开房间或者观众取消订阅流后, + 其它时机调用可能会不生效或者其它负面效果。 + + @remarks RCRTCEngine:加密接口 + */ +- (void)setVideoCustomizedDecryptorDelegate:(nullable id)videoDecryptorDelegate; + +#pragma mark - 加入房间 +/*! + 加入房间 + + @param roomId 房间 Id, 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 最长 64 个字符 + @param completion 加入房间回调,其中, room 对象中的 remoteUsers, 存储当前房间中的所有人, 包括发布资源和没有发布资源的人 + + @remarks RCRTCEngine:房间接口 + */ +- (void)joinRoom:(NSString *)roomId + completion:(nullable void (^)(RCRTCRoom *_Nullable room, RCRTCCode code))completion; + +/*! + 加入指定类型房间 + + @param roomId 房间 Id, 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 最长 64 个字符 + @param config 加入房间的配置, 主要用于配置直播场景。 + @param completion 加入房间回调, 其中 room 对象中的 remoteUsers, 存储当前房间中的所有人, 包括发布资源和没有发布资源的人 + @discussion + 加入房间 + + @remarks RCRTCEngine:房间接口 + */ +- (void)joinRoom:(NSString *)roomId + config:(RCRTCRoomConfig *)config + completion:(nullable void (^)(RCRTCRoom *_Nullable room, RCRTCCode code))completion; + +#pragma mark - 离开房间 +/*! + 离开房间,已废弃 + + @param roomId 房间 Id + @param completion 离开房间回调 + + @deprecated 4.0.5 + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveRoom:(NSString *)roomId + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion + DEPRECATED_MSG_ATTRIBUTE("use leaveRoom: API instead"); + +/*! + 离开房间 + + @param completion 离开房间回调 + @discussion + 离开房间时不需要调用取消资源发布, SDK 内部会做好取消发布资源逻辑 + + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveRoom:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 加入副房间 +/*! + 连麦邀请后加入副房间 + + @param roomId 副房间 Id, 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 最长 64 个字符 + @param completion 加入副房间回调 + @discussion + 此方法仅供连麦加入副房间使用 + + @remarks RCRTCEngine:房间接口 + */ +- (void)joinOtherRoom:(NSString *)roomId + completion:(nullable void (^)(RCRTCOtherRoom *_Nullable room, RCRTCCode code))completion; + +#pragma mark - 离开副房间 +/*! + 离开副房间 + + @param roomId 副房间 Id + @param isNotify 是否通知所有连麦用户结束, YES:通知 NO:不通知; + 如果想在退出副房间的同时结束 PK,请调用 RCRTCLocalUser.h 的 quitRoomPK 接口。 + @param completion 离开房间回调 + @discussion + 此方法仅供连麦离开副房间使用 + + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveOtherRoom:(NSString *)roomId + notifyFinished:(BOOL)isNotify + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use leaveOtherRoom:completion: API instead"); + +/*! + 离开副房间 + + @param roomId 副房间 Id + @param completion 离开房间回调 + @discussion + 此方法仅供连麦离开副房间使用 + + @remarks RCRTCEngine:房间接口 + */ +- (void)leaveOtherRoom:(NSString *)roomId + completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 观众订阅,取消订阅 +/*! + 观众订阅主播资源,已废弃 + + @param url 主播直播的 url + @param streamType 需要具体订阅的媒体类型 + @param completion 动作的回调, 会依次回调主播的 RCRTCInputStream, 根据 streamType 区分是音频流还是视频流, 如主播发布了音视频流, 此回调会回调两次, 分别为音频的 RCRTCInputStream, 和视频的 RCRTCInputStream 。 + @discussion + 仅直播模式可用, 作为观众, 直接观看主播的直播, 无需加入房间, 通过传入主播的 url, 仅观众端可用,此接口可具体订阅音频流或视频流或大小流 + + @deprecated from 5.1.0 + @remarks RCRTCEngine:媒体流操作 + */ +- (void)subscribeLiveStream:(NSString *)url + streamType:(RCRTCAVStreamType)streamType + completion:(nullable RCRTCLiveCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use RCRTCLocalUser.h subscribeStream:tinyStreams:completion: API instead"); + +/*! + 观众取消订阅主播资源,已废弃 + + @param url 主播直播的 url + @param completion 动作的回调 + @discussion + 仅直播模式可用, 作为观众, 退出观看主播的直播, 仅观众端使用 + + @deprecated from 5.1.0 + @remarks RCRTCEngine:媒体流操作 + */ +- (void)unsubscribeLiveStream:(NSString *)url + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion + DEPRECATED_MSG_ATTRIBUTE("use RCRTCLocalUser.h unsubscribeStreams:completion: API instead"); + +/*! + 查询当前用户已经加入的房间 + + @discussion + 查询当前用户已经加入的房间 + + @remarks 房间管理 + */ +- (void)queryRTCRoomJoinedInfo:(nullable void(^)(BOOL isSuccess, RCRTCCode code, NSArray * _Nullable infoArray))completion; + +/*! + 加房间前探测回调 + + @discussion Add from 5.1.17 + + @remarks RCRTCEngine:统计接口 + */ +@property (nonatomic, weak, nullable) id probeTestDelegate; + +/*! + 加房间前探测 + + @param callback 开始探测操作的回调 + @discussion + 与当前的 media server 建立连接,可以从 RCRTCProbeTestDelegate 拿到探测的上下行报表数据,探测持续 30s 自动结束。 + Add from 5.1.17 + + @remarks RCRTCEngine:探测接口 + */ +- (void)startRTCProbeTest:(nullable RCRTCOperationCallback)callback; + +/*! + 主动结束探测 + + @param callback 开始探测操作的回调 + @discussion + 探测自动结束前,可以手动调用该接口停止探测。 + Add from 5.1.17 + + @remarks RCRTCEngine:探测接口 + */ +- (void)stopRTCProbeTest:(nullable RCRTCOperationCallback)callback; + + +#pragma mark - SDK 版本号 +/*! + 获取 SDK 版本号,已废弃 + + @return 版本号 + + @deprecated 4.0.5 + @remarks RCRTCEngine:参数配置 + */ +- (NSString *)getRTCLibVersion DEPRECATED_MSG_ATTRIBUTE("use getVersion API instead"); + +/*! + 获取 SDK 版本号 + + @return 版本号 + + @remarks RCRTCEngine:参数配置 + */ ++ (NSString *)getVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCEngineEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCEngineEventDelegate.h new file mode 100644 index 0000000..df4baa6 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCEngineEventDelegate.h @@ -0,0 +1,102 @@ +// +// RCRTCEngineDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/2. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +@class RCRTCBaseRoom; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频引擎代理 + */ +@protocol RCRTCEngineEventDelegate + +@optional + +/*! + 音频路由改变回调 + + @remarks RCRTCEngineEventDelegate + + */ +- (void)didAudioRouteChanged:(RCRTCAudioRouteType)audioRouteType; + +/*! + 屏幕共享拓展 结束消息回调 + + @remarks RCRTCEngineEventDelegate + Added from 5.1.8 + */ +- (void)screenShareExtentionFinished; + +/*! + 屏幕共享拓展 开始消息回调 + + @remarks RCRTCEngineEventDelegate + @discussion + 需要先获取屏幕共享所需流 RCRTCEngine:RCRTCScreenShareOutputStream get 接口 + Added from 5.2.0 + */ +- (void)screenShareExtentionStarted; + +/*! + 被 SDK 踢出房间通知 + + @param roomId 离开的房间 + @param reason 被踢出房间原因 + @discussion + 如果用户在房间内, 此时由于某种原因被踢离开房间, SDK 会关闭音视频连接, 释放资源, 将用户踢出房间, 回调通知用户, + 如果用户不在房间内,roomId 为 nil,只释放资源,回调通知用户 + + @remarks 代理 + */ +- (void)didKicked:(nullable NSString *)roomId + reason:(RCRTCKickedReason)reason; + +/*! + 被 SDK 踢出房间通知 + + @param roomId 离开的房间 + @param reason 被踢出房间原因 + @param extra Server API 自定义数据 + @discussion + 如果用户在房间内, 此时由于某种原因被踢离开房间, SDK 会关闭音视频连接, 释放资源, 将用户踢出房间, 回调通知用户, + 如果用户不在房间内,roomId 为 nil,只释放资源,回调通知用户 + + @remarks 代理 + */ +- (void)didKicked:(nullable NSString *)roomId + reason:(RCRTCKickedReason)reason + extra:(nullable NSDictionary *)extra; + +- (void)didKicked:(nullable NSString *)roomId + Reason:(RCRTCKickedReason)reason DEPRECATED_MSG_ATTRIBUTE("use didKicked:reason: instead"); +/*! + 发生错误回调 + 该回调方法表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。 + 详细的错误代码,见 RCRTCCode。 + + @param errorCode 具体返回数据参考 RCRTCCode 说明 + */ +- (void)didOccurError:(RCRTCCode)errorCode; + +/*! + 如果用户在房间内, RTC连接状态变化通知 + + @param state 连接状态 + @discussion + 如果用户在房间内, RTC连接状态变化通知 + + @remarks 代理 + */ +- (void)didRTCConnectionStateChanged:(RCRTCConnectionState)state; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCFileVideoOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCFileVideoOutputStream.h new file mode 100644 index 0000000..1588371 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCFileVideoOutputStream.h @@ -0,0 +1,109 @@ +// +// RCRTCFileVideoOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2021/8/30. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCRTCFileVideoOutputStreamDelegate; + +/*! + 自定义文件流 + + @discussion Added from 5.1.9 + */ +@interface RCRTCFileVideoOutputStream : RCRTCVideoOutputStream +/*! + 文件路径 + */ +@property (nonatomic, readonly, nullable) NSString *filePath; + +/*! + 文件中音频是否替换麦克风数据,YES 替换麦克风数据,NO 与麦克风数据混音 + */ +@property (nonatomic, readonly) BOOL replace; + +/*! + 文件中的音频是否在本端播放 + */ +@property (nonatomic, readonly) BOOL playback; + +/*! + 文件视频流代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 音频数据回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback audioDataCallback; + +/*! + 停止 + + @return 是否调用成功 + + @discussion 调用此方法会停止解码文件视频流并释放文件资源 + */ +- (BOOL)stop; + +/*! + 初始化 + + @return 失败 + + @warning + 请勿调用,仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance] 的 + createFileVideoOutputStream:replaceAudio:playback:tag:config: 方法获取实例。 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @return 失败 + + @warning + 请勿调用,仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance] 的 + createFileVideoOutputStream:replaceAudio:playback:tag:config: 方法获取实例。 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 初始化 + + @return 失败 + + @warning + 请勿调用,仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance] 的 + createFileVideoOutputStream:replaceAudio:playback:tag:config: 方法获取实例。 + */ +- (instancetype)initVideoOutputStreamWithTag:(NSString *)tag NS_UNAVAILABLE; + +@end + +@protocol RCRTCFileVideoOutputStreamDelegate + +/*! + 开始解码文件视频流 + */ +- (void)fileVideoOutputStreamDidStartRead:(RCRTCFileVideoOutputStream *)stream; + +/*! + 完成解码文件视频流 + */ +- (void)fileVideoOutputStreamDidReadCompleted:(RCRTCFileVideoOutputStream *)stream; + +/*! + 解码文件视频流失败 + */ +- (void)fileVideoOutputStreamDidFailed:(RCRTCFileVideoOutputStream *)stream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCGlobals.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCGlobals.h new file mode 100644 index 0000000..f26258b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCGlobals.h @@ -0,0 +1,20 @@ +// +// RCRTCGlobals.h +// RongRTCLib +// +// Created by RongCloud on 2020/4/3. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#ifndef RongRTCGlobals_h +#define RongRTCGlobals_h + +#if defined(__cplusplus) +#define RONGRTCLIB_EXTERN extern "C" +#else +#define RONGRTCLIB_EXTERN extern +#endif + +typedef void(^RCRTCVoidBlock)(void); + +#endif /* RongRTCGlobals_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCInputStream.h new file mode 100644 index 0000000..e2e5ac0 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCInputStream.h @@ -0,0 +1,56 @@ +// +// RongRTCInputStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCLibDefine.h" +#import "RCRTCStream.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoView; +@class RCRTCVideoTextureView; +@class RCRTCInputStream; + +/*! + 接收到的音视频流 + */ +@interface RCRTCInputStream : RCRTCStream + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCInputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCInputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCJoinedRoomInfo.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCJoinedRoomInfo.h new file mode 100644 index 0000000..cde3cb8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCJoinedRoomInfo.h @@ -0,0 +1,35 @@ +// +// RCRTCJoinedRoomInfo.h +// RongRTCLib +// +// Created by RongCloud on 2021/8/13. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/*! + 已经加入房间信息 + */ +@interface RCRTCJoinedRoomInfo : NSObject + +/*! + 设备ID + */ +@property (nonatomic, strong) NSString *deviceId; + +/*! + 房间号 + */ +@property (nonatomic, strong) NSString *roomId; + +/*! + 房间加入时间 (毫秒) + */ +@property (nonatomic, assign) long long joinTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLibDefine.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLibDefine.h new file mode 100644 index 0000000..a1fff5b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLibDefine.h @@ -0,0 +1,745 @@ +// +// RCRTCLibDefine.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/3. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#ifndef RCRTCLibDefine_h +#define RCRTCLibDefine_h + +#import +#import +#import "RCRTCCodeDefine.h" + +@class RongRTCMember; +@class RCRTCRoom; +@class RCRTCStream; +@class RCRTCLiveInfo; +@class RCRTCInputStream; +@class RCRTCVideoFrame; + +/*! + 某些操作的回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败描述的错误码 + @discussion + 某些操作的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCOperationCallback)(BOOL isSuccess, RCRTCCode code); + +/*! + 直播操作的回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败描述的错误码 + @param liveInfo 当前直播主持人的数据模型 + @discussion + 直播操作的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCLiveOperationCallback)(BOOL isSuccess, RCRTCCode code, RCRTCLiveInfo *_Nullable liveInfo); + +/*! + 观众观看直播的回调 + + @param code 成功或者失败描述的错误码 + @param inputStream 当前直播流 + @discussion + 观众观看直播的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCLiveCallback)(RCRTCCode code, RCRTCInputStream *_Nullable inputStream); + +/*! + 观众观看直播的回调 + + @param code 成功或者失败描述的错误码 + @param inputStreams 当前直播流 + @discussion + 观众观看直播的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCLiveUrlCallback)(RCRTCCode code, NSArray *_Nullable inputStreams); + +/*! + 获取用户属性操作回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败的描述 错误码 + @param attr 获取结果 + @discussion + 获取用户属性操作回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCAttributeOperationCallback)(BOOL isSuccess, RCRTCCode code, NSDictionary *_Nullable attr); + +/*! + 订阅操作的回调 + + @param isSuccess 操作是否成功 + @param code 成功或者失败描述的错误码 + @param subscribeErrorList 服务器返回的订阅失败列表 + @discussion + 订阅操作的回调 + + @remarks 资源管理 + */ +typedef void (^RCRTCSubscribeOperationCallback)(BOOL isSuccess, RCRTCCode code, NSArray *_Nullable subscribeErrorList); + +/*! + 当前流状态 + */ +typedef NS_ENUM(NSUInteger, RCRTCResourceState) { + /*! + 流处于禁用状态 + */ + ResourceStateDisabled = 0, + /*! + 流处于正常状态 + */ + ResourceStateNormal +}; + +/*! + 资源类型 + deprecated from 5.1.8 + */ +typedef NS_ENUM(NSUInteger, RTCMediaType) { + /*! + 只有声音 + */ + RTCMediaTypeAudio, + /*! + 声音视频 + */ + RTCMediaTypeVideo, + /*! + 数据(暂不支持) + */ + RTCMediaTypeData, + /*! + 空数据 + */ + RTCMediaTypeNothing +}; + +/*! + 媒体类型 + added from 5.1.8 + */ +typedef NS_ENUM(NSUInteger, RCRTCMediaType) { + /*! + 音频 + */ + RCRTCMediaTypeAudio, + /*! + 音视频 + */ + RCRTCMediaTypeVideo, + /*! + 数据(暂不支持) + */ + RCRTCMediaTypeData, + /*! + 空数据 + */ + RCRTCMediaTypeNothing +}; + +/*! + 媒体流类型 + added from 5.1.8 + */ +typedef NS_ENUM(NSUInteger, RCRTCMediaStreamType) { + /*! + 默认 + */ + RCRTCMediaStreamTypeDefault, + /*! + 自定义 + */ + RCRTCMediaStreamTypeCustomized, + /*! + 直播合流 + */ + RCRTCMediaStreamTypeMCULive, + /*! + CDN + */ + RCRTCMediaStreamTypeCDN, + /*! + 屏幕共享 + */ + RCRTCMediaStreamTypeScreenShare +}; + +/*! + 视频分辨率类型 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoSizePreset) { + /*! + 无效参数 + */ + RCRTCVideoSizePresetInvalid = -1, + /*! + 分辨率 176X144 + */ + RCRTCVideoSizePreset176x144, + /*! + 分辨率 180X180 + */ + RCRTCVideoSizePreset180x180, + /*! + 分辨率 256X144 + */ + RCRTCVideoSizePreset256x144, + /*! + 分辨率 240X180 + */ + RCRTCVideoSizePreset240x180, + /*! + 分辨率 320X180 + */ + RCRTCVideoSizePreset320x180, + /*! + 分辨率 240X240 + */ + RCRTCVideoSizePreset240x240, + /*! + 分辨率 320X240 + */ + RCRTCVideoSizePreset320x240, + /*! + 分辨率 360X360 + */ + RCRTCVideoSizePreset360x360, + /*! + 分辨率 480X360 + */ + RCRTCVideoSizePreset480x360, + /*! + 分辨率 640X360 + */ + RCRTCVideoSizePreset640x360, + /*! + 分辨率 480X480 + */ + RCRTCVideoSizePreset480x480, + /*! + 分辨率 640X480 + */ + RCRTCVideoSizePreset640x480, + /*! + 分辨率 720X480 + */ + RCRTCVideoSizePreset720x480, + /*! + 分辨率 848X480 + */ + RCRTCVideoSizePreset848x480, + /*! + 分辨率 960X720 + */ + RCRTCVideoSizePreset960x720, + /*! + 分辨率 1280X720 + */ + RCRTCVideoSizePreset1280x720, + /*! + 分辨率 1920X1080 + */ + RCRTCVideoSizePreset1920x1080 +}; + +/*! + 视频方向 + */ +typedef NS_ENUM(NSUInteger, RCRTCVideoOrientation) { + /*! + 竖立, home 键在下部 + */ + RCRTCVideoOrientationPortrait = 1, + /*! + 竖立, home 键在上部 + */ + RCRTCVideoOrientationPortraitUpsideDown, + /*! + 横屏, home 键在左侧 + */ + RCRTCVideoOrientationLandscapeRight, + /*! + 竖立, home 键在右侧 + */ + RCRTCVideoOrientationLandscapeLeft +}; + +/*! + 视频填充模式 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoFillMode) { + /*! + 完整显示, 填充黑边 + 等比例填充,直到一个维度到达区域边界 + */ + RCRTCVideoFillModeAspectFit, + RCRTCVideoFillModeAspect + __attribute__((deprecated("RCRTCVideoFillModeAspect即将废弃 请更换为RCRTCVideoFillModeAspectFit"))) = + RCRTCVideoFillModeAspectFit, + /*! + 满屏显示 + 等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪 + */ + RCRTCVideoFillModeAspectFill, + /*! + 非均匀模式。两个维度完全填充至整个视图区域 + */ + RCRTCVideoFillModeResize +}; + +/*! + 帧率 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoFPS) { + /*! + 无效参数 + */ + RCRTCVideoFPSInvalid = -1, + /*! + 每秒 10 帧 + */ + RCRTCVideoFPS10, + /*! + 每秒 15 帧 + */ + RCRTCVideoFPS15, + /*! + 每秒 24 帧 + */ + RCRTCVideoFPS24, + /*! + 每秒 30 帧 + */ + RCRTCVideoFPS30 +}; + +/*! + 视频编解码 + */ +typedef NS_ENUM(NSUInteger, RCRTCCodecType) { + /*! + H264 编码 + */ + RCRTCCodecH264 +}; + +/*! + 音频编解码 + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioCodecType) { + /*! + PCMU + */ + RCRTCAudioCodecPCMU = 0, + /*! + OPUS + */ + RCRTCAudioCodecOPUS = 111 +}; + +/*! + 摄像头 + */ +typedef NS_ENUM(NSUInteger, RCRTCDeviceCamera) { + /*! + 未指明 + */ + RCRTCCaptureDeviceUnspecified = AVCaptureDevicePositionUnspecified, + /*! + 后置摄像头 + */ + RCRTCCaptureDeviceBack = AVCaptureDevicePositionBack, + /*! + 前置摄像头 + */ + RCRTCCaptureDeviceFront = AVCaptureDevicePositionFront +}; + +/*! + 设置加入房间时音视频使用模式 + */ +typedef NS_ENUM(NSUInteger, RCRTCRoomType) { + /*! + 普通音视频类型 + */ + RCRTCRoomTypeNormal = 0, + /*! + 直播类型 + */ + RCRTCRoomTypeLive = 2, + /*! + 跨应用多人房间 + */ + RCRTCRoomTypeCrossMuti = 7 +}; + +/*! + 直播类型 + */ +typedef NS_ENUM(NSUInteger, RCRTCLiveType) { + /*! + 当前直播为音视频直播 + */ + RCRTCLiveTypeAudioVideo = 0, + + /*! + 当前直播为仅音频直播 + */ + RCRTCLiveTypeAudio = 1 +}; + +/*! + 同一 UserID 多端加入房间处理类型 + */ +typedef NS_ENUM(NSUInteger, RCRTCJoinRoomType) { + /*! + 将之前加入房间的端踢出房间 + */ + RCRTCJoinRoomTypeKick = 0, + /*! + 拒绝当前端加入房间 + */ + RCRTCJoinRoomTypeRefuse = 1 +}; + +/*! + 直播类型下的角色区分 + */ +typedef NS_ENUM(NSUInteger, RCRTCLiveRoleType) { + /*! + 当前直播角色为主播 + */ + RCRTCLiveRoleTypeBroadcaster = 0, + + /*! + 当前直播角色为观众 + */ + RCRTCLiveRoleTypeAudience = 1 +}; + +/*! + 观众订阅直播类型直播类型 + */ +typedef NS_ENUM(NSUInteger, RCRTCAVStreamType) { + /*! + 仅订阅音频 + */ + RCRTCAVStreamTypeAudio = 0, + + /*! + 仅订阅视频(大流) + */ + RCRTCAVStreamTypeVideo = 1, + + /*! + 订阅音频+视频(大流) + */ + RCRTCAVStreamTypeAudioVideo = 2, + + /*! + 仅订阅视频(小流) + */ + RCRTCAVStreamTypeVideo_tiny = 3, + + /*! + 订阅音频+视频(小流) + */ + RCRTCAVStreamTypeAudioVideo_tiny = 4 +}; + +/*! + 设置音频通话质量, 默认为普通通话模式 RCRTCAudioQualitySpeech + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioQuality) { + /*! + 人声音质,编码码率最大值为32Kbps + */ + RCRTCAudioQualitySpeech, + /*! + 标清音乐音质,编码码率最大值为64Kbps + */ + RCRTCAudioQualityMusic, + /*! + 高清音乐音质,编码码率最大值为128Kbps + */ + RCRTCAudioQualityMusicHigh, +}; + +/*! + 设置音频通话模式, 默认为普通通话模式 RCRTCAudioScenarioDefault + */ +typedef NS_ENUM(NSUInteger, RCRTCAudioScenario) { + /*! + 普通通话模式(普通音质模式), 满足正常音视频场景 + */ + RCRTCAudioScenarioDefault, + /*! + 音乐聊天室模式, 提升声音质量, 适用对音乐演唱要求较高的场景 + */ + RCRTCAudioScenarioMusicChatRoom, + /*! + 音乐教室模式, 提升声音质量, 适用对乐器演奏音质要求较高的场景 + */ + RCRTCAudioScenarioMusicClassRoom +}; + +/*! + 被踢原因 + */ +typedef NS_ENUM(NSInteger, RCRTCKickedReason) { + /*! + 被服务端踢下线 + */ + RCRTCKickedReasonForServer = 1, + /*! + 被同一UserId加入其他房间踢出当前房间 + */ + RCRTCKickedReasonForOtherJoinedRoom, + /*! + 关闭 SDK 断线重连,SDK 将用户踢出房间 + */ + RCRTCKickedReasonForSDKDisconnect, + /*! + IMLib 退出登录,SDK 将用户踢出房间 + */ + RCRTCKickedReasonForIMLogout, + /*! + 被其它端登录挤下线 + */ + RCRTCKickedReasonForOtherClientLogin, + /*! + 服务器销毁房间,被迫离开房间 + */ + RCRTCKickedReasonForSeverDestory +}; + +/*! + RTC连接状态 + */ +typedef NS_ENUM(NSInteger, RCRTCConnectionState) { + /*! + 连接中 + */ + RCRTCConnectionStateConnecting, + /*! + 已连接 + */ + RCRTCConnectionStateConnected +}; + +/*! + 代理协议类型 + */ +typedef NS_OPTIONS(NSUInteger, RCRTCProxyOptions) { + RCRTCProxyOptionsNone = 0, + RCRTCProxyOptionsHTTP = 1 << 0, + RCRTCProxyOptionsUDP = 1 << 1, + RCRTCProxyOptionsAll = RCRTCProxyOptionsHTTP | RCRTCProxyOptionsUDP +}; + +/*! + 视频帧格式 + */ +typedef NS_ENUM(NSInteger, RCRTCVideoFrameFormat) { + /*! + NV12 + */ + RCRTCVideoFrameFormatNV12, + /*! + BGRA + */ + RCRTCVideoFrameFormatBGRA, + /*! + I420 + */ + RCRTCVideoFrameFormatI420 +}; + +/*! + 音频路由类型 + */ +typedef NS_ENUM(NSInteger, RCRTCAudioRouteType) { + /*! + 扬声器 + */ + RCRTCAudioRouteTypeSpeaker, + /*! + 听筒 + */ + RCRTCAudioRouteTypeReceiver, + /*! + 耳机 + */ + RCRTCAudioRouteTypeHeadphone, + /*! + 蓝牙设备 + */ + RCRTCAudioRouteTypeBluetooth +}; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 原始音频数据 + */ +@interface RCRTCAudioFrame : NSObject + +/*! + 音频数据 + */ +@property (assign, nonatomic) uint8_t * bytes; +/*! + 音频数据长度(字节数) + */ +@property (assign, nonatomic) int32_t length; +/*! + 声道数 + */ +@property (assign, nonatomic) int32_t channels; +/*! + 采样率 + */ +@property (assign, nonatomic) int32_t sampleRate; +/*! + 位深 + */ +@property (assign, nonatomic) int32_t bytesPerSample; +/*! + 帧数 + */ +@property (assign, nonatomic) int32_t samples; +/*! + 时间戳 + */ +@property (assign, nonatomic) uint64_t renderTimeMs; + +@end + +@interface RCRTCASRContent : NSObject +/** + 当前语音识别关联用户的 ID + */ +@property (nonatomic, copy) NSString *userId; +/** + 当前语音识别的 ID, 用于关联当前语音识别结果 + */ +@property (nonatomic, copy) NSString *msgId; +/** + 当前语音识别的时间戳, 单位为秒 + */ +@property (nonatomic, assign) NSTimeInterval timeUTC; +/** + 当前语音识别结果 + */ +@property (nonatomic, copy) NSString *msg; +/** + 当前语音识别是否结束, 如果为 YES, 则表示当前语音识别已结束 + */ +@property (nonatomic, assign) BOOL isEnd; + +@end + +@interface RCRTCRealtimeTranslationContent : NSObject +/** + 当前语音翻译的目标语言码 + */ +@property (nonatomic, copy) NSString *destLangCode; +/** + 当前语音翻译关联用户的 ID + */ +@property (nonatomic, copy) NSString *userId; +/** + 当前语音翻译的 ID, 用于关联当前语音识别和语音翻译结果 + */ +@property (nonatomic, copy) NSString *msgId; +/** + 当前语音翻译的时间戳, 单位为秒 + */ +@property (nonatomic, assign) NSTimeInterval timeUTC; +/** + 当前语音翻译结果 + */ +@property (nonatomic, copy) NSString *msg; +/** + 当前语音翻译是否结束, 如果为 YES, 则表示当前语音翻译已结束 + */ +@property (nonatomic, assign) BOOL isEnd; + +@end + +NS_ASSUME_NONNULL_END + +/*! + 视频帧回调 + + @param valid 该视频帧是否有效 + @param videoFrame 视频帧内容 + @discussion + 视频帧回调 + + @remarks 视频流处理 + @return 用户自定义视频帧 + */ +typedef RCRTCVideoFrame *_Nullable (^RCRTCVideoFrameCallback)(BOOL valid, RCRTCVideoFrame *_Nullable videoFrame); + +/*! + 视频帧回调 + + @param valid 该视频帧是否有效 + @param sampleBuffer 视频帧内容 + @discussion + 视频帧回调 + + @remarks 视频流处理 + @return 用户自定义视频帧 + */ +typedef CMSampleBufferRef _Nullable (^RCRTCVideoCMSampleBufferCallback)(BOOL valid, + CMSampleBufferRef _Nullable sampleBuffer); + +/*! + 音频输入输出的回调 + + @param inNumberFrames 帧个数 + @param ioData 音频 pcm 数据 + @param inTimeStamp 音频时间戳 + @param asbd 音频数据格式 + @discussion + 音频输入输出的回调 + + @remarks 音频流处理 + */ +typedef void (^RCRTCAudioDataCallback)(UInt32 inNumberFrames, + AudioBufferList *_Nonnull ioData, + const AudioTimeStamp *_Nonnull inTimeStamp, + const AudioStreamBasicDescription asbd); + +/*! + 音频数据的回调 + + @param frame 音频数据 + @discussion + 音频输入输出的回调 + + @remarks 音频流处理 + */ +typedef void (^RCRTCAudioFrameCallback)(RCRTCAudioFrame *_Nonnull frame); + +#endif /* RCRTCLibDefine_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLiveAudioStatus.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLiveAudioStatus.h new file mode 100644 index 0000000..4b50aa4 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLiveAudioStatus.h @@ -0,0 +1,32 @@ +// +// RCRTCLiveAudioStatus.h +// RongRTCLib +// +// Created by RongCloud on 2021/10/18. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCLiveAudioStatus : NSObject + +/*! + 用户Id + */ +@property (nonatomic, readonly, nullable) NSString *userId; + +/*! + 流Id + */ +@property (nonatomic, readonly, nullable) NSString *streamId; + +/*! + 音量大小, 0 - 9表示音量高低 + */ +@property (nonatomic, readonly) NSInteger audioLevel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLiveInfo.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLiveInfo.h new file mode 100644 index 0000000..fcbc97b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLiveInfo.h @@ -0,0 +1,81 @@ +// +// RCRTCLiveInfo.h +// RongRTCLib +// +// Created by RongCloud on 2019/8/22. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCLibDefine.h" +#import "RCRTCMixConfig.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCLiveInfo : NSObject + +/** + 当前的直播地址(已废弃) + @discussion 新版观众加房间,直接可以拿到直播合流, 单个主播流,使用常规方式订阅即可 + @deprecated from 5.1.0 + */ +@property (nonatomic, copy, readonly) + NSString *liveUrl DEPRECATED_MSG_ATTRIBUTE("audience can join room on 5.1.0 version"); + +/*! + 设置是否开启内置CDN + + @param enable YES开启,NO关闭, 默认是NO + @param completion 动作的回调 + @remarks 资源管理 + */ +- (void)enableInnerCDN:(BOOL)enable completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion; + +/*! + 设置混流布局配置 + + @param config 混流布局配置 + @param completion 动作的回调 + @discussion + 设置混流布局配置 + + @remarks 资源管理 + */ +- (void)setMixStreamConfig:(RCRTCMixConfig *)config + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion + DEPRECATED_MSG_ATTRIBUTE("use setMixConfig:completion: API instead"); + +/*! + 设置混流布局配置 + + @param config 混流布局配置 + @param completion 动作的回调 + @discussion + 设置混流布局配置 + + @remarks 资源管理 + */ +- (void)setMixConfig:(RCRTCMixConfig *)config completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code))completion; + +/*! + 添加一个 CDN 直播推流地址 + + @param url 推流地址 + @param completion 回调 + */ +- (void)addPublishStreamUrl:(NSString *)url + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code, NSArray * _Nullable array))completion; + +/*! + 删除一个 CDN 直播推流地址 + + @param url 要删除的推流地址 + @param completion 回调 + */ +- (void)removePublishStreamUrl:(NSString *)url + completion:(nullable void (^)(BOOL isSuccess, RCRTCCode code, NSArray * _Nullable array))completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLocalUser.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLocalUser.h new file mode 100644 index 0000000..8e8e03e --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLocalUser.h @@ -0,0 +1,592 @@ +// +// RCRTCLocalUser.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/9. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCCodeDefine.h" +#import "RCRTCUser.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCOutputStream; +@class RCRTCInputStream; +@class RCMessageContent; + +/*! + 音视频本地用户(当前登陆者) + */ +@interface RCRTCLocalUser : RCRTCUser + +/*! + 本地用户发布的音视频流 + */ +@property (nonatomic, copy, readonly) + NSArray *localStreams DEPRECATED_MSG_ATTRIBUTE("use streams property instead"); + +/*! + 本地用户发布的音视频流 + */ +@property (nonatomic, copy, readonly) NSArray *streams; + +#pragma mark - 用户属性 +/*! + 设置全局用户属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息(也不会收到有用户属性变换的回调) + @param completion 设置完成回调 + @discussion + 设置用户属性 + + @remarks 房间管理 + */ +- (void)setAttributeValue:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion + DEPRECATED_MSG_ATTRIBUTE("use setAttribute:forKey:message:completion: API instead"); + +/*! + 设置全局用户属性 + + @param attributeValue 属性值 + @param key 属性名称 + @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息(也不会收到有用户属性变换的回调) + @param completion 设置完成回调 + @discussion + 设置用户属性 + + @remarks 房间管理 + */ +- (void)setAttribute:(NSString *)attributeValue + forKey:(NSString *)key + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 删除全局用户属性 + + @param attributeKeys 属性名称数组 + @param message 是否在设置属性的时候携带消息内容,传空则不往房间中发送消息 + @param completion 删除完成回调 + @discussion + 删除用户属性 + + @remarks 房间管理 + */ +- (void)deleteAttributes:(NSArray *)attributeKeys + message:(nullable RCMessageContent *)message + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 获取全局用户属性 + + @param attributeKeys 属性名称 + @param completion 获取结果回调 + @discussion + 获取用户属性 + + @remarks 房间管理 + */ +- (void)getAttributes:(NSArray *)attributeKeys + completion:(nullable RCRTCAttributeOperationCallback)completion; + +#pragma mark - 发布资源 +/*! + 发布本地默认音视频流 + + @param completion 发布完成回调 + @discussion + 发布默认音视频流 + + @remarks 资源管理 + */ +- (void)publishDefaultStreams:(nullable RCRTCOperationCallback)completion; + +/*! + 发布本地指定音视频流 + + @param stream 发布的音视频流 + @param completion 发布的音视频流结果 + @discussion + 发布音视频流 + + @remarks 资源管理 + */ +- (void)publishStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +/*! + 发布多路本地指定音视频流 + + @param streams 发布音视频流集合 + @param completion 发布的音视频流结果 + @discussion + 发布多路音视频流 + + @remarks 资源管理 + */ +- (void)publishStreams:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 发布本地默认音视频流,直播模式专用 + + @param completion 发布完成回调 + @discussion + 发布主播默认音视频流, 此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)publishDefaultLiveStreams:(nullable RCRTCLiveOperationCallback)completion; + +/*! + 发布本地指定音视频流,直播模式专用 + + @param stream 发布的音视频流 + @param completion 发布的音视频流结果, 包括此主播的推流 url + @discussion + 发布直播音视频流, 此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)publishLiveStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCLiveOperationCallback)completion; + +#pragma mark - 取消发布资源 +/*! + 取消发布本地默认音视频流 + + @param completion 取消发布完成回调 + @discussion + 取消发布默认音视频流 + + @remarks 资源管理 + */ +- (void)unpublishDefaultStreams:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布本地指定音视频流 + + @param stream 取消发布的音视频流 + @param completion 发布的音视频流结果 + @discussion + 取消发布音视频流 + + @remarks 资源管理 + */ +- (void)unpublishStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布多路本地指定音视频流 + + @param streams 取消发布的音视频流集合 + @param completion 发布的音视频流结果 + @discussion + 取消发布多路音视频流 + + @remarks 资源管理 + */ +- (void)unpublishStreams:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布本地默认音视频流,直播模式专用 + + @param completion 取消发布完成回调 + @discussion + 取消发布默认音视频流,此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)unpublishDefaultLiveStreams:(nullable RCRTCOperationCallback)completion; + +/*! + 取消发布本地指定音视频流,直播模式专用 + + @param stream 取消发布的音视频流 + @param completion 发布的音视频流结果 + @discussion + 取消发布音视频流,此接口仅直播模式的主播可用, 即 RCRTCRoomType 为 RCRTCRoomTypeLive 可用 + + @remarks 资源管理 + */ +- (void)unpublishLiveStream:(nullable RCRTCOutputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 订阅资源 +/*! + 订阅多路远端指定音视频流 + + @param avStreams 普通流数组 + @param tinyStreams 小流数组,同一个流只能填写在 avStreams 或 tinyStreams 中的一个数组中 + @param completion 完成的回调 + @discussion + 订阅流 + + @remarks 资源管理 + */ +- (void)subscribeStream:(nullable NSArray *)avStreams + tinyStreams:(nullable NSArray *)tinyStreams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 订阅多路远端指定音视频流 + + @param avStreams 普通流数组 + @param tinyStreams 小流数组,同一个流只能填写在 avStreams 或 tinyStreams 中的一个数组中 + @param callback 完成的回调 + @discussion + 订阅流,callback 返回订阅结果,callback 中 subscribeErrorList 为服务器返回的订阅失败列表;另外可能存在 isSuccess 为 YES,但是 subscribeErrorList 不为空的情况,这种情况是部分订阅成功,用户可以根据业务决定是否对 subscribeErrorList 中的流进行重新订阅 + + @remarks 资源管理 + */ +- (void)subscribeStreams:(nullable NSArray *)avStreams + tinyStreams:(nullable NSArray *)tinyStreams + callback:(nullable RCRTCSubscribeOperationCallback)callback; + +/*! + 观众订阅合流资源 + + @param liveUrl 主播直播的 liveUrl (针对 4x版本的主播兼容方案) + @param streamType 需要具体订阅的媒体类型 + @param completion 完成的回调, 会依次回调合流的 RCRTCInputStream, 根据 streamType 区分是音频流还是视频流, 如主播发布了音视频流, 此回调会回调两次, 分别为音频的 RCRTCInputStream, 和视频的 RCRTCInputStream 。 + @discussion + 仅直播模式可用, 作为观众, 直接观看主播的直播, 通过传入主播的 url, 仅观众端可用,此接口可具体订阅音频流或视频流或大小流 + Added from 5.1.0 + + @remarks 媒体流操作 + */ +- (void)subscribeLiveUrl:(nullable NSString *)liveUrl + streamType:(RCRTCAVStreamType)streamType + completion:(nullable RCRTCLiveUrlCallback)completion; + +#pragma mark - 取消订阅资源 +/*! + 取消订阅远端指定音视频流 + + @param stream 音视频流 + @param completion 音视频流结果 + @discussion + 取消订阅音视频流 + + @remarks 资源管理 + */ +- (void)unsubscribeStream:(nullable RCRTCInputStream *)stream completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消订阅多路远端指定音视频流 + + @param streams 音视频流集合 + @param completion 音视频流结果 + @discussion + 取消订阅多路音视频流 + + @remarks 资源管理 + */ +- (void)unsubscribeStreams:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 订阅与取消订阅 +/*! + 同时订阅+取消订阅多路远端指定音视频流 + + 在订阅时, 同一个流只能填写在 subStreams 或 subTinyStreams 中的一个数组中 + 订阅列表与取消订阅列表不能存在重复的音视频流 + + @param subStreams 普通音视频流列表 + @param subTinyStreams 需要携带小流的流数组 + @param unsubStreams 取消订阅的音视频数组 + @param completion 完成的回调 + @discussion + 订阅+取消订阅多路远端指定音视频流 + + @remarks 资源管理 + */ +- (void)subscribeStreams:(nullable NSArray *)subStreams + tinyStreams:(nullable NSArray *)subTinyStreams + unsubscribeStreams:(nullable NSArray *)unsubStreams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 同时订阅+取消订阅多路远端指定音视频流 + + 在订阅时, 同一个流只能填写在 subStreams 或 subTinyStreams 中的一个数组中 + 订阅列表与取消订阅列表不能存在重复的音视频流 + + @param subStreams 普通音视频流列表 + @param subTinyStreams 需要携带小流的流数组 + @param unsubStreams 取消订阅的音视频数组 + @param callback 完成的回调 + @discussion + 订阅+取消订阅多路远端指定音视频流,callback 返回订阅结果,callback 中 subscribeErrorList 为服务器返回的订阅失败列表;另外可能存在 isSuccess 为 YES,但是 subscribeErrorList 不为空的情况,这种情况是部分订阅成功,用户可以根据业务决定是否对 subscribeErrorList 中的流进行重新订阅 + + @remarks 资源管理 + */ +- (void)subscribeStreams:(nullable NSArray *)subStreams + tinyStreams:(nullable NSArray *)subTinyStreams + unsubscribeStreams:(nullable NSArray *)unsubStreams + callback:(nullable RCRTCSubscribeOperationCallback)callback; + +#pragma mark - 跨房间连麦 +/*! + 向指定用户发送跨房间连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param autoMix 是否将被邀请人音视频资源合流到邀请人房间中 + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)requestJoinOtherRoom:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use requestRoomPK:forKey:userId:autoMix:extra:completion: API instead"); + +/*! + 向指定用户发送PK连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param autoMix 是否将被邀请人音视频资源合流到邀请人房间中 + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)requestRoomPK:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 取消正在进行中的跨房间连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)cancelRequestJoinOtherRoom:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use cancelRequestJoinPK:userId:extra:completion: API instead"); + +/*! + 取消正在进行中的PK连麦请求 + + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人userId + @param extra 附加信息, 可随消息发送给被邀请人 + @param completion 完成的回调 + @discussion + 仅供连麦使用 + + @remarks 资源管理 + */ +- (void)cancelRequestJoinPK:(nullable NSString *)inviteeRoomId + userId:(nullable NSString *)inviteeUserId + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 响应跨房间连麦请求 + + @param inviterRoomId 邀请人所在的房间号 + @param inviterUserId 邀请人userId + @param agree 是否同意加入副房间 + @param autoMix 是否将邀请人音视频资源合流到被邀请人(响应邀请的人)房间中 + @param extra 附加信息, 可随消息发送给邀请人 + @param completion 完成的回调 + @discussion + 取消订阅多路音视频流 + + @remarks 资源管理 + */ +- (void)responseJoinOtherRoom:(nullable NSString *)inviterRoomId + userId:(nullable NSString *)inviterUserId + agree:(BOOL)agree + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion DEPRECATED_MSG_ATTRIBUTE("use responseRoomPK:userId:agree:autoMix:extra:completion: API instead"); + +/*! + 响应PK连麦请求 + + @param inviterRoomId 邀请人所在的房间号 + @param inviterUserId 邀请人userId + @param agree 是否同意加入副房间 + @param autoMix 是否将邀请人音视频资源合流到被邀请人(响应邀请的人)房间中 + @param extra 附加信息, 可随消息发送给邀请人 + @param completion 完成的回调 + @discussion + 取消订阅多路音视频流 + + @remarks 资源管理 + */ +- (void)responseRoomPK:(nullable NSString *)inviterRoomId + userId:(nullable NSString *)inviterUserId + agree:(BOOL)agree + autoMix:(BOOL)autoMix + extra:(nullable NSString *)extra + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 结束PK连麦 + + @param roomId 副房间 Id + @param completion 完成的回调 + @discussion + 通知所有连麦用户结束连麦 + + @remarks 资源管理 + */ +- (void)quitRoomPK:(nullable NSString *)roomId + completion:(nullable RCRTCOperationCallback)completion; + +#pragma mark - 身份切换 +/*! + 主播切换到观众 + + @param onSucceed 切换成功的回调。 + @param onFailed 切换失败会回调,但不影响当前角色继续音视频。 + @param onKicked 切换失败会回调,SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。 + + @discussion + 当前角色为主播,切换角色到观众,仅限主播使用。 + 如果当前用户加入了 RCRTCOtherRoom 切换为观众时,RTC SDK 内部会帮其退出所有 RCRTCOtherRoom。 + Added from 5.1.9 + */ +- (void)switchToAudienceOnSucceed:(nullable void (^)(void))onSucceed + onFailed:(nullable void (^)(RCRTCCode code))onFailed + onKicked:(nullable void (^)(void))onKicked; + +/*! + 观众切换到主播 + + @param publishStreams 切换成主播后需要发布的流。 + @param onSucceed 切换成功的回调 + @param onFailed 切换失败会回调,但不影响当前角色继续音视频。 + @param onKicked 切换失败会回调,SDK内部会退出房间并清理所有资源,该用户只能重新加入房间才能继续音视频。 + + @discussion + 观众切换角色到主播,仅限观众使用。 + Added from 5.1.9 + */ +- (void)switchToBroadcaster:(NSArray *)publishStreams + onSucceed:(nullable void (^)(RCRTCLiveInfo *liveInfo))onSucceed + onFailed:(nullable void (^)(RCRTCCode code))onFailed + onKicked:(nullable void (^)(void))onKicked; + + +/*! + 设置开启 SEI 功能 + + @param enable YES 开启,NO 不开启,默认 NO + @param completion 开启结果的回调 + + @discussion 开启 SEI 功能观众身份调用无效,观众不允许发布流,所以不具备 SEI 能力。 + Added from 5.2.5 +*/ +- (void)setEnableSEI:(BOOL)enable + completion:(void(^)(BOOL isSuccess, RCRTCCode errCode))completion; + +/*! + 发送媒体增强补充信息 + + @param SEI 数据字符 + @discussion 此接口可在开发者推流传输音视频流数据并且[setEnableSEI] 开启SEI 功能的同时,发送流媒体增强补充信息来同步一些其他附加信息。 + 一般如同步音乐歌词或视频画面精准布局等场景,可选择使用发送 SEI。当推流方发送 SEI 后,拉流方可通过 RCRTCRoomEventDelegate 监听 [didReceiveSEI] & [didReceiveLiveStreamSEI] 的回调获取 SEI 内容。由于 SEI 信息跟随视频帧,由于网络问题有可能丢帧,因此 SEI 信息也有可能丢,为解决这种情况,应该在限制频率内多发几次。限制频率:1秒钟不要超过30次。SEI 数据长度限制为 4096 字节。 + @return 0 成功,非 0 失败,返回具体错误码 + Added from 5.2.5 +*/ +- (RCRTCCode)sendSEI:(NSString *)SEI; + +/*! + 开启语音识别服务 + + @param completion 开启语音识别服务回调 + + @discussion + 开启语音识别服务,如果房间内没有人发布流,则无法开启语音识别服务,SDK 会在有人发布流后补偿进行开启语音识别服务 + + @remarks 语音识别 + */ +- (void)startASR:(nullable RCRTCOperationCallback)completion; + +/*! + 停止语音识别服务 + + @param completion 停止语音识别服务回调 + + @discussion + 停止语音识别服务 + + @remarks 语音识别 + */ +- (void)stopASR:(nullable RCRTCOperationCallback)completion; + +/*! + 获取语音识别服务是否可用 + + @return YES 表示语音识别服务已经开启,NO 表示语音识别服务已经停止 + + @discussion + 获取语音识别服务是否可用,非实时查询接口,根据端上缓存进行的判断 + + @remarks 语音识别 + */ +- (BOOL)asrIsAvailable; + +/*! + 开启语音翻译 + @param destLangCode 翻译目标语言码 + + @discussion + 1. 语音翻译依赖语音识别服务,需要在收到 RCRTCRoomEventDelegate 的 didReceiveStartASR 回调后,调用开启语音翻译 + 2. 开启语音翻译,会通过 RCRTCRoomEventDelegate 的 didReceiveRealtimeTranslationContent 回调返回语音翻译结果 + + @remarks 语音识别 + */ +- (void)startRealtimeTranslation:(NSString *)destLangCode copmletion:(nullable RCRTCOperationCallback)completion; + +/*! + 关闭语音翻译 + + @discussion + 关闭语音翻译 + + @remarks 语音识别 + */ +- (void)stopRealtimeTranslation:(nullable RCRTCOperationCallback)completion; + +/*! + 设置是否接收语音识别信息 + @param enable 是否接收语音识别信息 + + @discussion + 设置接收语音识别信息时候,会通过 RCRTCRoomEventDelegate 的 didReceiveASRContent 回调返回语音识别结果 + + @remarks 语音识别 + */ +- (int)setEnableASR:(BOOL)enable; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLocalVideoView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLocalVideoView.h new file mode 100644 index 0000000..41e03a1 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCLocalVideoView.h @@ -0,0 +1,34 @@ +// +// RCLocalPreviewView.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/17. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import +#import "RCRTCVideoPreviewView.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + ⚠️ RCRTCLocalVideoView 即将废弃 , 请使用RCRTCVideoView + + @discussion deprecated from 5.1.10 + */ +__attribute__((deprecated("Class RCRTCLocalVideoView is deprecated , use Class RCRTCVideoView instead"))) + +@interface RCRTCLocalVideoView : RCRTCVideoPreviewView +/*! + 刷新渲染视图 View + + @discussion + 刷新渲染视图 View + + @remarks 视频配置 + */ +- (void)flushVideoView DEPRECATED_MSG_ATTRIBUTE("Method flushVideoView is deprecated"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMediaConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMediaConfig.h new file mode 100644 index 0000000..800ebd9 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMediaConfig.h @@ -0,0 +1,30 @@ +// +// RCRTCMediaConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@class RCRTCVideoConfig; +@class RCRTCAudioConfig; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCMediaConfig : NSObject + +/*! + 视频配置 + */ +@property (nonatomic, strong) RCRTCVideoConfig *videoConfig; + +/*! + 音频配置 + */ +@property (nonatomic, strong) RCRTCAudioConfig *audioConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMicOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMicOutputStream.h new file mode 100644 index 0000000..e3e32cd --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMicOutputStream.h @@ -0,0 +1,113 @@ +// +// RCRTCMicOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/4/16. +// Copyright © 2020年 RongCloud. All rights reserved. +// + +#import "RCRTCAudioMixer.h" +#import "RCRTCAudioOutputStream.h" +#import "RCRTCLibDefine.h" +#import "RCRTCOutputStream.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 麦克风输出流,以麦克风为音频源的音频输出流 + */ +@interface RCRTCMicOutputStream : RCRTCAudioOutputStream + +/*! + 麦克风的音量,范围:0~200,默认值:100 + */ +@property (nonatomic, assign) NSUInteger recordingVolume; + +/*! + 音频码率 +*/ +@property (nonatomic, assign, readwrite) NSInteger bitrateValue; + +/*! + 音频编解码方式 + 默认: OPUS + */ +@property (nonatomic, assign, readwrite) RCRTCAudioCodecType audioCodecType; + +/*! + 音频通话质量 + 默认: 人声音质,RCRTCAudioQualitySpeech + */ +@property (nonatomic, assign, readonly) RCRTCAudioQuality audioQuality; + +/*! + 音频通话模式 + 默认: 普通通话模式,RCRTCAudioScenarioDefault + */ +@property (nonatomic, assign, readonly) RCRTCAudioScenario audioScenario; + +/*! + 本地发送的音频数据(合流)回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioDataCallback willSendAudioBufferCallback; + +/*! + 麦克风的音频数据回调 + added from 5.1.6 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback recordAudioDataCallback; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultAudioStream 获取实例。 + + @remarks 资源管理 + @return 失败 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用,如要获取实例对象,请使用 [RCRTCEngine sharedInstance].defaultAudioStream 获取实例。 + + @remarks 资源管理 + @return 失败 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 关闭/打开麦克风 + + @param disable YES 关闭,NO 打开 + @discussion + 关闭/打开麦克风 + + @remarks 音频配置 + */ +- (void)setMicrophoneDisable:(BOOL)disable; + +/*! + 设置音频通话质量和音频通话模式 + + @param audioQuality 音频通话质量, audioScenario 音频通话模式 + @discussion + 设置音频通话质量和音频通话模式 + + @remarks 音频流处理 + @return 设置是否成功 + */ +- (BOOL)setAudioQuality:(RCRTCAudioQuality)audioQuality Scenario:(RCRTCAudioScenario)audioScenario; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMixConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMixConfig.h new file mode 100644 index 0000000..893f3f7 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCMixConfig.h @@ -0,0 +1,136 @@ +// +// RCRTCMixConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCCustomLayout.h" +#import "RCRTCCustomMixAudio.h" +#import "RCRTCMediaConfig.h" +#import "RCRTCStream.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCRTCMixLayoutMode) { + /*! + 自定义布局 + */ + RCRTCMixLayoutModeCustom = 1, + /*! + 悬浮布局 + */ + RCRTCMixLayoutModeSuspension = 2, + /*! + 自适应布局 + */ + RCRTCMixLayoutModeAdaptive = 3 +}; + +typedef NS_ENUM(NSInteger, RCRTCMixMediaType) { + /*! + 音频 + */ + RCRTCMixMediaType_Audio = 1, + /*! + 视频 + */ + RCRTCMixMediaType_Video = 2, + /*! + 音视频 + */ + RCRTCMixMediaType_AV = 3 +}; + +@interface RCRTCMixConfig : NSObject + +/*! + 合流服务版本,不支持修改 + + @discussion + 从 5.1.1 版本,version 变更为 2 + */ +@property (nonatomic, assign, readonly) NSInteger version; + +/*! + 合流布局模式 + + 1:自定义布局,需要设置 customLayouts 2:悬浮布局 3:自适应布局 + */ +@property (nonatomic, assign) RCRTCMixLayoutMode layoutMode; + +/** + mode 为 2 或者 3 时可用,作用将此 stream 置顶,必须为视频流 + */ +@property (nonatomic, strong, nullable) RCRTCStream *hostVideoStream; + +/*! + 自定义模式开关 + + @discussion + 1. version == 1 时,customMode 字段不传, 保持上次逻辑不变,上次是按需订阅,就按需订阅。 + 2. version == 2 时,customMode == YES,按自定义视频布局列表 customLayouts,自定义混音音频列表 customMixAudios 来筛选。 + 2.1 当 customLayouts == nil,按之前逻辑通过设置 layoutMode 控制合流; + 2.2 当 customLayouts != nil,且 customLayouts.count == 0,所有视频流都不合流; + 2.3 当 customLayouts != nil,且 customLayouts.count != 0,layoutMode == 2 || layoutMode == 3,按 customLayouts 列表指定的视频流进行合流,但里面的 x,y,width,height 不会生效; + 2.4 当 customLayouts != nil,且 customLayouts.count != 0,layoutMode == 1,按 customLayouts 列表指定的视频流进行合流,并且按照设置的 x,y,width,height 进行布局; + 2.5 当 customMixAudios == nil,可参与合流的音频流和之前保持一致; + 2.6 当 customMixAudios != nil,且 customMixAudios.count == 0,所有音频流都不合流; + 2.7 当 customMixAudios != nil,且 customMixAudios.count != 0,按照 customMixAudios 列表指定的音频流进行合流; + 3. version == 2 时,customMode == NO,取消之前设置过的参数筛选配置 + Added from 5.1.1 + */ +@property (nonatomic, assign) BOOL customMode; + +/*! + 自定义视频流列表,SDK 根据输入视频流列表中的流进行混流,效果为设置其他人的窗口排版 + */ +@property (nonatomic, strong) NSMutableArray *customLayouts; + +/*! + 自定义音频流列表,SDK 根据输入音频流列表中的流进行混流 + + @discussion + Added from 5.1.1 + */ +@property (nonatomic, strong) NSMutableArray *customMixAudios; + +/*! + 合流音视频配置,包括音频和视频 + */ +@property (nonatomic, strong) RCRTCMediaConfig *mediaConfig; + +/*! + 设置 MCU 混流配置 + + @param mixVideos 视频输入混流列表,为 nil 代表视频全混流,为空数组代表视频全不混流,否则按输入列表进行混流 + @param mixAudios 音频输入混流列表,为 nil 代表音频全混流,为空数组代表音频全不混流,否则按输入列表进行混流 + @discussion + 通过传入音频、视频混流列表,设置 MCU 的音视频混流 + + @remarks RCRTCMixConfig:混流操作 + Added from 5.1.3 + */ +- (void)setMixInputFilterByStreams:(nullable NSArray *)mixVideos + mixAudios:(nullable NSArray *)mixAudios; + +/*! + 设置 MCU 混流配置 + + @param roomIds 混流房间列表 + @param mixMediaType 混流媒体类型 + @param isAppend 是否为增量混流,YES 为增量混流,NO 为全量覆盖混流 + @discussion + 通过传入混流房间列表,设置 MCU 的音视频混流 + + @remarks RCRTCMixConfig:混流操作 + Added from 5.1.3 + */ +- (void)setMixInputFilterByRoomIds:(nullable NSArray *)roomIds + mixMediaType:(RCRTCMixMediaType)mixMediaType + isAppend:(BOOL)isAppend; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOtherRoom.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOtherRoom.h new file mode 100644 index 0000000..33002be --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOtherRoom.h @@ -0,0 +1,24 @@ +// +// RCRTCOtherRoom.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/3. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCBaseRoom.h" +#import "RCRTCOtherRoomEventDelegate.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCOtherRoom : RCRTCBaseRoom + +/*! + 副房间代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOtherRoomEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOtherRoomEventDelegate.h new file mode 100644 index 0000000..8025ea1 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOtherRoomEventDelegate.h @@ -0,0 +1,205 @@ +// +// RCRTCOtherRoomEventDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2020/8/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#ifndef RCRTCOtherRoomEventDelegate_h +#define RCRTCOtherRoomEventDelegate_h + +#import +#import + +@class RCRTCRemoteUser; +@class RCRTCInputStream; +@class RCRTCRoom; +@class RCRTCBaseRoom; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频通话的房间代理, 实现这个代理之后房间成员变化以及资源的变化都会通过代理通知给您 + */ +@protocol RCRTCOtherRoomEventDelegate + +@optional + +/*! + 有用户加入的回调, 此时 user 不包含任何资源, 只是标记有人加入, 此时无法订阅这个人的流 + + @param room 用户所在房间 + @param user 加入的用户信息 + @discussion + 有用户加入的回调, 此时 user 不包含任何资源, 只是标记有人加入, 此时无法订阅这个人的流 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didJoinUser:(nullable RCRTCRemoteUser *)user; + +/*! + 有用户离开时的回调, 当有用户离开的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @param room 用户所在房间 + @param user 离开的用户 + @discussion + 有用户离开时的回调, 当有用户离开的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didLeaveUser:(nullable RCRTCRemoteUser *)user; + +/*! + 有用户掉线时的回调, 当有用户掉线的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @param room 用户所在房间 + @param user 掉线的用户 + @discussion + 有用户掉线时的回调, 当有用户掉线的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didOfflineUser:(nullable RCRTCRemoteUser *)user; + +/*! + 副房间远端用户切换身份通知 + + @param room 用户所在房间 + @param user 切换身份的用户 + @param roleType 该用户当前的身份 + + @discussion + 当副房间用户切换身份的时候,副房间内其他主播会收到该消息。 + 如果订阅了当前 user 的流,SDK 会主动取消订阅,不需要手动取消订阅。 + added from 5.2.6 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didSwitchRoleWithUser:(RCRTCRemoteUser *)user roleType:(RCRTCLiveRoleType)roleType; + +/*! + 订阅远端资源成功后, 音频或视频首帧到达通知 + + @param room 事件所在房间 + @param stream 开始接收数据的 stream + @param mediaType 数据流类型(如视频流、音频流) + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didReportFirstFrame:(nullable RCRTCInputStream *)stream mediaType:(RCRTCMediaType)mediaType; + +/*! + 当有远端用户发布资源时, 通过此方法回调通知上报该用户发布的流 + + @param room 事件所在房间 + @param streams 用户发布的资源信息 + @discussion + 当有远端用户发布资源时, 通过此方法回调通知上报该用户发布的流, 其中流中有 + userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, + 可调用订阅接口, 订阅其中的流 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didPublishStreams:(NSArray *)streams; + +/*! + 当有远端用户取消发布资源时, 通过此方法回调, SDK 默认会取消订阅这些流, 其中流中有 + userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, + APP 可根据这些关键信息自定义化, 无需再次调用取消订阅接口 + + @param streams 取消发布资源 + @discussion + 当有远端用户取消发布资源时, 通过此方法回调, SDK 默认会取消订阅这些流, 其中流中有 + userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, + APP 可根据这些关键信息自定义化, 无需再次调用取消订阅接口 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didUnpublishStreams:(NSArray *)streams; + +/*! + 接收到副房间内远端用户发送的 SEI 通知 + + @param room 事件所在房间 + @param SEI sei 数据 + @param userId 用户id + @discussion 监听远端用户发送的 SEI 内容,通过 userId 区分。 + Added from 5.2.5 + + @remarks 代理 + */ +- (void)room:(RCRTCBaseRoom *)room didReceiveSEI:(NSString *)SEI userId:(NSString *)userId; + +/*! + 音频状态改变 + + @param stream 流信息 + @param mute 当前流是否可用 + @discussion + 音频状态改变 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room stream:(nullable RCRTCInputStream *)stream didAudioMute:(BOOL)mute; + +/*! + 视频状态改变 + + @param stream 流信息 + @param enable 当前流是否可用 + @discussion + 视频状态改变 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room stream:(nullable RCRTCInputStream *)stream didVideoEnable:(BOOL)enable; + +/*! + 接收到其他人发送到 room 里的消息 + + @param message 消息体, 参考 IMLib 中 RCMessage + @discussion + 接收到其他人发送到 room 里的消息 + + @remarks 代理 + */ +- (void)room:(nullable RCRTCBaseRoom *)room didReceiveMessage:(RCMessage *)message; + +/*! + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, + 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @param room 离开的房间 + @discussion + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, + 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @remarks 代理 + */ +- (void)didKickedOutOfTheRoom:(nullable RCRTCRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked:reason: instead"); + +/*! + 如果用户在房间内, 此时收到服务器封禁的通知, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @param room 离开的房间 + @discussion + 如果用户在房间内, 此时收到服务器封禁的通知, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @remarks 代理 + */ +- (void)didKickedOtherRoomByServer:(nullable RCRTCBaseRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked:reason: instead"); + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RongRTCRoomDelegate_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOutputStream.h new file mode 100644 index 0000000..c8e7392 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCOutputStream.h @@ -0,0 +1,51 @@ +// +// RCRTCOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/8. +// Copyright © 2019年 RongCloud. All rights reserved. +// + +#import +#import + +#import "RCRTCStream.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 本地输出音视频流 + */ +@interface RCRTCOutputStream : RCRTCStream + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCOutputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCOutputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProbeStatusForm.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProbeStatusForm.h new file mode 100644 index 0000000..333f7b4 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProbeStatusForm.h @@ -0,0 +1,39 @@ +// +// RCRTCProbeStatusForm.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/21. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCRTCProbeQualityLevel) { + RCRTCProbeQualityLevel_Excellent, + RCRTCProbeQualityLevel_Good, + RCRTCProbeQualityLevel_Pool, + RCRTCProbeQualityLevel_Bad, + RCRTCProbeQualityLevel_VeryBad, + RCRTCProbeQualityLevel_Down, +}; + +typedef NS_ENUM(NSInteger, RCRTCStreamDirection) { + RCRTCStreamDirection_UpLink = 1, + RCRTCStreamDirection_DownLink = 2, +}; + +@class RCRTCBaseStat; +/// Add from 5.1.17 +@interface RCRTCProbeStatusForm : NSObject + +@property (nonatomic, readonly) RCRTCProbeQualityLevel qualityLevel; + +@property (nonatomic, readonly) RCRTCStreamDirection direction; + +@property (nonatomic, readonly) RCRTCBaseStat *stat; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProbeTestDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProbeTestDelegate.h new file mode 100644 index 0000000..218bdbf --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProbeTestDelegate.h @@ -0,0 +1,36 @@ +// +// RCRTCProbeTestDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/16. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCProbeStatusForm; + +/// Add from 5.1.17 +@protocol RCRTCProbeTestDelegate + +/*! + 汇报探测状态数据 + */ +- (void)didReportProbeForms:(NSArray *)forms; + +/*! + 探测完成 + */ +- (void)didRTCProbeComplete; + +/*! + 探测中断 + */ +- (void)didRTCProbeInterrput:(RCRTCCode)errorCode; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProxy.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProxy.h new file mode 100644 index 0000000..1dd788d --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCProxy.h @@ -0,0 +1,57 @@ +// +// RCRTCProxyInfo.h +// RongRTCLib +// +// Created by RongCloud on 2022/09/06. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCProxy : NSObject + +/*! + 代理地址, 默认值: @"", 非 nil 或非 @"" 时有效 + */ +@property (nonatomic, copy) NSString *host; + +/*! + 代理地址对应IP, 只读, 不可设置 + */ +@property (nonatomic, copy, readonly) NSString *ip; + +/*! + 代理端口, 默认值: -1, 大于 0 时有效 + */ +@property (nonatomic, assign) NSInteger port; + +/*! + 代理服务登录用户名, 默认值: @"" + 如果需要则填写, 不需要可不填写, + userName 与 password 同时非 nil 或非 @"" 时有效 + */ +@property (nonatomic, copy) NSString *userName; + +/*! + 代理服务登录密码, 默认值: @"" + 如果需要则填写, 不需要可不填写, + userName 与 password 同时非 nil 或非 @"" 时有效 + */ +@property (nonatomic, copy) NSString *password; + +/*! + 可通过代理服务连接的协议类型, 默认值: RCRTCProxyOptionsAll, 全支持 + */ +@property (nonatomic, assign) RCRTCProxyOptions proxyOption; + +/*! + 验证设置数据是否有效 + */ +- (BOOL)isValid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRemoteUser.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRemoteUser.h new file mode 100644 index 0000000..b3b5f8f --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRemoteUser.h @@ -0,0 +1,53 @@ +// +// RCRTCRemoteUser.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/9. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCInputStream.h" +#import "RCRTCUser.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频远端用户 + */ +@interface RCRTCRemoteUser : RCRTCUser + +/*! + 获取该远端用户发布的所有音视频流 + */ +@property (nonatomic, copy, readonly) NSArray *remoteStreams; + +/*! + 将一个视频流切换成小码率视频流 + + @param streams 要切换的流 + @param completion 切换是否成功 + @discussion + 将一个视频流切换成小码率视频流 + + @remarks 资源管理 + */ +- (void)switchToTinyStream:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +/*! + 将一个视频流切换成正常码率视频流 + + @param streams 要切换的视频流 + @param completion 切换是否成功 + @discussion + 将一个视频流切换成正常码率视频流 + + @remarks 资源管理 + */ +- (void)switchToNormalStream:(nullable NSArray *)streams + completion:(nullable RCRTCOperationCallback)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRemoteVideoView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRemoteVideoView.h new file mode 100644 index 0000000..c0cb687 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRemoteVideoView.h @@ -0,0 +1,24 @@ +// +// RCRemoteVideoView.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/17. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import "RCRTCVideoPreviewView.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + ⚠️ RCRTCRemoteVideoView 即将废弃 , 请使用RCRTCVideoView + + @discussion deprecated from 5.1.10 + */ +__attribute__((deprecated("Class RCRTCRemoteVideoView is deprecated , use Class RCRTCVideoView instead"))) + +@interface RCRTCRemoteVideoView : RCRTCVideoPreviewView + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoom.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoom.h new file mode 100644 index 0000000..be40c16 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoom.h @@ -0,0 +1,77 @@ +// +// RCRTCRoom.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCBaseRoom.h" +#import "RCRTCRoomEventDelegate.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCLocalUser; +@class RCRTCCDNInputStream; + +/*! + 音视频通话的房间 + */ +@interface RCRTCRoom : RCRTCBaseRoom + +/*! + 房间事件代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 当前用户 + */ +@property (nonatomic, strong, readonly, nullable) RCRTCLocalUser *localUser; + +/*! + 主房间中主播已经加入的副房间Id列表 + */ +@property (nonatomic, strong, readonly) NSArray *otherRoomIdArray; + +/*! + 远端音频数据(合流)回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioDataCallback receivedAudioBufferCallback; + +/*! + 设置所有远端用户是否静音 + + @param mute 是否静音所有远端用户, YES 禁止 NO 允许 + @discussion + 将所有远端用户静音, 注: 该功能只是不播放接收到的音频数据 + + @remarks 音频流处理 + */ +- (void)muteAllRemoteAudio:(BOOL)mute; + +/*! + 获取直播合流数组 + + @discussion + 只要有主播就会存在, 房间内没有主播则为 空数组 + Added from 5.1.0 + + @remarks 资源管理 + */ +- (NSArray *)getLiveStreams; + +/*! + 获取CDN流 + + @discussion + 只要有房间有cdn流发布 + + @remarks 资源管理 + */ +- (nullable RCRTCCDNInputStream *)getCDNStream; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoomConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoomConfig.h new file mode 100644 index 0000000..d9207ad --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoomConfig.h @@ -0,0 +1,60 @@ +// +// RCRTCRoomConfig.h +// RongRTCLib +// +// Created by RongCloud on 2019/5/21. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCRoomConfig : NSObject + +/*! + 语音识别源语言 + */ +@property (nonatomic, copy) NSString *srcLanguageCode; + +/*! + 加入房间场景, 默认值: RCRTCRoomTypeNormal + */ +@property (nonatomic, assign) RCRTCRoomType roomType; + +/*! + 直播类型,仅在 RCRTCRoomType 为 RCRTCRoomTypeLive 时可用,选择当前为音频直播还是音视频直播, 默认值: RCRTCLiveTypeAudioVideo + */ +@property (nonatomic, assign) RCRTCLiveType liveType; + +/*! + 直播角色类型,仅在 RCRTCRoomType 为 RCRTCRoomTypeLive 时可用,默认值: RCRTCLiveRoleTypeBroadcaster + + @discussion add from 5.1.0 + */ +@property (nonatomic, assign) RCRTCLiveRoleType roleType; + +/*! + 加入房间类型, 同一 UserID 多端加入房间时的处理类型 + */ +@property (nonatomic, assign) RCRTCJoinRoomType joinType; + +/*! +设置用户属性 + */ +@property (nonatomic, copy, nullable) NSDictionary *localUserDatas; + +/*! + 离开房间是否停止混音和短音效,默认值:YES + */ +@property (nonatomic, assign) BOOL stopAudioMixer; + +/*! + 请求超时时间,默认值:30s + */ +@property (nonatomic, assign) NSInteger timeout; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoomEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoomEventDelegate.h new file mode 100644 index 0000000..48e2142 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCRoomEventDelegate.h @@ -0,0 +1,383 @@ +// +// RCRTCRoomEventDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/7. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#ifndef RongRTCRoomDelegate_h +#define RongRTCRoomDelegate_h + +#import +#import + +@class RCRTCRemoteUser; +@class RCRTCAudioInputStream; +@class RCRTCVideoInputStream; +@class RCRTCRoom; +@class RCRTCCDNInputStream; +@class RCRTCASR; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频通话的房间代理, 实现这个代理之后房间成员变化以及资源的变化都会通过代理通知给您 + */ +@protocol RCRTCRoomEventDelegate + +@optional + +/*! + 语音识别服务开启通知回调 + + @remarks 代理 + */ +- (void)didReceiveStartASR; + +/*! + 语音识别服务停止通知回调 + + @remarks 代理 + */ +- (void)didReceiveStopASR; + +/*! + 语音识别信息回调 + + @param asrContent 语音识别信息 + + @remarks 代理 + */ +- (void)didReceiveASRContent:(RCRTCASRContent *)asrContent; + +/*! + 语音翻译结果回调 + + @param content 语音翻译结果 + + @remarks 代理 + */ +- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content; + +/*! + 远端用户加入通知 + + @param user 加入的用户信息 + @discussion + 有用户加入的回调, 此时 user 不包含任何资源, 只是标记有人加入, 此时无法订阅这个人的流 + + @remarks 代理 + */ +- (void)didJoinUser:(RCRTCRemoteUser *)user; + +/*! + 远端用户离开通知 + + @param user 离开的用户 + @discussion + 有用户离开时的回调, 当有用户离开的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)didLeaveUser:(RCRTCRemoteUser *)user; + +/*! + 远端用户切换身份通知 + + @param user 切换身份的用户 + @param roleType 该用户当前的身份 + + @discussion + 有切换身份时的回调,当有用户切换身份的时候,当前房间内其他主播会收到该消息。 + 如果订阅了当前 user 的流,SDK 会主动取消订阅,不需要手动取消订阅。 + added from 5.1.9 + + @remarks 代理 + */ +- (void)didSwitchRoleWithUser:(RCRTCRemoteUser *)user roleType:(RCRTCLiveRoleType)roleType; + + +/*! + 远端用户掉线通知 + + @param user 掉线的用户 + @discussion + 有用户掉线时的回调, 当有用户掉线的时候, SDK 会取消订阅这个 user, APP 无需再次调用取消订阅的接口 + + @remarks 代理 + */ +- (void)didOfflineUser:(RCRTCRemoteUser *)user; + +/*! + 第一个视频关键帧到达通知 + + @param stream 开始接收数据的 stream + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)didReportFirstKeyframe:(RCRTCVideoInputStream *)stream + DEPRECATED_MSG_ATTRIBUTE("use RCRTCRoomEventDelegate.h didReportFirstFrame:mediaType: instead"); + +/*! + 加入房间后, 第一个音频关键帧到达通知 + + @param stream 开始接收数据的 stream + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)didReportFirstAudioFrame:(RCRTCAudioInputStream *)stream + DEPRECATED_MSG_ATTRIBUTE("use RCRTCRoomEventDelegate.h didReportFirstFrame:mediaType: instead"); + +/*! + 订阅远端资源成功后, 音频或视频首帧到达通知 + + @param stream 开始接收数据的 stream + @param mediaType 数据流类型(如视频流、音频流) + @discussion + 数据流第一个关键帧到达 + + @remarks 代理 + */ +- (void)didReportFirstFrame:(RCRTCInputStream *)stream mediaType:(RCRTCMediaType)mediaType; + +/*! + 远端用户发布资源通知 + + @param streams 用户发布的资源信息 + @discussion + 当有远端用户发布资源时, 通过此方法回调通知上报该用户发布的流, 其中流中有 userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, 可调用订阅接口, 订阅其中的流 + + @remarks 代理 + */ +- (void)didPublishStreams:(NSArray *)streams; + +/*! + 远端用户取消发布资源通知 + + @param streams 取消发布资源 + @discussion + 当有远端用户取消发布资源时, 通过此方法回调, SDK 默认会取消订阅这些流, 其中流中有 userID(用户 ID), tag(标识符), type(流类型), state(是否禁用) 等关键信息, APP 可根据这些关键信息自定义化, 无需再次调用取消订阅接口 + + @remarks 代理 + */ +- (void)didUnpublishStreams:(NSArray *)streams; + +/*! + 远端直播合流发布资源通知 + + @param streams 发布的直播资源 + @discussion + 当直播存在的时候(只要有一个主播存在),直播合流就存在,代理会通知到用户liveStreams已经发布 + 用户可以使用RCRTCLocal.h 里面的 subscribeStream:tinyStreams:completion: api去订阅. + Added from 5.1.0 + + @remarks 代理 + */ +- (void)didPublishLiveStreams:(NSArray *)streams; + +/*! + 远端直播合流取消发布资源通知 + + @param streams 取消发布的直播资源 + @discussion + 当房间内没有任何主播在发布资源的时候, 直播的合流就不存在了, + 代理会通知到用户liveStreams已经取消发布,sdk内部会主动取消订阅一次,用户也可以进行一次取消订阅合流. + Added from 5.1.0 + + @remarks 代理 + */ +- (void)didUnpublishLiveStreams:(NSArray *)streams; + +/*! + 远端CDN流发布资源通知 + + @param stream 发布的CDN资源 + @discussion + Added from 5.1.5 + + @remarks 代理 + */ +- (void)didPublishCDNStream:(RCRTCCDNInputStream *)stream; + +/*! + 远端CDN流取消发布资源通知 + + @param stream 取消发布的CDN资源 + @discussion + Added from 5.1.5 + + @remarks 代理 + */ +- (void)didUnpublishCDNStream:(RCRTCCDNInputStream *)stream; + +/*! + 接收到远端用户发送的 SEI 通知 + + @param SEI sei 数据 + @param userId 用户id + @discussion 监听远端用户发送的 SEI 内容,通过 userId 区分。 + Added from 5.2.5 + + @remarks 代理 + */ +- (void)didReceiveSEI:(NSString *)SEI userId:(NSString *)userId; + +/*! + 观众接收到合流 SEI 通知 + + @param SEI sei 数据 + @discussion 观众角色订阅 liveStreams 后,该回调会接收以下两种类型的数据。 + 1.mcu server 会主动通过该接口回调主播合流布局的信息 {"mcuRoomState":"xxx"} + 2.如果远端主播有发送 SEI,可以通过此回调接收数据。 + Added from 5.2.5 + + @remarks 代理 + */ +- (void)didReceiveLiveStreamSEI:(NSString *)SEI; + +/*! + 接收到其他人发送到 room 里的消息 + + @param message 消息体, 参考 IMLib 中 RCMessage + @discussion + 接收到其他人发送到 room 里的消息 + + @remarks 代理 + */ +- (void)didReceiveMessage:(RCMessage *)message; + +/*! + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + + @param room 离开的房间 + @discussion + 如果用户调用 RCRTCEngine 的 setReconnectEnable 关闭 SDK 断线重连, 1分钟没有链接上信令服务器, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + @deprecated from 5.1.0 + + @remarks 代理 + */ +- (void)didKickedOutOfTheRoom:(RCRTCRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked instead"); + +/*! + 被服务端踢下线通知 + + @param room 离开的房间 + @discussion + 如果用户在房间内, 此时收到服务器封禁的通知, SDK 会关闭音视频连接, 释放资源, + 将用户踢出房间, 回调通知用户 + @deprecated from 5.1.0 + + @remarks 代理 + */ +- (void)didKickedByServer:(RCRTCBaseRoom *)room + DEPRECATED_MSG_ATTRIBUTE("use RCRTCEngineEventDelegate.h didKicked instead"); + +/*! + 远端用户音频静默改变通知 + + @param stream 流信息 + @param mute 当前流是否可用 + @discussion + 音频状态改变 + + @remarks 代理 + */ +- (void)stream:(RCRTCInputStream *)stream didAudioMute:(BOOL)mute; + +/*! + 远端用户视频静默改变通知 + + @param stream 流信息 + @param enable 当前流是否可用 + @discussion + 视频状态改变 + + @remarks 代理 + */ +- (void)stream:(RCRTCInputStream *)stream didVideoEnable:(BOOL)enable; + +#pragma mark - 邀请跨房间连麦 +/*! + 其他房间邀请人调用 RCRTCLocalUser 类中 requestJoinOtherRoom:userId:autoMix:extra:completion: 方法, + 定向发起连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @param inviterRoomId 邀请人所在房间号 + @param inviterUserId 邀请人的用户Id + @param extra 自定义扩展信息, 邀请人发起邀请时填写的自定义扩展信息 + @discussion + 其他房间邀请人定向发起连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @remarks 代理 + */ +- (void)didRequestJoinOtherRoom:(NSString *)inviterRoomId + inviterUserId:(nullable NSString *)inviterUserId + extra:(nullable NSString *)extra; + +/*! + 其他房间邀请人调用 RCRTCLocalUser 类中 cancelRequestJoinOtherRoom:userId:extra:completion: 方法, + 取消之前发起的连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @param inviterRoomId 邀请人所在房间号 + @param inviterUserId 邀请人的用户Id + @param extra 自定义扩展信息, 邀请人取消邀请时填写的自定义扩展信息 + @discussion + 其他房间邀请人取消之前发起的连麦邀请后, 被邀请人收到的回调, 其他非被邀请人不会收到此回调 + + @remarks 代理 + */ +- (void)didCancelRequestOtherRoom:(NSString *)inviterRoomId + inviterUserId:(nullable NSString *)inviterUserId + extra:(nullable NSString *)extra; + +/*! + 被邀请人调用 RCRTCLocalUser 类中 responseJoinOtherRoom:userId:agree:autoMix:extra:completion: 方法, + 被邀请人应答同意连麦邀请后, 邀请人及其房间中其他非观众用户收到的回调 + 被邀请人应答拒绝连麦邀请后, 只有邀请人收到的回调, 其他用户不会收到此回调 + + @param inviterRoomId 邀请人所在房间号 + @param inviterUserId 邀请人的用户Id + @param inviteeRoomId 被邀请人所在房间号 + @param inviteeUserId 被邀请人的用户Id + @param agree 被邀请人同意/拒绝 + @param extra 自定义扩展信息, 被邀请人应答时填写的自定义扩展信息 + @discussion + 被邀请人应答同意连麦邀请后, 邀请人及其房间中其他非观众用户收到的回调 + 被邀请人应答拒绝连麦邀请后, 只有邀请人收到的回调, 其他用户不会收到此回调 + + @remarks 代理 + */ +- (void)didResponseJoinOtherRoom:(nullable NSString *)inviterRoomId + inviterUserId:(nullable NSString *)inviterUserId + inviteeRoomId:(nullable NSString *)inviteeRoomId + inviteeUserId:(nullable NSString *)inviteeUserId + agree:(BOOL)agree + extra:(nullable NSString *)extra; + +/*! + 结束连麦用户在调用 RCRTCEngine 类中 leaveOtherRoom:notifyFinished:completion: 方法时, + 如果将 notifyFinished 对应的参数填写为 YES, 正在跨房间连麦的所有用户将会收到此回调, 否则不会收到此回调 + + @param roomId 结束连麦用户所在房间号 + @param userId 结束连麦用户Id + @discussion + 结束连麦用户在调用 leaveOtherRoom:notifyFinished:completion: 方法时, + 如果将 notifyFinished 对应的参数填写为 YES, 正在跨房间连麦的所有用户将会收到此回调, 否则不会收到此回调 + + @remarks 代理 + */ +- (void)didFinishOtherRoom:(NSString *)roomId userId:(NSString *)userId; + + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RongRTCRoomDelegate_h */ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCScreenShareOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCScreenShareOutputStream.h new file mode 100644 index 0000000..d09513b --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCScreenShareOutputStream.h @@ -0,0 +1,30 @@ +// +// RCRTCScreenShareOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2021/8/24. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +/* + Added from 5.1.8 + */ +@interface RCRTCScreenShareOutputStream : RCRTCVideoOutputStream + +/*! + 音频数据回调 + */ +@property (nonatomic, copy, nullable) RCRTCAudioFrameCallback audioDataCallback; + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)new NS_UNAVAILABLE; + +- (instancetype)initVideoOutputStreamWithTag:(NSString *)tag NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStatusForm.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStatusForm.h new file mode 100644 index 0000000..f3bfbaa --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStatusForm.h @@ -0,0 +1,94 @@ +// +// RCRTCStatusForm.h +// RongRTCLib +// +// Created by RongCloud on 2019/5/30. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCGlobals.h" +#import "RCRTCLibDefine.h" +#import "RCRTCStreamStat.h" + +NS_ASSUME_NONNULL_BEGIN + +RONGRTCLIB_EXTERN NSString *const RongRTCMediaTypeVideo; +RONGRTCLIB_EXTERN NSString *const RongRTCMediaTypeAudio; + +typedef NS_ENUM(NSInteger, RongRTCStreamState) { Equivocal = -1, Disabled = 0, Enabled = 1 }; + +/*! + sdk 状态统计表 + */ +@interface RCRTCStatusForm : NSObject + +/*! + cpu 使用率 + */ +@property (nonatomic, readonly) float cpuUsage; + +/*! + 上行码率 + */ +@property (nonatomic, readonly) float totalSendBitRate; + +/*! + 下行码率 + */ +@property (nonatomic, readonly) float totalRecvBitRate; + +/*! + 系统 cpu 使用率 + */ +@property (nonatomic, readonly) float cpuUsageOfOS; + +/*! + 网络类型,wlan 4g + */ +@property (nonatomic, readonly, nullable) NSString *networkType; + +/*! + 往返时间 + */ +@property (nonatomic, readonly) NSInteger rtt; + +/*! + ip 地址 + */ +@property (nonatomic, readonly, nullable) NSString *ipAddress; + +/*! + 可接收带宽 + */ +@property (nonatomic, readonly) NSInteger availableReceiveBandwidth; + +/*! + 可发送带宽 + */ +@property (nonatomic, readonly) NSInteger availableSendBandwidth; + +/*! + 发送端丢包数 + */ +@property (nonatomic, readonly) NSInteger packetsDiscardedOnSend; + +/*! + 上行 媒体流状态统计 数组 + */ +@property (nonatomic, readonly) NSArray *sendStats; + +/*! + 下行 媒体流状态统计 数组 + */ +@property (nonatomic, readonly) NSArray *recvStats; + +/*! + 通过 trackId 查找到此 Track 所属的 UserId + */ ++ (NSString *)fetchUserIdFromTrackId:(NSString *)trackId + DEPRECATED_MSG_ATTRIBUTE("use RCRTCStreamStat userId property instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStatusReportDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStatusReportDelegate.h new file mode 100644 index 0000000..d21d2a3 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStatusReportDelegate.h @@ -0,0 +1,45 @@ +// +// RCRTCStatusReportDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2019/6/12. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCStatusForm; +@class RCRTCLiveAudioStatus; + +@protocol RCRTCStatusReportDelegate + +/*! + 汇报 SDK 状态数据 + + @param form 状态表单对象 + @discussion + 汇报 SDK 状态数据 + + @remarks 代理 + */ +- (void)didReportStatusForm:(RCRTCStatusForm *)form; + +@optional +/*! + 汇报直播音频合流音声状态 + + @param audioStatus 音频流声音状态 + @discussion + 当前用户订阅了直播音频合流,汇报合流声音状态,例如当前音频合流有 A B C 三个主播的声音, + 此时 A 在发声,audioStatus 数组里面就会上报 A 的 audioLevel [0 ~ 9] + + + @remarks 代理 + */ +- (void)didReportLiveAudioStatus:(NSArray *)audioStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStream.h new file mode 100644 index 0000000..bf755d0 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStream.h @@ -0,0 +1,88 @@ +// +// RCRTCStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/5/18. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 音视频流 + */ +@interface RCRTCStream : NSObject + +/*! + 媒体流 ID + */ +@property (nonatomic, copy, readonly, nullable) NSString *streamId; + +/*! + 媒体流类型 + */ +@property (nonatomic, assign, readonly) RCRTCMediaStreamType mediaStreamType; + +/*! + 媒体类型 + */ +@property (nonatomic, assign, readonly) RCRTCMediaType mediaType; + +/*! + 媒体流扩展标识符 + */ +@property (nonatomic, copy, readonly, nullable) NSString *tag; + +/*! + 媒体流所属的用户 ID + */ +@property (nonatomic, copy, readonly, nullable) NSString *userId; + +/*! + 媒体流资源状态 + */ +@property (nonatomic, assign, readonly) RCRTCResourceState resourceState; + +/*! + 媒体流禁用状态 + 注: + 1. 对于远端流(输入流),只是不解码视频与音频,但是音视频数据是正常接收的,如果不想接收数据可以进行取消订阅远端流 + 2. 对于本地流(输出流),不编码和发送音视频数据,不影响采集。 + */ +@property (nonatomic, assign, readwrite) BOOL isMute; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStreamStat.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStreamStat.h new file mode 100644 index 0000000..a880d08 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCStreamStat.h @@ -0,0 +1,31 @@ +// +// RCRTCStreamStat.h +// RongRTCLib +// +// Created by RongCloud on 2021/12/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import "RCRTCBaseStat.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCStreamStat : RCRTCBaseStat +/*! + trackId + */ +@property (nonatomic, readonly) NSString *trackId DEPRECATED_MSG_ATTRIBUTE("use streamId property instead"); + +/*! + 流Id + */ +@property (nonatomic, readonly, nullable) NSString *streamId; + +/*! + 用户Id + */ +@property (nonatomic, readonly, nullable) NSString *userId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCUser.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCUser.h new file mode 100644 index 0000000..117a522 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCUser.h @@ -0,0 +1,41 @@ +// +// RCRTCStream.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/2. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 列席会议的成员信息 + */ +@interface RCRTCUser : NSObject + +/*! + 请勿调用初始化方法 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 请勿调用初始化方法 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 用户 ID + */ +@property (nonatomic, copy, readonly) NSString *userId; + +/*! + 用户扩展信息 + */ +@property (nonatomic, copy, readonly, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoConfig.h new file mode 100644 index 0000000..3086b2c --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoConfig.h @@ -0,0 +1,60 @@ +// +// RCRTCVideoConfig.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import "RCRTCVideoExtend.h" +#import "RCRTCVideoLayout.h" +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCVideoConfig : NSObject + +/*! + 视频大流配置 + */ +@property (nonatomic, strong) RCRTCVideoLayout *videoLayout; + +/*! + 视频小流配置 + */ +@property (nonatomic, strong) RCRTCVideoLayout *tinyVideoLayout; + +/*! + 视频扩展配置 + */ +@property (nonatomic, strong) RCRTCVideoExtend *videoExtend; + +/*! + 合流布局背景色 + */ +@property (nonatomic, copy, readonly) NSString *backgroundColor; + +/*! + 设置合流布局背景色 + + @param red 取值范围: 0 ~ 255 + @param green 取值范围: 0 ~ 255 + @param blue 取值范围: 0 ~ 255 + @discussion + 此方法与 setBackgroundColor: 二选一使用, 效果相同 + 如果两个方法都使用, 将以最后一次设置为准 + */ +- (BOOL)setBackgroundColorWithRed:(NSUInteger)red green:(NSUInteger)green blue:(NSUInteger)blue; + +/*! + 设置合流布局背景色 + + @param backgroundColor 取值范围: 0x000000 ~ 0xffffff + @discussion + 此方法与 setBackgroundColorWithRed:green:blue: 二选一使用, 效果相同 + 如果两个方法都使用, 将以最后一次设置为准 + */ +- (BOOL)setBackgroundColor:(NSUInteger)backgroundColor; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoExtend.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoExtend.h new file mode 100644 index 0000000..566103d --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoExtend.h @@ -0,0 +1,33 @@ +// +// RCRTCVideoExtend.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCRTCVideoRenderMode) { + /*! + 自适应裁剪 + */ + RCRTCVideoRenderModeCrop = 1, + /*! + 填充 + */ + RCRTCVideoRenderModeWhole = 2 +}; + +@interface RCRTCVideoExtend : NSObject + +/*! + 本地输出视频流的裁剪模式 + */ +@property (nonatomic, assign) RCRTCVideoRenderMode renderMode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoFrame.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoFrame.h new file mode 100644 index 0000000..5359497 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoFrame.h @@ -0,0 +1,96 @@ +// +// RCRTCVideoFrame.h +// RongRTCLib +// +// Created by RongCloud on 2021/11/22. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 视频帧数据 + */ +@interface RCRTCVideoFrame : NSObject + +/*! + 视频帧格式 + */ +@property (nonatomic, readonly) RCRTCVideoFrameFormat format; + +/*! + 视频宽度,单位为像素 + */ +@property (nonatomic, readonly) NSInteger width; + +/*! + 视频高度,单位为像素 + */ +@property (nonatomic, readonly) NSInteger height; + +/*! + 储存视频 buffer 对象 + */ +@property (nonatomic, readonly, nullable) CVPixelBufferRef pixelBuffer; + +/*! + 视频原始数据 + */ +@property (nonatomic, readonly, nullable) NSData *data; + +/*! + 旋转角度,0,90,180,270 顺时针 + */ +@property (nonatomic, readonly) int rotation; + +/*! + 显示时间戳,单位为纳秒 + */ +@property (nonatomic, readonly) int64_t timeStampNs; + +/*! + 初始化视频帧数据 + + @param pixelBuffer 储存视频 buffer 对象, 只支持 NV12(420f) 或者 BGRA 格式视频 + @param timeStampNs 显示时间戳,单位为纳秒 + @param rotation 旋转角度,0,90,180,270 + + @return 视频帧数据 + @discussion SDK 内部会持有 pixelBuffer,所以使用者生成的 pixelBuffer 需要 CVBufferRelease() + */ +- (nullable instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer + timeStampNs:(int64_t)timeStampNs + rotation:(int)rotation; + +/*! + 初始化视频帧数据 + + @param sampleBuffer 储存视频 buffer 对象, 只支持 NV12(420f) 或者 BGRA 格式视频 + @param rotation 旋转角度,0,90,180,270 + + @return 视频帧数据 + @discussion SDK 内部会持有 sampleBuffer,所以使用者生成的 sampleBuffer 需要 CFRelease() + */ +- (nullable instancetype)initWithSampleBuffer:(CMSampleBufferRef)sampleBuffer + rotation:(int)rotation; + +/*! + 转码视频数据 + + @param pixelBuffer 转码后保存视频数据的buffer + + @discussion + 注意: + 1.需要确保传入 CVPixelBufferRef 的宽高和 RCRTCVideoFrame 的宽高一致,否则会放弃转码。 + 2.请传入一个 NV12 或者 BGRA 格式的 CVPixelBufferRef, 否则会放弃转码。 + + added from 5.1.15 + */ +- (void)convertToPixelBuffer:(CVPixelBufferRef)pixelBuffer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoInputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoInputStream.h new file mode 100644 index 0000000..21ca513 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoInputStream.h @@ -0,0 +1,152 @@ +// +// RCRTCVideoInputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/1. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCInputStream.h" +#import "RCRTCDrawer.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoInputStream; +/*! + 接收到视频流的代理 + */ +DEPRECATED_MSG_ATTRIBUTE("please use RCRTCInputStream.h RCRTCVideoInputStreamEventDelegate instead") +@protocol RCRTCVideoInputStreamDelegate + +/*! + 即将渲染视频帧的数据回调 + + @param ref 即将渲染的视频帧数据 + @param stream 即将渲染的视频帧数据所属接收到的流 + @discussion + 即将渲染视频帧数据, 如果需要自定义视频显示的话需要修改该视频帧 + + @remarks 代理 + */ +- (void)willRenderCVPixelBufferRef:(CVPixelBufferRef)ref stream:(RCRTCInputStream *)stream; +@end + + +/*! + 接收到视频流事件的代理 + */ +@protocol RCRTCVideoInputStreamEventDelegate + +@optional +/*! + 视频数据大小发生变化回调 + + @param stream 流信息 + @param size 流变化后的宽高 + + @discussion + 回调给流size的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)inputVideoStream:(RCRTCVideoInputStream *)stream didChangedFrameSize:(CGSize)size; + +/*! + 视频数据方向发生变化回调 + + @param stream 流信息 + @param rotation 0、90、180、270 + + @discussion + 回调给流方向的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)inputVideoStream:(RCRTCVideoInputStream *)stream didChangedRotation:(NSInteger)rotation; + +/*! + 即将渲染视频帧的数据回调 + + @param videoFrame 即将渲染的视频帧数据 + @param stream 即将渲染的视频帧数据所属接收到的流 + @discussion + 即将渲染视频帧数据,如果修改该视频帧,会影响本地渲染远端用户的视频帧,不支持修改数据格式 + + @remarks 代理 + added from 5.1.14 + */ +- (void)inputVideoStream:(RCRTCVideoInputStream *)stream willRenderVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +@end + +/*! + 接收到的视频流 + */ +@interface RCRTCVideoInputStream : RCRTCInputStream + +/*! + 接收到视频流事件的代理 + */ +@property (nonatomic, weak, nullable) id streamEventDelegate; + +/*! + 接收到的视频流代理 + */ +@property (nonatomic, weak, nullable) id delegate DEPRECATED_MSG_ATTRIBUTE( + "please use RCRTCVideoInputStream.h streamEventDelegate instead"); + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCVideoInputStream 实例对象 + */ +- (instancetype)init NS_UNAVAILABLE; + +/*! + 初始化 + + @discussion + 初始化 + + @warning + 请勿调用, 仅供 SDK 内部调用 + + @remarks 资源管理 + @return RCRTCVideoInputStream 实例对象 + */ +- (instancetype)new NS_UNAVAILABLE; + +/*! + 设置视频流的渲染视图 + + @param view 渲染视图 RCRTCVideoView 对象 + @discussion + 接受到远端用户的视频流,然后设置视频流的渲染视图,就可以渲染出远端视频 + + @remarks 视频配置 + */ +- (void)setVideoView:(nullable id)view; + +/*! + 设置视频流的渲染纹理视图 + + @param view 渲染纹理视图 + @discussion + 接受到远端用户的视频流,然后设置视频流的渲染纹理视图,就可以渲染出远端视频 + + @remarks 视频配置 + */ +- (void)setVideoTextureView:(nullable RCRTCVideoTextureView *)view; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoLayout.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoLayout.h new file mode 100644 index 0000000..1e6d180 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoLayout.h @@ -0,0 +1,37 @@ +// +// RCRTCVideoLayout.h +// RongRTCLib +// +// Created by RongCloud on 2020/2/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCRTCVideoLayout : NSObject + +/*! + 输出视频合流宽度 + */ +@property (nonatomic, assign) NSInteger width; + +/*! + 输出视频合流高度 + */ +@property (nonatomic, assign) NSInteger height; + +/*! + 输出视频合流帧率 + */ +@property (nonatomic, assign) NSInteger fps; + +/*! + 输出视频合流码率 + */ +@property (nonatomic, assign) NSInteger bitrate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoOutputStream.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoOutputStream.h new file mode 100644 index 0000000..5021c86 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoOutputStream.h @@ -0,0 +1,226 @@ +// +// RCRTCVideoOutputStream.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/2. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCOutputStream.h" +#import "RCRTCVideoSourceInterface.h" +#import "RCRTCDrawer.h" +@class RCRTCVideoView; +@class RCRTCVideoTextureView; +@class RCRTCVideoOutputStream; +@class RCRTCVideoFrame; + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoStreamConfig; + +/*! + 接收到视频流事件的代理 + */ +@protocol RCRTCVideoOutputStreamEventDelegate + +@optional +/*! + 视频数据大小发生变化回调 + + @param stream 流信息 + @param size 流变化后的宽和高 + + @discussion + 回调给流size的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream didChangedFrameSize:(CGSize)size; + +/*! + 视频数据方向发生变化回调 + + @param stream 流信息 + @param rotation 0、90、180、270 + + @discussion + 回调给流方向的数据变化 + + @remarks 代理 + added from 5.1.14 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream didChangedRotation:(NSInteger)rotation; + +/*! + 采集视频数据回调 + + @param videoFrame 采集的视频数据,类型为 RCRTCVideoFrameFormatNV12 + @param stream 采集的视频帧数据所属接收到的流 + @discussion + 采集的视频数据,如果修改该视频帧,会影响本地渲染和编码发送的视频帧数据,不支持修改数据格式 + + @remarks 代理 + added from 5.2.3 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream captureVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +/*! + 即将渲染视频帧的数据回调 + + @param videoFrame 即将渲染的视频帧数据,类型为 RCRTCVideoFrameFormatI420 + @param stream 即将渲染的视频帧数据所属接收到的流 + @discussion + 即将渲染视频帧数据,如果修改该视频帧,会影响本地视频渲染,不支持修改数据格式 + + @remarks 代理 + added from 5.1.14 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream willRenderVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +/*! + 即将编码发送的视频帧数据回调 + + @param videoFrame 即将编码发送的视频帧数据,类型为 RCRTCVideoFrameFormatI420 + @param stream 即将编码发送的视频帧数据所属接收到的流 + @discussion + 即将编码发送的视频帧数据,如果修改该视频帧,会影响发送出去的视频帧,不支持修改数据格式 + + @remarks 代理 + added from 5.2.1 + */ +- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream willEncodeVideoFrame:(nullable RCRTCVideoFrame *)videoFrame; + +@end + +/** + 视频数据写入接口 + */ +@protocol RCRTCVideoObserverInterface + +/*! + 写入媒体流 + + @param videoFrame 媒体数据 + @param error 失败时返回的相关描述 + @discussion 写入媒体流, 该方法会直接将视频数据进行视频编码并发送至远端 + + @remarks 资源管理 + */ +- (void)writeVideoFrame:(RCRTCVideoFrame *)videoFrame error:(NSError **)error; + +/*! + 写入媒体流 + + @param videoFrame 媒体数据 + @param mirror 视频数据是否镜像发送 + @param error 失败时返回的相关描述 + @discussion 写入媒体流, 该方法会直接将视频数据进行视频编码并发送至远端 + + @remarks 资源管理 + */ +- (void)writeVideoFrame:(RCRTCVideoFrame *)videoFrame mirror:(BOOL)mirror error:(NSError **)error; + + +- (void)write:(CMSampleBufferRef)sample + error:(NSError **)error DEPRECATED_MSG_ATTRIBUTE("use writeVideoFrame:error: instead"); +- (void)write:(CMSampleBufferRef)sample + mirror:(BOOL)mirror + error:(NSError **)error DEPRECATED_MSG_ATTRIBUTE("use writeVideoFrame:mirror:error: instead"); + +@end + +@interface RCRTCVideoOutputStream : RCRTCOutputStream + +/** + 本地视频配置 + */ +@property (nonatomic, copy, nullable) RCRTCVideoStreamConfig *videoConfig; + +/** + 输出视频源 + */ +@property (nonatomic, weak, nullable) id videoSource; + +@property (atomic, copy, nullable) RCRTCVideoFrameCallback videoFrameSendCallback DEPRECATED_MSG_ATTRIBUTE("use RCRTCVideoOutputStream.h outputVideoStream:willEncodeVideoFrame: instead"); + +@property (atomic, copy, nullable) RCRTCVideoCMSampleBufferCallback videoSendBufferCallback DEPRECATED_MSG_ATTRIBUTE("use RCRTCVideoOutputStream.h outputVideoStream:willEncodeVideoFrame: instead"); + +/*! + 接收到视频流事件的代理 + */ +@property (nonatomic, weak, nullable) id streamEventDelegate; + +/*! + 初始化视频流数据并设置标签 + + @param tag 用户自定标签,注:用户不能传特殊字符,只支持 ASCII + @discussion + 初始化流数据的参数 + + @remarks 资源管理 + @return 流对象 + */ +- (instancetype)initVideoOutputStreamWithTag:(NSString *)tag; + +/*! + 设置视频流的渲染视图 + + @param view 渲染界面,传空则将原视图删除 + @discussion + 设置视频媒体数据的渲染界面 + + @remarks 资源管理 + */ +- (void)setVideoView:(nullable id)view; + +/*! + 设置视频媒体数据的渲染纹理界面 + + @param view 渲染纹理界面,传空则将原视图删除 + @discussion + 设置视频媒体数据的渲染纹理界面 + + @remarks 资源管理 + */ +- (void)setVideoTextureView:(nullable RCRTCVideoTextureView *)view; + +/*! + 设置视频源 + + @param source 视频源 + @discussion + 设置视频源,如果使用者需要自定义视频流的话,需要实现 RCRTCVideoSourceInterface 协议,视频源中通过调用 RCRTCVideoOutputStream 的 write 方法写入视频数据 + + @remarks 资源管理 + */ +- (void)setVideoSource:(nullable id)source; + +#pragma mark - 水印 + +/*! + 设置水印 + + @param image 水印图片,如果该参数为 nil,则移除水印 + @param position 水印位置尺寸 + + @return 水印是否设置成功 + + @discussion Added from 5.1.15 + position 范围 0 ~ 1, 左上角为原点, + x:水印的坐标,取值范围为0 ~ 1的浮点数。 + y:水印的坐标,取值范围为0 ~ 1的浮点数。 + width:水印的宽度,取值范围为0 ~ 1的浮点数。 + height:不用设置,内部会根据水印图片的宽高比自动计算一个合适的高度。 + + 例如:当前视频的编码分辨率是 640 × 480 ,且 position 设置为(0.1,0.1,0.2,0.0) + 那么水印的左上坐标点就是(480 × 0.1,640 × 0.1)即(48,64) + 水印的宽度是 480 × 0.2 = 96px,水印的高度会根据水印图片的宽高比由 SDK 自动算出。 + + @remarks RCRTCEngine:媒体流操作 + */ +- (BOOL)setWaterMark:(nullable UIImage *)image position:(CGRect)position; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoPreviewView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoPreviewView.h new file mode 100644 index 0000000..2eeb813 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoPreviewView.h @@ -0,0 +1,27 @@ +// +// RCVideoPreview.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/17. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import + +#import "RCRTCVideoView.h" +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + ⚠️ RCRTCVideoPreviewView 即将废弃 , 请使用RCRTCVideoView + + @discussion deprecated from 5.1.10 + */ +__attribute__((deprecated("Class RCRTCVideoPreviewView is deprecated , use Class RCRTCVideoView instead"))) + +@interface RCRTCVideoPreviewView : RCRTCVideoView + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoSourceInterface.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoSourceInterface.h new file mode 100644 index 0000000..945a6d5 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoSourceInterface.h @@ -0,0 +1,57 @@ +// +// RCRTCVideoSourceInterface.h +// RongRTCLib +// +// Created by RongCloud on 2020/6/4. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +@protocol RCRTCVideoObserverInterface; + +NS_ASSUME_NONNULL_BEGIN + +/** + 视频数据源接口 + */ +@protocol RCRTCVideoSourceInterface + +/** + 视频流接口,RCRTCVideoOutputStream 实现了该接口,使用者可以通过 write 方法往视频输出流里写入视频数据 + */ +@property (nonatomic, weak, nullable) id observer; + +/*! + 初始化回调 + + @discussion + 调用 RCRTCVideoOutputStream 中 setVideoSource 方法成功,SDK 会通过 didInit 进行回调通知,接口实现类可以进行视频数据源的初始化工作 + + @remarks 资源管理 + */ +- (void)didInit; + +/*! + 开始回调 + + @discussion + 发布 RCRTCVideoOutputStream 成功,SDK 会通过 didStart 进行回调通知,接口实现类可以进行视频数据采集 + + @remarks 资源管理 + */ +- (void)didStart; + +/*! + 停止回调 + + @discussion + 取消发布 RCRTCVideoOutputStream,SDK 会通过 didStop 进行回调通知,接口实现类可以停止视频数据采集 + + @remarks 资源管理 + */ +- (void)didStop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoStreamConfig.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoStreamConfig.h new file mode 100644 index 0000000..ff81ed8 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoStreamConfig.h @@ -0,0 +1,48 @@ +// +// RCRTCVideoStreamConfig.h +// RongRTCLib +// +// Created by RongCloud on 2019/1/10. +// Copyright © 2019年 RongCloud. All rights reserved. +// + +#import +#import +#import + +#import "RCRTCLibDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 视频采集器参数 + */ +@interface RCRTCVideoStreamConfig : NSObject + +/*! + 视频发送的分辨率 + 默认: RCRTCVideoSizePreset640x480 + */ +@property (nonatomic, assign) RCRTCVideoSizePreset videoSizePreset; + +/*! + 视频发送的帧率 + 默认: 15 FPS + */ +@property (nonatomic, assign) RCRTCVideoFPS videoFps; + +/*! + 视频发送的最大码率 + 默认 640x480 分辨率时, 默认: 1000 kbps,如果外部修改过该值,使用修改的值 + */ +@property (nonatomic, assign) NSUInteger maxBitrate; + +/*! + 视频发送的最小码率 + 默认 640x480 分辨率时, 默认: 350 kbps,如果外部修改过该值,使用修改的值 + */ +@property (nonatomic, assign) NSUInteger minBitrate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoTextureView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoTextureView.h new file mode 100644 index 0000000..7eb4afa --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoTextureView.h @@ -0,0 +1,33 @@ +// +// RCRTCVideoTextureView.h +// RongRTCLib +// +// Created by RongCloud on 2020/10/21. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol RCRTCVideoTextureViewDelegate + +- (void)changeSize:(int)width height:(int)height; + +- (void)changeRotation:(int)rotation; + +- (void)firstFrameRendered; + +- (void)frameRendered; + +@end + +@interface RCRTCVideoTextureView : NSObject + +@property (nonatomic, weak, nullable) id textureViewDelegate; + +- (CVPixelBufferRef)pixelBufferRef; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoUnityView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoUnityView.h new file mode 100644 index 0000000..4cacfcb --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoUnityView.h @@ -0,0 +1,36 @@ +// +// RCRTCVideoUnityView.h +// RongRTCLib +// +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RTCUnityVideoFrame : NSObject + +@property (nonatomic, readonly) int width; +@property (nonatomic, readonly) int height; +@property (nonatomic, readonly, nullable) const uint8_t *dataY; +@property (nonatomic, readonly, nullable) const uint8_t *dataU; +@property (nonatomic, readonly, nullable) const uint8_t *dataV; +@property (nonatomic, readonly) int strideY; +@property (nonatomic, readonly) int strideU; +@property (nonatomic, readonly) int strideV; + +- (void)clear; + +@end + +@interface RCRTCVideoUnityView : NSObject + +- (nullable RTCUnityVideoFrame *)getCurrentFrame; + +- (NSInteger)getBufferLength; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoView.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoView.h new file mode 100644 index 0000000..1adcf10 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoView.h @@ -0,0 +1,67 @@ +// +// RCRTCVideoView.h +// RongRTCLib +// +// Created by RongCloud on 2021/4/19. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCRTCLibDefine.h" +#import "RCRTCDrawer.h" + +@protocol RCRTCVideoViewEventDelegate; + +NS_ASSUME_NONNULL_BEGIN + +/*! + 视图渲染类 + + @discussion add from 5.1.10 + */ +@interface RCRTCVideoView : UIView + +/*! + 修改 Frame 时,是否使用动画,默认:YES + */ +@property (nonatomic, assign) BOOL frameAnimated; + +/*! + 是否做镜像翻转,只做视图翻转,默认: YES + */ +@property (nonatomic, assign) BOOL isPreviewMirror; + +/*! + 视频填充方式 + */ +@property (nonatomic, assign) RCRTCVideoFillMode fillMode; + +/*! + 视频 view 代理 + */ +@property (nonatomic, weak, nullable) id delegate; + +/*! + 是否隐藏视图 + + @param isHidden 是否隐藏,YES 隐藏 NO 不隐藏 + @discussion + 隐藏视图 + + @remarks 视频配置 + */ +- (void)setHidden:(BOOL)isHidden; + +/*! + 刷新渲染视图 View + + @discussion + 刷新渲染视图 View + + @remarks 视频配置 + */ +- (void)flushVideoView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoViewEventDelegate.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoViewEventDelegate.h new file mode 100644 index 0000000..4c516fb --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RCRTCVideoViewEventDelegate.h @@ -0,0 +1,51 @@ +// +// RCRTCVideoViewEventDelegate.h +// RongRTCLib +// +// Created by RongCloud on 2021/11/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCRTCVideoStream; + +/*! + 视频 view 代理 + @discussion + added from 5.1.10 + */ +@protocol RCRTCVideoViewEventDelegate + +@optional + +/*! + 首帧通知 + + @param stream 视频流 + + @discussion + 视频数据渲染第一帧的回调 + added from 5.1.11 + + @remarks 代理 + */ +- (void)didFirstFrameRendered:(RCRTCStream *)stream; + +/*! + 远端视频尺寸大小改变通知 + + @param size 视频尺寸 + @discussion + 当远端视频尺寸大小改变时,会进行回调通知 + @deprecated from 5.1.11 + + @remarks 代理 + */ +- (void)didVideoSizeChanged:(CGSize)size DEPRECATED_MSG_ATTRIBUTE("use RCRTCVideoInputStream.h RCRTCVideoInputStreamEventDelegate didFrameSizeChanged:width:height: API instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RongRTCLib.h b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RongRTCLib.h new file mode 100644 index 0000000..1f15964 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Headers/RongRTCLib.h @@ -0,0 +1,76 @@ +// +// RongRTCLib.h +// RongRTCLib +// +// Created by RongCloud on 2018/12/13. +// Copyright © 2018年 RongCloud. All rights reserved. +// + +#import + +//! Project version number for RongRTCLib. +FOUNDATION_EXPORT double RongRTCLibVersionNumber; + +//! Project version string for RongRTCLib. +FOUNDATION_EXPORT const unsigned char RongRTCLibVersionString[]; + +// In this header, you should import all the public headers of your framework +// using statements like #import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Info.plist b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Info.plist new file mode 100644 index 0000000..9693f9a Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Modules/module.modulemap b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Modules/module.modulemap new file mode 100644 index 0000000..2cc41a7 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongRTCLib { + umbrella header "RongRTCLib.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/PrivacyInfo.xcprivacy b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..d601263 --- /dev/null +++ b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/PrivacyInfo.xcprivacy @@ -0,0 +1,32 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyTrackingDomains + + NSPrivacyTracking + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + diff --git a/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/RongRTCLib b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/RongRTCLib new file mode 100755 index 0000000..c0c7c05 Binary files /dev/null and b/nativeplugins/RongCloud-Call/ios/RongRTCLib.xcframework/ios-x86_64-simulator/RongRTCLib.framework/RongRTCLib differ diff --git a/nativeplugins/RongCloud-Call/package.json b/nativeplugins/RongCloud-Call/package.json new file mode 100644 index 0000000..10d4354 --- /dev/null +++ b/nativeplugins/RongCloud-Call/package.json @@ -0,0 +1,58 @@ +{ + "name": "RCUniCall", + "id": "RongCloud-Call", + "version": "5.30.0", + "description": "Rongcloud call lib sdk for uni", + "_dp_type": "nativeplugin", + "_dp_nativeplugin": { + "android": { + "plugins": [ + { + "type": "module", + "name": "RongCloud-Call-RCUniCall", + "class": "cn.rongcloud.call.uni.RCUniCallModule" + }, + { + "type": "component", + "name": "RongCloud-Call-RCUniCallView", + "class": "cn.rongcloud.call.uni.RCUniCallComponent" + } + ], + "integrateType": "aar", + "compileOptions": { + "sourceCompatibility": "1.8", + "targetCompatibility": "1.8" + }, + "dependencies": [ + "cn.rongcloud.sdk:call_lib:5.30.0" + ], + "useAndroidX": true + }, + "ios": { + "plugins": [ + { + "type": "module", + "name": "RongCloud-Call-RCUniCall", + "class": "RCUniCall" + }, + { + "type": "component", + "name": "RongCloud-Call-RCUniCallView", + "class": "RCUniCallView" + } + ], + "frameworks": [ + "RongRTCLib.xcframework", + "RongCallLib.xcframework", + "RongCallWrapper.xcframework" + ], + "embedFrameworks": [ + "RongRTCLib.xcframework", + "RongCallLib.xcframework", + "RongCallWrapper.xcframework" + ], + "integrateType": "framework", + "deploymentTarget": "9.0" + } + } +} diff --git a/nativeplugins/RongCloud-IM-V2/android/RCUniIMV2.aar b/nativeplugins/RongCloud-IM-V2/android/RCUniIMV2.aar new file mode 100644 index 0000000..f555651 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/android/RCUniIMV2.aar differ diff --git a/nativeplugins/RongCloud-IM-V2/android/libs/RCIMWrapper.jar b/nativeplugins/RongCloud-IM-V2/android/libs/RCIMWrapper.jar new file mode 100644 index 0000000..80bab00 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/android/libs/RCIMWrapper.jar differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCConfig.plist b/nativeplugins/RongCloud-IM-V2/ios/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/Info.plist new file mode 100644 index 0000000..8b47554 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/Info.plist @@ -0,0 +1,43 @@ + + + + + AvailableLibraries + + + BinaryPath + RCUniIMV2.framework/RCUniIMV2 + LibraryIdentifier + ios-arm64 + LibraryPath + RCUniIMV2.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + BinaryPath + RCUniIMV2.framework/RCUniIMV2 + LibraryIdentifier + ios-x86_64-simulator + LibraryPath + RCUniIMV2.framework + SupportedArchitectures + + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/Info.plist new file mode 100644 index 0000000..cd48544 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/RCConfig.plist b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/RCUniIMV2 b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/RCUniIMV2 new file mode 100644 index 0000000..15fdccf Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-arm64/RCUniIMV2.framework/RCUniIMV2 differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/Info.plist new file mode 100644 index 0000000..bd7deb3 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/RCConfig.plist b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/RCUniIMV2 b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/RCUniIMV2 new file mode 100644 index 0000000..ace76a9 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/RCUniIMV2 differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeDirectory b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeDirectory new file mode 100644 index 0000000..d596211 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeDirectory differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeRequirements b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeRequirements new file mode 100644 index 0000000..dbf9d61 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeRequirements differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..24f3d66 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeResources @@ -0,0 +1,113 @@ + + + + + files + + Info.plist + + 7Z8VGnrVS3jQnXLptWiizuMqG4E= + + RCConfig.plist + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + + files2 + + RCConfig.plist + + hash2 + + q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeSignature b/nativeplugins/RongCloud-IM-V2/ios/RCUniIMV2.xcframework/ios-x86_64-simulator/RCUniIMV2.framework/_CodeSignature/CodeSignature new file mode 100644 index 0000000..e69de29 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/Info.plist new file mode 100644 index 0000000..cca7417 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/Info.plist @@ -0,0 +1,42 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-arm64_i386_x86_64-simulator + LibraryPath + RongChatRoom.framework + SupportedArchitectures + + arm64 + i386 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + LibraryIdentifier + ios-arm64_armv7 + LibraryPath + RongChatRoom.framework + SupportedArchitectures + + arm64 + armv7 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient+Deprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient+Deprecated.h new file mode 100644 index 0000000..487bcde --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient+Deprecated.h @@ -0,0 +1,85 @@ +// +// RCChatRoomClient+Deprecated.h +// RongChatRoom +// +// Created by zgh on 2024/12/27. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomClient (Deprecated) +#pragma mark - 聊天室操作 + +/*! + 加入聊天室(如果聊天室不存在则会创建) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + 可以通过传入的 messageCount 设置加入聊天室成功之后需要获取的历史消息数量。 + -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50 + 为具体获取的消息数量,最大值为 50。注:如果是 7.x 系统获取历史消息数量不要大于 30 + + 从5.3.1版本开始, 加入聊天室后,断网重新加入聊天室默认获取聊天室消息条数,为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复,App 需要做消息排重。 + + - Warning: 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除 + + - Remark: 聊天室 + */ +- (void)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChatRoomClient joinExistChatRoom:messageCount:successBlock:errorBlock:] instead"); + +/*! + 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + 可以通过传入的 messageCount 设置加入聊天室成功之后,需要获取的历史消息数量。 + -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50 + 为具体获取的消息数量,最大值为 50。 + 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除 + + - Remark: 聊天室 + */ +- (void)joinExistChatRoom:(NSString *)targetId + messageCount:(int)messageCount + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChatRoomClient joinExistChatRoom:messageCount:successBlock:errorBlock:] instead"); + +#pragma mark-- 监听器 +/*! + 设置 IMLib 的聊天室状态监听器 + + - Parameter delegate: IMLib 聊天室状态监听器 + + - Remark: 聊天室 + */ +- (void)setChatRoomStatusDelegate:(id)delegate + __deprecated_msg("Use [RCChatRoomClient addChatRoomStatusDelegate:] instead"); + +/*! +设置聊天室 KV 状态变化监听器 + +- Parameter delegate: 聊天室 KV 状态变化的监听器 + +可以设置并实现此 delegate 来进行聊天室状态变化的监听 。SDK 会在回调中通知您聊天室状态的改变。 + +- Remark: 功能设置 +*/ +- (void)setRCChatRoomKVStatusChangeDelegate:(id)delegate + __deprecated_msg("Use [RCChatRoomClient addChatRoomKVStatusChangeDelegate:] instead"); +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient.h new file mode 100644 index 0000000..cec4c7f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomClient.h @@ -0,0 +1,428 @@ +// +// RCChatRoomClient.h +// RongIMLib +// +// Created by 张改红 on 2020/7/28. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import +#import "RCChatRoomProtocol.h" +#import "RCChatRoomInfo.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCJoinChatRoomResponse; +@interface RCChatRoomClient : NSObject + ++ (instancetype)sharedChatRoomClient; + +#pragma mark - 聊天室操作 + +/*! + 加入聊天室(如果聊天室不存在则会创建) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter extra: 附加信息,默认最大长度为 128 个字符,服务可配置 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + - Remark: 聊天室 + - Since: 5.10.2 + */ +- (void)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + extra:(nullable NSString *)extra + successBlock:(nullable void (^)(RCJoinChatRoomResponse *response))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + - Remark: 聊天室 + - Since: 5.6.3 + */ +- (void)joinExistChatRoom:(NSString *)targetId + messageCount:(int)messageCount + successBlock:(nullable void (^)(RCJoinChatRoomResponse *response))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter extra: 附加信息,最大长度为超过 128 个字符 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + - Remark: 聊天室 + - Since: 5.10.2 + */ +- (void)joinExistChatRoom:(NSString *)targetId + messageCount:(int)messageCount + extra:(nullable NSString *)extra + successBlock:(nullable void (^)(RCJoinChatRoomResponse *response))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 退出聊天室 + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter successBlock: 退出聊天室成功的回调 + - Parameter errorBlock: 退出聊天室失败的回调 [status:退出聊天室失败的错误码] + + - Remark: 聊天室 + */ +- (void)quitChatRoom:(NSString *)targetId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter count: 需要获取的成员信息的数量(目前获取到的聊天室信息中仅包含不多于 20 人的成员信息,即 0 <= count <= + 20,传入 0 获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表) + - Parameter order: 需要获取的成员列表的顺序(最早加入或是最晚加入的部分成员) + - Parameter successBlock: 获取成功的回调 [chatRoomInfo:聊天室信息] + - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] + + 因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于 20 人的成员信息和当前成员总数。 + 如果您使用 RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表; + 如果您使用 RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表。 + 上述两种方式查询,返回的成员列表都是按加入时间从旧到新。 + + - Remark: 聊天室 + */ +- (void)getChatRoomInfo:(NSString *)targetId + count:(int)count + order:(RCChatRoomMemberOrder)order + success:(nullable void (^)(RCChatRoomInfo *chatRoomInfo))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 添加 IMLib 的聊天室状态监听器 + + - Parameter delegate: IMLib 聊天室状态监听器 + */ +- (void)addChatRoomStatusDelegate:(id)delegate NS_SWIFT_NAME(addChatRoomStatusDelegate(_:)); + +/*! + 移除 IMLib 的聊天室状态监听器 + + - Parameter delegate: IMLib 聊天室状态监听器 + */ +- (void)removeChatRoomStatusDelegate:(id)delegate + NS_SWIFT_NAME(removeChatRoomStatusDelegate(_:)); + +/*! + 获取 IMLib 的聊天室状态监听器 + + - Returns: 所有 IMLib 聊天室状态监听器 + */ +- (NSArray> *)allChatRoomStatusDelegates; + +/*! + 从服务器端获取聊天室的历史消息 + - Parameter targetId: 聊天室ID,最大长度为 64 个字符 + - Parameter recordTime: 起始的消息发送时间戳,毫秒 + - Parameter count: 需要获取的消息数量, 0 < count <= 200 + - Parameter order: 拉取顺序,RC_Timestamp_Desc:倒序,RC_Timestamp_ASC:正序 + - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组, syncTime:下次拉取消息的时间戳] + - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] + + 此方法从服务器端获取聊天室的历史消息,但是必须先开通聊天室消息云存储功能。 + 指定开始时间,比如2016年9月1日10点(1472695200000), + 默认是0(正序:从存储的第一条消息开始拉取,倒序:从存储的最后一条消息开始拉取) + */ +- (void)getRemoteChatroomHistoryMessages:(NSString *)targetId + recordTime:(long long)recordTime + count:(int)count + order:(RCTimestampOrder)order + success:(nullable void (^)(NSArray *messages, + long long syncTime))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 聊天室状态存储 (使用前必须先联系商务开通) + +/*! + 添加聊天室 KV 状态变化监听 + + - Parameter delegate: 代理 + */ +- (void)addChatRoomKVStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(addChatRoomKVStatusChangeDelegate(_:)); + +/*! + 移除聊天室 KV 状态变化监听 + + - Parameter delegate: 代理 + */ +- (void)removeChatRoomKVStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(removeChatRoomKVStatusChangeDelegate(_:)); + +/*! + 获取聊天室 KV 状态变化监听 + + - Returns: 所有聊天室 KV 状态变化的监听器 + */ +- (NSArray> *)allChatRoomKVStatusChangeDelegates; + + +/** + 设置聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 + - Parameter value: 聊天室属性对应的值,最大长度 4096 个字符 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter autoDelete: 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知 + - Parameter notificationExtra: 通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key + 的创建者可以更新属性的值。 + + - Remark: 聊天室 + */ +- (void)setChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + value:(NSString *)value + sendNotification:(BOOL)sendNotification + autoDelete:(BOOL)autoDelete + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 强制设置聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 + - Parameter value: 聊天室属性对应的值,最大长度 4096 个字符 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter autoDelete: 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知 + - Parameter notificationExtra: 通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。 + + - Remark: 聊天室 + */ +- (void)forceSetChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + value:(NSString *)value + sendNotification:(BOOL)sendNotification + autoDelete:(BOOL)autoDelete + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 批量设置聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter entries: 聊天室属性,key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符,value 聊天室属性对应的值,最大长度 4096 个字符,最多一次设置 10 条 + - Parameter isForce: 是否强制覆盖 + - Parameter autoDelete: 用户掉线或退出时,是否自动删除该 Key、Value 值 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码) + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)setChatRoomEntries:(NSString *)chatroomId + entries:(NSDictionary *)entries + isForce:(BOOL)isForce + autoDelete:(BOOL)autoDelete + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, + NSDictionary *failureEntries))errorBlock; + +/** + 获取聊天室单个属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)getChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + success:(nullable void (^)(NSDictionary *entry))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 获取聊天室所有自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)getAllChatRoomEntries:(NSString *)chatroomId + success:(nullable void (^)(NSDictionary *entry))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 删除聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter notificationExtra: 通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 删除聊天室自定义属性,只有自己设置的属性可以被删除。 + + - Remark: 聊天室 + */ +- (void)removeChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + sendNotification:(BOOL)sendNotification + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 强制删除聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter notificationExtra: 通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 强制删除聊天室自定义属性。 + + - Remark: 聊天室 + */ +- (void)forceRemoveChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + sendNotification:(BOOL)sendNotification + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 批量删除聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter keys: 聊天室属性名称,最多一次删除 10 条 + - Parameter isForce: 是否强制覆盖 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码) + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)removeChatRoomEntries:(NSString *)chatroomId + keys:(NSArray *)keys + isForce:(BOOL)isForce + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, + NSDictionary *failureEntries))errorBlock; + +#pragma mark - 聊天室成员变化监听器 + +/*! + 设置聊天室成员变化的监听器 + + 可以设置并实现此拦截器来监听聊天室成员的加入或退出 + + - Remark: 功能设置 + */ +@property (nonatomic, weak, nullable) id memberDelegate; + + +/// 绑定聊天室 ID 和 RTCRoomID +/// - Parameter chatRoomId: 聊天室 ID,最大长度为 64 个字符 +/// - Parameter rtcRoomId: rtc room ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)bindChatRoom:(NSString *)chatRoomId + withRTCRoom:(NSString *)rtcRoomId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +#pragma mark - 聊天室事件通知监听器 + +/** + 添加 IMLib 的聊天室事件通知监听器 + + 聊天室事件通知 + 封禁、解封、禁言、解除禁言、多端同步相关事件等 + - Parameter delegate: IMLib 聊天室事件通知监听器 + + - Since: 5.4.5 + */ +- (void)addChatRoomNotifyEventDelegate:(id)delegate + NS_SWIFT_NAME(addChatRoomNotifyEventDelegate(_:)); + +/** + 移除 IMLib 的聊天室事件通知监听器 + + - Parameter delegate: IMLib 聊天室事件通知监听器 + - Since: 5.4.5 + */ +- (void)removeChatRoomNotifyEventDelegate:(id)delegate + NS_SWIFT_NAME(removeChatRoomNotifyEventDelegate(_:)); + +/** + 返回 IMLib 的聊天室事件通知监听器 + + - Since: 5.4.5 + */ +- (NSArray> *)allChatRoomNotifyEventDelegates; + + +/// 是否允许聊天室消息排重,默认值为 YES +/// +/// 排重的场景如下 +/// 发送方弱网情况下发送消息,消息到达服务但发送方没有收到服务 ack,导致发送方认为消息发送失败 +/// 此种情况下,服务端和接收方都会收到第一条消息 +/// 此时发送方重发该消息,再次达到服务,那么此时服务端会有两条消息(消息内容相同,messageUid 不同) +/// 接收方会收到两条内容相同但 messageUid 不同的消息,SDK 此时会把第二条相同内容消息排重掉 +/// 以此来保证重发的相同内容消息,发送方只有一条消息,接收方也只有一条消息 +/// +/// 当消息量少时,消息排重影响不大;但是本地存在大量消息时,排重会出现性能问题 +/// 当 APP 本地存在大量消息,且发生收消息卡顿时,建议将排重关闭 +/// 在初始化接口之后连接之前调用 +/// +/// - Parameter enableCheck: 是否允许聊天室消息排重 +/// +/// - Since: 5.8.2 +- (void)setCheckChatRoomDuplicateMessage:(BOOL)enableCheck; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h new file mode 100644 index 0000000..b624a5a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h @@ -0,0 +1,162 @@ +// +// RCChatRoomEnumDefine.h +// RongChatRoom +// +// Created by 张改红 on 2020/8/12. +// Copyright © 2020 张改红。All rights reserved. +// +#import +#ifndef RCChatRoomEnumDefine_h +#define RCChatRoomEnumDefine_h + +#pragma mark RCChatRoomStatus - 聊天室状态码 +/*! + 聊天室状态码 + */ +typedef NS_ENUM(NSInteger, RCChatRoomStatus) { + /*! + 正在加入聊天室中 + */ + RCChatRoomStatus_Joining = 1, + + /*! + 加入聊天室成功 + */ + RCChatRoomStatus_Joined = 2, + /*! + 加入聊天室失败 + */ + RCChatRoomStatus_JoinFailed = 3, + + /*! + 退出了聊天室 + */ + RCChatRoomStatus_Quited = 4, + + /*! + 聊天室被销毁 + */ + RCChatRoomStatus_Destroyed = 5, + /*! + 聊天室被重置 + 由于聊天室长时间不活跃,已经被系统回收。聊天室 KV 已经被清空,请开发者刷新界面。 + */ + RCChatRoomStatus_Reset = 6, + +}; + +#pragma mark RCChatRoomMemberOrder - 聊天室成员排列顺序 +/*! + 聊天室成员的排列顺序 + */ +typedef NS_ENUM(NSUInteger, RCChatRoomMemberOrder) { + /*! + 升序,返回最早加入的成员列表 + */ + RC_ChatRoom_Member_Asc = 1, + + /*! + 降序,返回最晚加入的成员列表 + */ + RC_ChatRoom_Member_Desc = 2, +}; + +#pragma mark RCChatRoomMemberActionType - 聊天室成员加入或退出 +/*! + 聊天室成员加入或者退出 + */ +typedef NS_ENUM(NSInteger, RCChatRoomMemberActionType) { + /*! + 聊天室成员退出 + */ + RC_ChatRoom_Member_Quit = 0, + + /*! + 聊天室成员加入 + */ + RC_ChatRoom_Member_Join = 1, +}; + + +#pragma mark RCChatRoomEvent - 聊天室事件 +/*! + 聊天室多端登录同步时,消息中的状态 + */ +typedef NS_ENUM(NSInteger, RCChatRoomSyncStatus) { + /*! + 多端登录同步用户离开聊天室, + 1. 同一用户在一终端离开聊天室,通知另一终端 + 2. 用户多端加入聊天室场景:用户在 Android 端加入聊天室,在 Web 端登录后又加入一个新的聊天室,自动将用户从上一个聊天室踢出 + 被踢出聊天室中的所有成员,包括被踢出用户 + */ + RCChatRoomSyncStatusQuit = 0, + + /*! + 多端登录同步用户加入聊天室, + 同一用户在一终端加入聊天室,通知另一终端 + */ + RCChatRoomSyncStatusJoin = 1 +}; + +/*! + 聊天室解封/封禁用户消息,操作类型枚举 + */ +typedef NS_ENUM(NSInteger, RCChatRoomMemberOperateType) { + /*! + 解封 + */ + RCChatRoomMemberOperateTypeDeblock = 0, + + /*! + 封禁 + */ + RCChatRoomMemberOperateTypeBlocked = 1 +}; + + +/*! + 聊天室禁言相关消息,操作类型枚举 + */ +typedef NS_ENUM(NSInteger, RCChatRoomMemberBanType) { + /*! + 解除指定聊天室中用户禁言 + */ + RCChatRoomMemberBanTypeUnmuteUsers = 0, + + /*! + 禁言指定聊天室中用户 + */ + RCChatRoomMemberBanTypeMuteUsers = 1, + + /*! + 解除聊天室全体禁言 + */ + RCChatRoomMemberBanTypeUnmuteAll = 2, + + /*! + 聊天室全体禁言 + */ + RCChatRoomMemberBanTypeMuteAll = 3, + + /*! + 移出禁言用户白名单 + */ + RCChatRoomMemberBanTypeRemoveWhitelist = 4, + + /*! + 添加禁言用户白名单 + */ + RCChatRoomMemberBanTypeAddWhitelist = 5, + + /*! + 解除用户聊天室全局禁言 + */ + RCChatRoomMemberBanTypeUnmuteGlobal = 6, + + /*! + 用户聊天室全局禁言 + */ + RCChatRoomMemberBanTypeMuteGlobal = 7 +}; + +#endif /* RCChatRoomEnumDefine_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomInfo.h new file mode 100644 index 0000000..081f34a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomInfo.h @@ -0,0 +1,40 @@ +// +// RCChatRoomInfo.h +// RongIMLib +// +// Created by 岑裕 on 16/1/11. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomMemberInfo.h" +#import "RCChatRoomEnumDefine.h" +/*! + 聊天室信息类 + */ +@interface RCChatRoomInfo : NSObject + +/*! + 聊天室 ID + */ +@property (nonatomic, copy) NSString *targetId; + +/*! + 包含的成员信息类型 + */ +@property (nonatomic, assign) RCChatRoomMemberOrder memberOrder; + +/*! + 聊天室中的部分成员信息 RCChatRoomMemberInfo 列表 + + 如果成员类型为RC_ChatRoom_Member_Asc,则为最早加入的成员列表,按成员加入时间升序排列; + 如果成员类型为RC_ChatRoom_Member_Desc,则为最晚加入的成员列表,按成员加入时间降序排列。 + */ +@property (nonatomic, strong) NSArray *memberInfoArray; + +/*! + 当前聊天室的成员总数 + */ +@property (nonatomic, assign) int totalMemberCount; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h new file mode 100644 index 0000000..c3e1c8b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h @@ -0,0 +1,36 @@ +// +// RCChatRoomMemberAction.h +// RongChatRoom +// +// Created by 孙浩 on 2021/7/12. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomMemberAction : NSObject + +/// 成员 ID +@property (nonatomic, copy) NSString *memberId; + +/// 成员加入或者退出 +@property (nonatomic, assign) RCChatRoomMemberActionType action; + +/// 附加信息 +/// - Since 5.10.2 +@property (nonatomic, copy, nullable) NSString *extra; + +/*! + RCChatRoomMemberAction 初始化方法 + + - Parameter memberId: 成员 ID + - Parameter action: 成员加入或退出 + */ +- (instancetype)initWithMemberId:(NSString *)memberId action:(RCChatRoomMemberActionType)action; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberActionModel.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberActionModel.h new file mode 100644 index 0000000..a715db6 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberActionModel.h @@ -0,0 +1,37 @@ +// +// RCChatRoomMemberActionModel.h +// RongChatRoom +// +// Created by chinaspx on 2023/10/18. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCChatRoomMemberAction; + +@interface RCChatRoomMemberActionModel : NSObject + +/// 聊天室 ID +@property (nonatomic, readonly) NSString *roomId; + +/// 聊天室成员变更信息 +@property (nonatomic, strong, readonly) NSArray *chatRoomMemberActions; + +/// 当前的聊天室人数 +@property (nonatomic, assign, readonly) NSUInteger memberCount; + + +/// 初始化方法 +/// - Parameter roomId: 聊天室 ID +/// - Parameter memberActions: 聊天室成员变更信息 +/// - Parameter memberCount: 当前的聊天室人数 +/// +- (instancetype)initWithRoomId:(NSString *)roomId + memberActions:(NSArray *)memberActions + memberCount:(NSUInteger)memberCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberBanEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberBanEvent.h new file mode 100644 index 0000000..95de622 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberBanEvent.h @@ -0,0 +1,46 @@ +// +// RCChatRoomMemberBanEvent.h +// RongChatRoom +// +// Created by chinaspx on 2023/5/6. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomMemberBanEvent : NSObject +/// 聊天室 ID +@property (nonatomic, copy) NSString *chatroomId; + +/** + 禁言操作类型,详见枚举值 + 禁言/解除禁言操作类型: + 0:解除指定聊天室中用户禁言; + 1:禁言指定聊天室中用户; + 2:解除聊天室全体禁言; + 3:聊天室全体禁言 + 4: 移出禁言用户白名单 + 5: 添加禁言用户白名单 + 6: 解除用户聊天室全局禁言 + 7:用户聊天室全局禁言 + */ +@property (nonatomic, assign) RCChatRoomMemberBanType banType; + +/// 禁言的总时间(禁言的操作有此字段)(毫秒) ,最大值为 43200 分钟(1 个月), 最小值 1 分钟 +@property (nonatomic, assign) NSInteger durationTime; + +/// 操作时间 (毫秒时间戳) +@property (nonatomic, assign) long long operateTime; + +/// 禁言/解禁言用户 ID 列表 +@property (nonatomic, copy) NSArray *userIdList; + +/// 附加信息 +@property (nonatomic, copy, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberBlockEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberBlockEvent.h new file mode 100644 index 0000000..56fffce --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberBlockEvent.h @@ -0,0 +1,47 @@ +// +// RCChatRoomMemberBlockEvent.h +// RongChatRoom +// +// Created by chinaspx on 2023/5/6. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomMemberBlockEvent : NSObject +/*! + 聊天室 ID + */ +@property (nonatomic, copy) NSString *chatroomId; + +/** + 封禁类型,0是解封,1是封禁 + */ +@property (nonatomic, assign) RCChatRoomMemberOperateType operateType; + +/** + 封禁的总时间,封禁时有此字段(毫秒),最大值为43200分钟(1个月), 最小值1分钟 + */ +@property (nonatomic, assign) NSInteger durationTime; + +/** + 操作时间(毫秒时间戳) + */ +@property (nonatomic, assign) long long operateTime; + +/** + 被封禁/解封的用户 ID 列表 + */ +@property (nonatomic, copy) NSArray *userIdList; + +/** + 附加信息 + */ +@property (nonatomic, copy, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h new file mode 100644 index 0000000..6d3c127 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h @@ -0,0 +1,26 @@ +// +// RCChatRoomMemberInfo.h +// RongIMLib +// +// Created by 岑裕 on 16/1/10. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +/*! + 聊天室成员信息类 + */ +@interface RCChatRoomMemberInfo : NSObject + +/*! + 用户 ID + */ +@property (nonatomic, copy) NSString *userId; + +/*! + 用户加入聊天室时间(Unix 时间戳,毫秒) + */ +@property (nonatomic, assign) long long joinTime; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomProtocol.h new file mode 100644 index 0000000..1fc89be --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomProtocol.h @@ -0,0 +1,255 @@ +// +// RCChatRoomProtocol.h +// RongChatRoom +// +// Created by 张改红 on 2020/8/12. +// Copyright © 2020 张改红。All rights reserved. +// + +#ifndef RCChatRoomProtocol_h +#define RCChatRoomProtocol_h + +NS_ASSUME_NONNULL_BEGIN + +@class RCChatRoomMemberAction, RCChatRoomMemberActionModel, RCJoinChatRoomResponse; +@class RCChatRoomSyncEvent, RCChatRoomMemberBlockEvent, RCChatRoomMemberBanEvent; + +typedef NS_ENUM(NSUInteger, RCChatRoomDestroyType) { + /// 开发者主动销毁 + RCChatRoomDestroyTypeManual = 0, + + /// 聊天室长时间不活跃,被系统自动回收 + RCChatRoomDestroyTypeAuto = 3 +}; + +#pragma mark - 聊天室监听器 + +/*! + IMLib聊天室状态的的监听器 + + 设置IMLib的聊天室状态监听器,请参考RCIMClient的setChatRoomStatusDelegate:方法。 + */ +@protocol RCChatRoomStatusDelegate + +/*! + 开始加入聊天室的回调 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomJoining:(NSString *)chatroomId; + +/*! + 加入聊天室成功的回调 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomJoined:(NSString *)chatroomId response:(RCJoinChatRoomResponse *)response; + +- (void)onChatRoomJoined:(NSString *)chatroomId + __deprecated_msg("Use [RCChatRoomStatusDelegate onChatRoomJoined:response:] instead"); + +/*! + 加入聊天室失败的回调 + + - Parameter chatroomId: 聊天室ID + - Parameter errorCode: 加入失败的错误码 + + 如果错误码是KICKED_FROM_CHATROOM或RC_CHATROOM_NOT_EXIST,则不会自动重新加入聊天室,App需要按照自己的逻辑处理。 + */ +- (void)onChatRoomJoinFailed:(NSString *)chatroomId errorCode:(RCErrorCode)errorCode; + +/*! + 加入聊天室成功,但是聊天室被重置。接收到此回调后,还会收到 onChatRoomJoined:回调。 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomReset:(NSString *)chatroomId; + +/*! + 退出聊天室成功的回调 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomQuited:(NSString *)chatroomId; + +/*! + 聊天室被销毁的回调,用户在线的时候房间被销毁才会收到此回调。 + + - Parameter chatroomId: 聊天室ID + - Parameter type: 聊天室销毁原因 + + */ +- (void)onChatRoomDestroyed:(NSString *)chatroomId type:(RCChatRoomDestroyType)type; + +@end + + +#pragma mark - 聊天室 KV 状态变化 + +@class RCChatroomKVChangeInfo; + +/** + IMLib 聊天室 KV 状态变化监听器 + + 设置代理请参考 RCIMClient 的 setRCChatRoomKVStatusChangeDelegate: 方法。 + */ +@protocol RCChatRoomKVStatusChangeDelegate + + +/** + IMLib 刚加入聊天室时 KV 同步完成的回调 + + - Parameter roomId: 聊天室 Id + */ +- (void)chatRoomKVDidSync:(NSString *)roomId; + +/** + IMLib 聊天室 KV 变化的回调 + + - Parameter roomId: 聊天室 Id + - Parameter entry: KV 字典,如果刚进入聊天室时存在 KV,会通过此回调将所有 KV 返回,再次回调时为其他人设置或者修改 KV + */ +- (void)chatRoomKVDidUpdate:(NSString *)roomId entry:(NSDictionary *)entry; + +/** + IMLib 聊天室 KV 被删除的回调 + + - Parameter roomId: 聊天室 Id + - Parameter entry: KV 字典 + */ +- (void)chatRoomKVDidRemove:(NSString *)roomId entry:(NSDictionary *)entry; + +/** + 聊天室 KV 变化的回调。 + 本回调包含 `chatRoomKVDidUpdate:entry:` 和 `chatRoomKVDidRemove:entry:` 的回调数据。 + + - Parameter roomId: 聊天室 ID。 + - Parameter changeInfos: 发生变化的 KV,严格按照聊天室属性设置时的顺序。 + */ +- (void)chatRoomKVDidChange:(NSString *)roomId changeInfos:(NSArray *)changeInfos; + +@end + + +#pragma mark - 聊天室成员变化监听器 +@protocol RCChatRoomMemberDelegate +/** + 聊天室成员加入或退出的回调 + + - Parameter members: 变更的用户列表 + - Parameter roomId: 聊天室 Id + - Warning: 子线程回调 + + 为了保证接口兼容性,该回调和下面的回调 memberDidChange: + 会同时触发,建议使用下面的回调 + */ +- (void)memberDidChange:(NSArray *)members inRoom:(NSString *)roomId; + +/** + 聊天室成员加入或退出的回调 + + - Parameter actionModel: 变更的事件模型 + - Warning: 子线程回调 + + 为了保证接口兼容性,该回调和上面的回调 memberDidChange:inRoom: + 会同时触发,建议使用该回调 + + - Since: 5.6.7 + */ +- (void)memberDidChange:(RCChatRoomMemberActionModel *)actionModel; + +@end + + +#pragma mark - 聊天室事件通知 + +/** + 聊天室事件通知 + 封禁、解封、禁言、解除禁言、多端同步相关事件等 + + - Since: 5.4.5 + */ + +@protocol RCChatRoomNotifyEventDelegate + +/** + 多端登录相关事件通知回调 + + 包含三种通知 case + + 1. 多端登录情况,一端加入聊天室,需要通知另一终端 + + 2. 多端登录情况,一端退出聊天室,需要通知另一终端 + + 3. 用户多端加入聊天室场景:用户在 iOS 端加入聊天室,在 Web 端登录后又加入一个新的聊天室,自动将用户从上一个聊天室踢出 + 通知被踢出聊天室中的所有成员,包括被踢出用户 + 注:case 3 如果开通了一个用户可加入多个聊天室的情况不会进行通知 + + - Parameter event: 聊天室 RCChatRoomSyncEvent + */ +- (void)chatRoomNotifyMultiLoginSync:(RCChatRoomSyncEvent *)event; + +/** + 封禁用户相关事件通知回调 + + 包含两种通知 case + + 1. 封禁用户,聊天室中所有成员,包括被封禁用户 + 注: + * 封禁后用户被自动踢出聊天室 + * 封禁后用户不会再收到被踢出的通知 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知) + + 2. 解除封禁,被解除封禁的成员 + 注: + * 用户未在线时,再登录时不会收到通知 + * 服务端仅对主动解除封禁做通知,封禁时间到了,自动解除的不通知, 此刻调用加入聊天室接口可成功 + * 仅对解除封禁的本人做通知,是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知) + + 封禁时长最大值为43200分钟/1个月, 最小值1分钟 + + - Parameter event: 聊天室 RCChatRoomMemberBlockEvent + */ +- (void)chatRoomNotifyBlock:(RCChatRoomMemberBlockEvent *)event; + +/** + 禁言相关事件通知回调 + + 包含以下 case + + 注: + * 禁言,受到白名单保护,即白名单中用户不会被禁言 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知)。通知范围: + 1. 禁言指定聊天室中用户,通知指定聊天室中任何成员 + 2. 解除指定聊天室中用户禁言,通知指定聊天室中任何成员 + + 注: + * 全体禁言,也受到白名单保护,即白名单中用户不会被禁言 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知)。通知范围: + 3. 聊天室全体禁言,通知聊天室中所有成员 + 4. 解除聊天室全体禁言,通知聊天室中所有成员 + + 注: + * 白名单是聊天室维度,添加后,用户在此聊天室内无法被设置禁言,即被保护 + 生命周期跟随聊天室,销毁后,清空白名单,重建聊天室时,需要再次调用接口添加 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知)。通知范围: + 5. 添加禁言用户白名单,通知聊天室中所有成员 + 6. 移出禁言用户白名单,通知聊天室中所有成员 + + 注: + * 全局禁言是最高优先级,全局禁言后,禁言用户在所有聊天室内都无法发言,即便配置白名单也不行 + * 只有全局禁言或解除全局禁言的用户可以收到通知。是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知) + 7. 用户聊天室全局禁言,通知被全局禁言用户 + 8. 解除用户聊天室全局禁言,通知被解除全局禁言用户 + + 禁言时长最大值为43200分钟/1个月, 最小值1分钟 + + - Parameter event: 聊天室 ```RCChatRoomMemberBanEvent``` + */ +- (void)chatRoomNotifyBan:(RCChatRoomMemberBanEvent *)event; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCChatRoomProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomSyncEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomSyncEvent.h new file mode 100644 index 0000000..943d027 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatRoomSyncEvent.h @@ -0,0 +1,45 @@ +// +// RCChatRoomSyncEvent.h +// RongChatRoom +// +// Created by chinaspx on 2023/5/6. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomSyncEvent : NSObject +/*! + 聊天室 ID + */ +@property (nonatomic, copy) NSString *chatroomId; + +/** + 同步通知的变更状态 + */ +@property (nonatomic, assign) RCChatRoomSyncStatus status; + +/** + 如果status是0的情况,区分离开类型: + 1,自己主动离开, + 2,多端加入互踢导致离开 + */ +@property (nonatomic, assign) NSInteger reason; + +/** + 同步通知的变更时间 + 用户加入/退出/被踢的时间(毫秒时间戳) + */ +@property (nonatomic, assign) long long time; + +/** + 附加信息 + */ +@property (nonatomic, copy, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVChangeInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVChangeInfo.h new file mode 100644 index 0000000..ce960a4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVChangeInfo.h @@ -0,0 +1,29 @@ +// +// RCChatroomKVChangeInfo.h +// RongChatRoom +// +// Created by shuai shao on 2025/4/21. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatroomKVChangeInfo : NSObject + +/// 房间 ID。 +@property (nonatomic, copy, readonly) NSString *roomId; + +/// 发生变化的 Key。 +@property (nonatomic, copy, readonly) NSString *key; + +/// 发生变化后的 Value。 +@property (nonatomic, copy, readonly, nullable) NSString *value; + +/// 是否是删除。 +@property (nonatomic, assign, readonly) BOOL isDelete; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h new file mode 100644 index 0000000..5ddff77 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h @@ -0,0 +1,57 @@ +// +// RCChatroomKVNotificationMessage.h +// RongIMLib +// +// Created by 孙浩 on 2019/10/14. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 聊天室自定义属性通知消息的类型名 +#define RCChatroomKVNotificationMessageTypeIdentifier @"RC:chrmKVNotiMsg" + +typedef NS_ENUM(NSInteger, RCChatroomKVNotificationType) { + /// 设置 KV 的操作 + RCChatroomKVNotificationTypeSet = 1, + /// 删除 KV 的操作 + RCChatroomKVNotificationTypeRemove = 2 +}; + +/** +聊天室自定义属性通知消息 + +不要随意构造此类消息发送,调用设置或者删除接口时会自动构建。 +此消息不存储不计入未读消息数。 + +- Remark: 通知类消息 +*/ +@interface RCChatroomKVNotificationMessage : RCMessageContent + +/// 聊天室操作的类型 +@property (nonatomic, assign) RCChatroomKVNotificationType type; + +/// 聊天室属性名称 +@property (nonatomic, copy) NSString *key; + +/// 聊天室属性对应的值 +@property (nonatomic, copy) NSString *value; + +/*! +初始化聊天室自定义属性通知消息 + +- Parameter key: 聊天室属性名称 +- Parameter value: 聊天室属性对应的值(删除 key 时不用传) +- Parameter extra: 通知消息的自定义字段 +- Returns: 聊天室自定义属性通知消息的对象 +*/ ++ (instancetype)notificationWithType:(RCChatroomKVNotificationType)type + key:(NSString *)key + value:(NSString *_Nullable)value + extra:(NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCJoinChatRoomResponse.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCJoinChatRoomResponse.h new file mode 100644 index 0000000..e9f391c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RCJoinChatRoomResponse.h @@ -0,0 +1,39 @@ +// +// RCJoinChatRoomResponse.h +// RongChatRoom +// +// Created by chinaspx on 2023/7/31. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCJoinChatRoomResponse : NSObject + +// 创建时间(毫秒时间戳) +@property (nonatomic, assign) long long createTime; + +// 成员数量 +@property (nonatomic, assign) NSInteger memberCount; + +// 是否全局禁言 +@property (nonatomic, assign) BOOL isAllChatRoomBanned; + +// 是否当前用户被禁言 +@property (nonatomic, assign) BOOL isCurrentUserBanned; + +// 当前用户是否在此聊天室被禁言 +@property (nonatomic, assign) BOOL isCurrentChatRoomBanned; + +// 当前用户是否在此聊天室的白名单中 +@property (nonatomic, assign) BOOL isCurrentChatRoomInWhitelist; + +// 加入时间(毫秒时间戳) +// - Since: 5.10.2 +@property (nonatomic, assign) long long joinTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RongChatRoom.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RongChatRoom.h new file mode 100644 index 0000000..0268fb8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Headers/RongChatRoom.h @@ -0,0 +1,34 @@ +// +// RongChatRoom.h +// RongChatRoom +// +// Created by 张改红 on 2020/8/12. +// Copyright © 2020 张改红。All rights reserved. +// + +#import + +//! Project version number for RongChatRoom. +FOUNDATION_EXPORT double RongChatRoomVersionNumber; + +//! Project version string for RongChatRoom. +FOUNDATION_EXPORT const unsigned char RongChatRoomVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import +#import +#import +#import + +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import + +#import diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Info.plist new file mode 100644 index 0000000..ef08d3d Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Modules/module.modulemap b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Modules/module.modulemap new file mode 100644 index 0000000..e6751a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongChatRoom { + umbrella header "RongChatRoom.h" + + export * + module * { export * } +} diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/RongChatRoom b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/RongChatRoom new file mode 100755 index 0000000..edcd7c1 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_armv7/RongChatRoom.framework/RongChatRoom differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient+Deprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient+Deprecated.h new file mode 100644 index 0000000..487bcde --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient+Deprecated.h @@ -0,0 +1,85 @@ +// +// RCChatRoomClient+Deprecated.h +// RongChatRoom +// +// Created by zgh on 2024/12/27. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomClient (Deprecated) +#pragma mark - 聊天室操作 + +/*! + 加入聊天室(如果聊天室不存在则会创建) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + 可以通过传入的 messageCount 设置加入聊天室成功之后需要获取的历史消息数量。 + -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50 + 为具体获取的消息数量,最大值为 50。注:如果是 7.x 系统获取历史消息数量不要大于 30 + + 从5.3.1版本开始, 加入聊天室后,断网重新加入聊天室默认获取聊天室消息条数,为主动加入时获取的历史消息条数。由于每次传入的条数固定, 可能会导致消息重复,App 需要做消息排重。 + + - Warning: 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除 + + - Remark: 聊天室 + */ +- (void)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChatRoomClient joinExistChatRoom:messageCount:successBlock:errorBlock:] instead"); + +/*! + 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + 可以通过传入的 messageCount 设置加入聊天室成功之后,需要获取的历史消息数量。 + -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50 + 为具体获取的消息数量,最大值为 50。 + 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除 + + - Remark: 聊天室 + */ +- (void)joinExistChatRoom:(NSString *)targetId + messageCount:(int)messageCount + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChatRoomClient joinExistChatRoom:messageCount:successBlock:errorBlock:] instead"); + +#pragma mark-- 监听器 +/*! + 设置 IMLib 的聊天室状态监听器 + + - Parameter delegate: IMLib 聊天室状态监听器 + + - Remark: 聊天室 + */ +- (void)setChatRoomStatusDelegate:(id)delegate + __deprecated_msg("Use [RCChatRoomClient addChatRoomStatusDelegate:] instead"); + +/*! +设置聊天室 KV 状态变化监听器 + +- Parameter delegate: 聊天室 KV 状态变化的监听器 + +可以设置并实现此 delegate 来进行聊天室状态变化的监听 。SDK 会在回调中通知您聊天室状态的改变。 + +- Remark: 功能设置 +*/ +- (void)setRCChatRoomKVStatusChangeDelegate:(id)delegate + __deprecated_msg("Use [RCChatRoomClient addChatRoomKVStatusChangeDelegate:] instead"); +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient.h new file mode 100644 index 0000000..cec4c7f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomClient.h @@ -0,0 +1,428 @@ +// +// RCChatRoomClient.h +// RongIMLib +// +// Created by 张改红 on 2020/7/28. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import +#import "RCChatRoomProtocol.h" +#import "RCChatRoomInfo.h" + +NS_ASSUME_NONNULL_BEGIN + +@class RCJoinChatRoomResponse; +@interface RCChatRoomClient : NSObject + ++ (instancetype)sharedChatRoomClient; + +#pragma mark - 聊天室操作 + +/*! + 加入聊天室(如果聊天室不存在则会创建) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter extra: 附加信息,默认最大长度为 128 个字符,服务可配置 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + - Remark: 聊天室 + - Since: 5.10.2 + */ +- (void)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + extra:(nullable NSString *)extra + successBlock:(nullable void (^)(RCJoinChatRoomResponse *response))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + - Remark: 聊天室 + - Since: 5.6.3 + */ +- (void)joinExistChatRoom:(NSString *)targetId + messageCount:(int)messageCount + successBlock:(nullable void (^)(RCJoinChatRoomResponse *response))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 加入已经存在的聊天室(如果聊天室不存在返回错误 23410,人数超限返回错误 23411) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter messageCount: 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + - Parameter extra: 附加信息,最大长度为超过 128 个字符 + - Parameter successBlock: 加入聊天室成功的回调 + - Parameter errorBlock: 加入聊天室失败的回调 [status: 加入聊天室失败的错误码] + + - Remark: 聊天室 + - Since: 5.10.2 + */ +- (void)joinExistChatRoom:(NSString *)targetId + messageCount:(int)messageCount + extra:(nullable NSString *)extra + successBlock:(nullable void (^)(RCJoinChatRoomResponse *response))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 退出聊天室 + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter successBlock: 退出聊天室成功的回调 + - Parameter errorBlock: 退出聊天室失败的回调 [status:退出聊天室失败的错误码] + + - Remark: 聊天室 + */ +- (void)quitChatRoom:(NSString *)targetId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 获取聊天室的信息(包含部分成员信息和当前聊天室中的成员总数) + + - Parameter targetId: 聊天室 ID,最大长度为 64 个字符 + - Parameter count: 需要获取的成员信息的数量(目前获取到的聊天室信息中仅包含不多于 20 人的成员信息,即 0 <= count <= + 20,传入 0 获取到的聊天室信息将或仅包含成员总数,不包含具体的成员列表) + - Parameter order: 需要获取的成员列表的顺序(最早加入或是最晚加入的部分成员) + - Parameter successBlock: 获取成功的回调 [chatRoomInfo:聊天室信息] + - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] + + 因为聊天室一般成员数量巨大,权衡效率和用户体验,目前返回的聊天室信息仅包含不多于 20 人的成员信息和当前成员总数。 + 如果您使用 RC_ChatRoom_Member_Asc 升序方式查询,将返回最早加入的成员信息列表; + 如果您使用 RC_ChatRoom_Member_Desc 降序方式查询,将返回最晚加入的成员信息列表。 + 上述两种方式查询,返回的成员列表都是按加入时间从旧到新。 + + - Remark: 聊天室 + */ +- (void)getChatRoomInfo:(NSString *)targetId + count:(int)count + order:(RCChatRoomMemberOrder)order + success:(nullable void (^)(RCChatRoomInfo *chatRoomInfo))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/*! + 添加 IMLib 的聊天室状态监听器 + + - Parameter delegate: IMLib 聊天室状态监听器 + */ +- (void)addChatRoomStatusDelegate:(id)delegate NS_SWIFT_NAME(addChatRoomStatusDelegate(_:)); + +/*! + 移除 IMLib 的聊天室状态监听器 + + - Parameter delegate: IMLib 聊天室状态监听器 + */ +- (void)removeChatRoomStatusDelegate:(id)delegate + NS_SWIFT_NAME(removeChatRoomStatusDelegate(_:)); + +/*! + 获取 IMLib 的聊天室状态监听器 + + - Returns: 所有 IMLib 聊天室状态监听器 + */ +- (NSArray> *)allChatRoomStatusDelegates; + +/*! + 从服务器端获取聊天室的历史消息 + - Parameter targetId: 聊天室ID,最大长度为 64 个字符 + - Parameter recordTime: 起始的消息发送时间戳,毫秒 + - Parameter count: 需要获取的消息数量, 0 < count <= 200 + - Parameter order: 拉取顺序,RC_Timestamp_Desc:倒序,RC_Timestamp_ASC:正序 + - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组, syncTime:下次拉取消息的时间戳] + - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] + + 此方法从服务器端获取聊天室的历史消息,但是必须先开通聊天室消息云存储功能。 + 指定开始时间,比如2016年9月1日10点(1472695200000), + 默认是0(正序:从存储的第一条消息开始拉取,倒序:从存储的最后一条消息开始拉取) + */ +- (void)getRemoteChatroomHistoryMessages:(NSString *)targetId + recordTime:(long long)recordTime + count:(int)count + order:(RCTimestampOrder)order + success:(nullable void (^)(NSArray *messages, + long long syncTime))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 聊天室状态存储 (使用前必须先联系商务开通) + +/*! + 添加聊天室 KV 状态变化监听 + + - Parameter delegate: 代理 + */ +- (void)addChatRoomKVStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(addChatRoomKVStatusChangeDelegate(_:)); + +/*! + 移除聊天室 KV 状态变化监听 + + - Parameter delegate: 代理 + */ +- (void)removeChatRoomKVStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(removeChatRoomKVStatusChangeDelegate(_:)); + +/*! + 获取聊天室 KV 状态变化监听 + + - Returns: 所有聊天室 KV 状态变化的监听器 + */ +- (NSArray> *)allChatRoomKVStatusChangeDelegates; + + +/** + 设置聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 + - Parameter value: 聊天室属性对应的值,最大长度 4096 个字符 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter autoDelete: 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知 + - Parameter notificationExtra: 通知的自定义字段,RC:chrmKVNotiMsg 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key + 的创建者可以更新属性的值。 + + - Remark: 聊天室 + */ +- (void)setChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + value:(NSString *)value + sendNotification:(BOOL)sendNotification + autoDelete:(BOOL)autoDelete + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 强制设置聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 + - Parameter value: 聊天室属性对应的值,最大长度 4096 个字符 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter autoDelete: 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知 + - Parameter notificationExtra: 通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。 + + - Remark: 聊天室 + */ +- (void)forceSetChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + value:(NSString *)value + sendNotification:(BOOL)sendNotification + autoDelete:(BOOL)autoDelete + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 批量设置聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter entries: 聊天室属性,key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符,value 聊天室属性对应的值,最大长度 4096 个字符,最多一次设置 10 条 + - Parameter isForce: 是否强制覆盖 + - Parameter autoDelete: 用户掉线或退出时,是否自动删除该 Key、Value 值 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码) + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)setChatRoomEntries:(NSString *)chatroomId + entries:(NSDictionary *)entries + isForce:(BOOL)isForce + autoDelete:(BOOL)autoDelete + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, + NSDictionary *failureEntries))errorBlock; + +/** + 获取聊天室单个属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)getChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + success:(nullable void (^)(NSDictionary *entry))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 获取聊天室所有自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)getAllChatRoomEntries:(NSString *)chatroomId + success:(nullable void (^)(NSDictionary *entry))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 删除聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter notificationExtra: 通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 删除聊天室自定义属性,只有自己设置的属性可以被删除。 + + - Remark: 聊天室 + */ +- (void)removeChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + sendNotification:(BOOL)sendNotification + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 强制删除聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter key: 聊天室属性名称 + - Parameter sendNotification: 是否需要发送通知,如果发送通知,聊天室中的其他用户会接收到 RCChatroomKVNotificationMessage + 通知消息,消息内容中包含操作类型(type)、属性名称(key)、属性名称对应的值(value)和自定义字段(extra) + - Parameter notificationExtra: 通知的自定义字段,RCChatroomKVNotificationMessage 通知消息中会包含此字段,最大长度 2 kb + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调 + + 必须先开通聊天室状态存储功能 + 强制删除聊天室自定义属性。 + + - Remark: 聊天室 + */ +- (void)forceRemoveChatRoomEntry:(NSString *)chatroomId + key:(NSString *)key + sendNotification:(BOOL)sendNotification + notificationExtra:(nullable NSString *)notificationExtra + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/** + 批量删除聊天室自定义属性 + + - Parameter chatroomId: 聊天室 ID,最大长度为 64 个字符 + - Parameter keys: 聊天室属性名称,最多一次删除 10 条 + - Parameter isForce: 是否强制覆盖 + - Parameter successBlock: 成功回调 + - Parameter errorBlock: 失败回调,当 nErrorCode 为 RC_KV_STORE_NOT_ALL_SUCCESS(23428)的时候,entries 才会有值(key 为设置失败的 key,value 为该 key 对应的错误码) + + 必须先开通聊天室状态存储功能 + + - Remark: 聊天室 + */ +- (void)removeChatRoomEntries:(NSString *)chatroomId + keys:(NSArray *)keys + isForce:(BOOL)isForce + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, + NSDictionary *failureEntries))errorBlock; + +#pragma mark - 聊天室成员变化监听器 + +/*! + 设置聊天室成员变化的监听器 + + 可以设置并实现此拦截器来监听聊天室成员的加入或退出 + + - Remark: 功能设置 + */ +@property (nonatomic, weak, nullable) id memberDelegate; + + +/// 绑定聊天室 ID 和 RTCRoomID +/// - Parameter chatRoomId: 聊天室 ID,最大长度为 64 个字符 +/// - Parameter rtcRoomId: rtc room ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)bindChatRoom:(NSString *)chatRoomId + withRTCRoom:(NSString *)rtcRoomId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +#pragma mark - 聊天室事件通知监听器 + +/** + 添加 IMLib 的聊天室事件通知监听器 + + 聊天室事件通知 + 封禁、解封、禁言、解除禁言、多端同步相关事件等 + - Parameter delegate: IMLib 聊天室事件通知监听器 + + - Since: 5.4.5 + */ +- (void)addChatRoomNotifyEventDelegate:(id)delegate + NS_SWIFT_NAME(addChatRoomNotifyEventDelegate(_:)); + +/** + 移除 IMLib 的聊天室事件通知监听器 + + - Parameter delegate: IMLib 聊天室事件通知监听器 + - Since: 5.4.5 + */ +- (void)removeChatRoomNotifyEventDelegate:(id)delegate + NS_SWIFT_NAME(removeChatRoomNotifyEventDelegate(_:)); + +/** + 返回 IMLib 的聊天室事件通知监听器 + + - Since: 5.4.5 + */ +- (NSArray> *)allChatRoomNotifyEventDelegates; + + +/// 是否允许聊天室消息排重,默认值为 YES +/// +/// 排重的场景如下 +/// 发送方弱网情况下发送消息,消息到达服务但发送方没有收到服务 ack,导致发送方认为消息发送失败 +/// 此种情况下,服务端和接收方都会收到第一条消息 +/// 此时发送方重发该消息,再次达到服务,那么此时服务端会有两条消息(消息内容相同,messageUid 不同) +/// 接收方会收到两条内容相同但 messageUid 不同的消息,SDK 此时会把第二条相同内容消息排重掉 +/// 以此来保证重发的相同内容消息,发送方只有一条消息,接收方也只有一条消息 +/// +/// 当消息量少时,消息排重影响不大;但是本地存在大量消息时,排重会出现性能问题 +/// 当 APP 本地存在大量消息,且发生收消息卡顿时,建议将排重关闭 +/// 在初始化接口之后连接之前调用 +/// +/// - Parameter enableCheck: 是否允许聊天室消息排重 +/// +/// - Since: 5.8.2 +- (void)setCheckChatRoomDuplicateMessage:(BOOL)enableCheck; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h new file mode 100644 index 0000000..b624a5a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomEnumDefine.h @@ -0,0 +1,162 @@ +// +// RCChatRoomEnumDefine.h +// RongChatRoom +// +// Created by 张改红 on 2020/8/12. +// Copyright © 2020 张改红。All rights reserved. +// +#import +#ifndef RCChatRoomEnumDefine_h +#define RCChatRoomEnumDefine_h + +#pragma mark RCChatRoomStatus - 聊天室状态码 +/*! + 聊天室状态码 + */ +typedef NS_ENUM(NSInteger, RCChatRoomStatus) { + /*! + 正在加入聊天室中 + */ + RCChatRoomStatus_Joining = 1, + + /*! + 加入聊天室成功 + */ + RCChatRoomStatus_Joined = 2, + /*! + 加入聊天室失败 + */ + RCChatRoomStatus_JoinFailed = 3, + + /*! + 退出了聊天室 + */ + RCChatRoomStatus_Quited = 4, + + /*! + 聊天室被销毁 + */ + RCChatRoomStatus_Destroyed = 5, + /*! + 聊天室被重置 + 由于聊天室长时间不活跃,已经被系统回收。聊天室 KV 已经被清空,请开发者刷新界面。 + */ + RCChatRoomStatus_Reset = 6, + +}; + +#pragma mark RCChatRoomMemberOrder - 聊天室成员排列顺序 +/*! + 聊天室成员的排列顺序 + */ +typedef NS_ENUM(NSUInteger, RCChatRoomMemberOrder) { + /*! + 升序,返回最早加入的成员列表 + */ + RC_ChatRoom_Member_Asc = 1, + + /*! + 降序,返回最晚加入的成员列表 + */ + RC_ChatRoom_Member_Desc = 2, +}; + +#pragma mark RCChatRoomMemberActionType - 聊天室成员加入或退出 +/*! + 聊天室成员加入或者退出 + */ +typedef NS_ENUM(NSInteger, RCChatRoomMemberActionType) { + /*! + 聊天室成员退出 + */ + RC_ChatRoom_Member_Quit = 0, + + /*! + 聊天室成员加入 + */ + RC_ChatRoom_Member_Join = 1, +}; + + +#pragma mark RCChatRoomEvent - 聊天室事件 +/*! + 聊天室多端登录同步时,消息中的状态 + */ +typedef NS_ENUM(NSInteger, RCChatRoomSyncStatus) { + /*! + 多端登录同步用户离开聊天室, + 1. 同一用户在一终端离开聊天室,通知另一终端 + 2. 用户多端加入聊天室场景:用户在 Android 端加入聊天室,在 Web 端登录后又加入一个新的聊天室,自动将用户从上一个聊天室踢出 + 被踢出聊天室中的所有成员,包括被踢出用户 + */ + RCChatRoomSyncStatusQuit = 0, + + /*! + 多端登录同步用户加入聊天室, + 同一用户在一终端加入聊天室,通知另一终端 + */ + RCChatRoomSyncStatusJoin = 1 +}; + +/*! + 聊天室解封/封禁用户消息,操作类型枚举 + */ +typedef NS_ENUM(NSInteger, RCChatRoomMemberOperateType) { + /*! + 解封 + */ + RCChatRoomMemberOperateTypeDeblock = 0, + + /*! + 封禁 + */ + RCChatRoomMemberOperateTypeBlocked = 1 +}; + + +/*! + 聊天室禁言相关消息,操作类型枚举 + */ +typedef NS_ENUM(NSInteger, RCChatRoomMemberBanType) { + /*! + 解除指定聊天室中用户禁言 + */ + RCChatRoomMemberBanTypeUnmuteUsers = 0, + + /*! + 禁言指定聊天室中用户 + */ + RCChatRoomMemberBanTypeMuteUsers = 1, + + /*! + 解除聊天室全体禁言 + */ + RCChatRoomMemberBanTypeUnmuteAll = 2, + + /*! + 聊天室全体禁言 + */ + RCChatRoomMemberBanTypeMuteAll = 3, + + /*! + 移出禁言用户白名单 + */ + RCChatRoomMemberBanTypeRemoveWhitelist = 4, + + /*! + 添加禁言用户白名单 + */ + RCChatRoomMemberBanTypeAddWhitelist = 5, + + /*! + 解除用户聊天室全局禁言 + */ + RCChatRoomMemberBanTypeUnmuteGlobal = 6, + + /*! + 用户聊天室全局禁言 + */ + RCChatRoomMemberBanTypeMuteGlobal = 7 +}; + +#endif /* RCChatRoomEnumDefine_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomInfo.h new file mode 100644 index 0000000..081f34a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomInfo.h @@ -0,0 +1,40 @@ +// +// RCChatRoomInfo.h +// RongIMLib +// +// Created by 岑裕 on 16/1/11. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomMemberInfo.h" +#import "RCChatRoomEnumDefine.h" +/*! + 聊天室信息类 + */ +@interface RCChatRoomInfo : NSObject + +/*! + 聊天室 ID + */ +@property (nonatomic, copy) NSString *targetId; + +/*! + 包含的成员信息类型 + */ +@property (nonatomic, assign) RCChatRoomMemberOrder memberOrder; + +/*! + 聊天室中的部分成员信息 RCChatRoomMemberInfo 列表 + + 如果成员类型为RC_ChatRoom_Member_Asc,则为最早加入的成员列表,按成员加入时间升序排列; + 如果成员类型为RC_ChatRoom_Member_Desc,则为最晚加入的成员列表,按成员加入时间降序排列。 + */ +@property (nonatomic, strong) NSArray *memberInfoArray; + +/*! + 当前聊天室的成员总数 + */ +@property (nonatomic, assign) int totalMemberCount; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h new file mode 100644 index 0000000..c3e1c8b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberAction.h @@ -0,0 +1,36 @@ +// +// RCChatRoomMemberAction.h +// RongChatRoom +// +// Created by 孙浩 on 2021/7/12. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomMemberAction : NSObject + +/// 成员 ID +@property (nonatomic, copy) NSString *memberId; + +/// 成员加入或者退出 +@property (nonatomic, assign) RCChatRoomMemberActionType action; + +/// 附加信息 +/// - Since 5.10.2 +@property (nonatomic, copy, nullable) NSString *extra; + +/*! + RCChatRoomMemberAction 初始化方法 + + - Parameter memberId: 成员 ID + - Parameter action: 成员加入或退出 + */ +- (instancetype)initWithMemberId:(NSString *)memberId action:(RCChatRoomMemberActionType)action; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberActionModel.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberActionModel.h new file mode 100644 index 0000000..a715db6 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberActionModel.h @@ -0,0 +1,37 @@ +// +// RCChatRoomMemberActionModel.h +// RongChatRoom +// +// Created by chinaspx on 2023/10/18. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCChatRoomMemberAction; + +@interface RCChatRoomMemberActionModel : NSObject + +/// 聊天室 ID +@property (nonatomic, readonly) NSString *roomId; + +/// 聊天室成员变更信息 +@property (nonatomic, strong, readonly) NSArray *chatRoomMemberActions; + +/// 当前的聊天室人数 +@property (nonatomic, assign, readonly) NSUInteger memberCount; + + +/// 初始化方法 +/// - Parameter roomId: 聊天室 ID +/// - Parameter memberActions: 聊天室成员变更信息 +/// - Parameter memberCount: 当前的聊天室人数 +/// +- (instancetype)initWithRoomId:(NSString *)roomId + memberActions:(NSArray *)memberActions + memberCount:(NSUInteger)memberCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberBanEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberBanEvent.h new file mode 100644 index 0000000..95de622 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberBanEvent.h @@ -0,0 +1,46 @@ +// +// RCChatRoomMemberBanEvent.h +// RongChatRoom +// +// Created by chinaspx on 2023/5/6. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomMemberBanEvent : NSObject +/// 聊天室 ID +@property (nonatomic, copy) NSString *chatroomId; + +/** + 禁言操作类型,详见枚举值 + 禁言/解除禁言操作类型: + 0:解除指定聊天室中用户禁言; + 1:禁言指定聊天室中用户; + 2:解除聊天室全体禁言; + 3:聊天室全体禁言 + 4: 移出禁言用户白名单 + 5: 添加禁言用户白名单 + 6: 解除用户聊天室全局禁言 + 7:用户聊天室全局禁言 + */ +@property (nonatomic, assign) RCChatRoomMemberBanType banType; + +/// 禁言的总时间(禁言的操作有此字段)(毫秒) ,最大值为 43200 分钟(1 个月), 最小值 1 分钟 +@property (nonatomic, assign) NSInteger durationTime; + +/// 操作时间 (毫秒时间戳) +@property (nonatomic, assign) long long operateTime; + +/// 禁言/解禁言用户 ID 列表 +@property (nonatomic, copy) NSArray *userIdList; + +/// 附加信息 +@property (nonatomic, copy, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberBlockEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberBlockEvent.h new file mode 100644 index 0000000..56fffce --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberBlockEvent.h @@ -0,0 +1,47 @@ +// +// RCChatRoomMemberBlockEvent.h +// RongChatRoom +// +// Created by chinaspx on 2023/5/6. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomMemberBlockEvent : NSObject +/*! + 聊天室 ID + */ +@property (nonatomic, copy) NSString *chatroomId; + +/** + 封禁类型,0是解封,1是封禁 + */ +@property (nonatomic, assign) RCChatRoomMemberOperateType operateType; + +/** + 封禁的总时间,封禁时有此字段(毫秒),最大值为43200分钟(1个月), 最小值1分钟 + */ +@property (nonatomic, assign) NSInteger durationTime; + +/** + 操作时间(毫秒时间戳) + */ +@property (nonatomic, assign) long long operateTime; + +/** + 被封禁/解封的用户 ID 列表 + */ +@property (nonatomic, copy) NSArray *userIdList; + +/** + 附加信息 + */ +@property (nonatomic, copy, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h new file mode 100644 index 0000000..6d3c127 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomMemberInfo.h @@ -0,0 +1,26 @@ +// +// RCChatRoomMemberInfo.h +// RongIMLib +// +// Created by 岑裕 on 16/1/10. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +/*! + 聊天室成员信息类 + */ +@interface RCChatRoomMemberInfo : NSObject + +/*! + 用户 ID + */ +@property (nonatomic, copy) NSString *userId; + +/*! + 用户加入聊天室时间(Unix 时间戳,毫秒) + */ +@property (nonatomic, assign) long long joinTime; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomProtocol.h new file mode 100644 index 0000000..1fc89be --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomProtocol.h @@ -0,0 +1,255 @@ +// +// RCChatRoomProtocol.h +// RongChatRoom +// +// Created by 张改红 on 2020/8/12. +// Copyright © 2020 张改红。All rights reserved. +// + +#ifndef RCChatRoomProtocol_h +#define RCChatRoomProtocol_h + +NS_ASSUME_NONNULL_BEGIN + +@class RCChatRoomMemberAction, RCChatRoomMemberActionModel, RCJoinChatRoomResponse; +@class RCChatRoomSyncEvent, RCChatRoomMemberBlockEvent, RCChatRoomMemberBanEvent; + +typedef NS_ENUM(NSUInteger, RCChatRoomDestroyType) { + /// 开发者主动销毁 + RCChatRoomDestroyTypeManual = 0, + + /// 聊天室长时间不活跃,被系统自动回收 + RCChatRoomDestroyTypeAuto = 3 +}; + +#pragma mark - 聊天室监听器 + +/*! + IMLib聊天室状态的的监听器 + + 设置IMLib的聊天室状态监听器,请参考RCIMClient的setChatRoomStatusDelegate:方法。 + */ +@protocol RCChatRoomStatusDelegate + +/*! + 开始加入聊天室的回调 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomJoining:(NSString *)chatroomId; + +/*! + 加入聊天室成功的回调 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomJoined:(NSString *)chatroomId response:(RCJoinChatRoomResponse *)response; + +- (void)onChatRoomJoined:(NSString *)chatroomId + __deprecated_msg("Use [RCChatRoomStatusDelegate onChatRoomJoined:response:] instead"); + +/*! + 加入聊天室失败的回调 + + - Parameter chatroomId: 聊天室ID + - Parameter errorCode: 加入失败的错误码 + + 如果错误码是KICKED_FROM_CHATROOM或RC_CHATROOM_NOT_EXIST,则不会自动重新加入聊天室,App需要按照自己的逻辑处理。 + */ +- (void)onChatRoomJoinFailed:(NSString *)chatroomId errorCode:(RCErrorCode)errorCode; + +/*! + 加入聊天室成功,但是聊天室被重置。接收到此回调后,还会收到 onChatRoomJoined:回调。 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomReset:(NSString *)chatroomId; + +/*! + 退出聊天室成功的回调 + + - Parameter chatroomId: 聊天室ID + */ +- (void)onChatRoomQuited:(NSString *)chatroomId; + +/*! + 聊天室被销毁的回调,用户在线的时候房间被销毁才会收到此回调。 + + - Parameter chatroomId: 聊天室ID + - Parameter type: 聊天室销毁原因 + + */ +- (void)onChatRoomDestroyed:(NSString *)chatroomId type:(RCChatRoomDestroyType)type; + +@end + + +#pragma mark - 聊天室 KV 状态变化 + +@class RCChatroomKVChangeInfo; + +/** + IMLib 聊天室 KV 状态变化监听器 + + 设置代理请参考 RCIMClient 的 setRCChatRoomKVStatusChangeDelegate: 方法。 + */ +@protocol RCChatRoomKVStatusChangeDelegate + + +/** + IMLib 刚加入聊天室时 KV 同步完成的回调 + + - Parameter roomId: 聊天室 Id + */ +- (void)chatRoomKVDidSync:(NSString *)roomId; + +/** + IMLib 聊天室 KV 变化的回调 + + - Parameter roomId: 聊天室 Id + - Parameter entry: KV 字典,如果刚进入聊天室时存在 KV,会通过此回调将所有 KV 返回,再次回调时为其他人设置或者修改 KV + */ +- (void)chatRoomKVDidUpdate:(NSString *)roomId entry:(NSDictionary *)entry; + +/** + IMLib 聊天室 KV 被删除的回调 + + - Parameter roomId: 聊天室 Id + - Parameter entry: KV 字典 + */ +- (void)chatRoomKVDidRemove:(NSString *)roomId entry:(NSDictionary *)entry; + +/** + 聊天室 KV 变化的回调。 + 本回调包含 `chatRoomKVDidUpdate:entry:` 和 `chatRoomKVDidRemove:entry:` 的回调数据。 + + - Parameter roomId: 聊天室 ID。 + - Parameter changeInfos: 发生变化的 KV,严格按照聊天室属性设置时的顺序。 + */ +- (void)chatRoomKVDidChange:(NSString *)roomId changeInfos:(NSArray *)changeInfos; + +@end + + +#pragma mark - 聊天室成员变化监听器 +@protocol RCChatRoomMemberDelegate +/** + 聊天室成员加入或退出的回调 + + - Parameter members: 变更的用户列表 + - Parameter roomId: 聊天室 Id + - Warning: 子线程回调 + + 为了保证接口兼容性,该回调和下面的回调 memberDidChange: + 会同时触发,建议使用下面的回调 + */ +- (void)memberDidChange:(NSArray *)members inRoom:(NSString *)roomId; + +/** + 聊天室成员加入或退出的回调 + + - Parameter actionModel: 变更的事件模型 + - Warning: 子线程回调 + + 为了保证接口兼容性,该回调和上面的回调 memberDidChange:inRoom: + 会同时触发,建议使用该回调 + + - Since: 5.6.7 + */ +- (void)memberDidChange:(RCChatRoomMemberActionModel *)actionModel; + +@end + + +#pragma mark - 聊天室事件通知 + +/** + 聊天室事件通知 + 封禁、解封、禁言、解除禁言、多端同步相关事件等 + + - Since: 5.4.5 + */ + +@protocol RCChatRoomNotifyEventDelegate + +/** + 多端登录相关事件通知回调 + + 包含三种通知 case + + 1. 多端登录情况,一端加入聊天室,需要通知另一终端 + + 2. 多端登录情况,一端退出聊天室,需要通知另一终端 + + 3. 用户多端加入聊天室场景:用户在 iOS 端加入聊天室,在 Web 端登录后又加入一个新的聊天室,自动将用户从上一个聊天室踢出 + 通知被踢出聊天室中的所有成员,包括被踢出用户 + 注:case 3 如果开通了一个用户可加入多个聊天室的情况不会进行通知 + + - Parameter event: 聊天室 RCChatRoomSyncEvent + */ +- (void)chatRoomNotifyMultiLoginSync:(RCChatRoomSyncEvent *)event; + +/** + 封禁用户相关事件通知回调 + + 包含两种通知 case + + 1. 封禁用户,聊天室中所有成员,包括被封禁用户 + 注: + * 封禁后用户被自动踢出聊天室 + * 封禁后用户不会再收到被踢出的通知 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知) + + 2. 解除封禁,被解除封禁的成员 + 注: + * 用户未在线时,再登录时不会收到通知 + * 服务端仅对主动解除封禁做通知,封禁时间到了,自动解除的不通知, 此刻调用加入聊天室接口可成功 + * 仅对解除封禁的本人做通知,是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知) + + 封禁时长最大值为43200分钟/1个月, 最小值1分钟 + + - Parameter event: 聊天室 RCChatRoomMemberBlockEvent + */ +- (void)chatRoomNotifyBlock:(RCChatRoomMemberBlockEvent *)event; + +/** + 禁言相关事件通知回调 + + 包含以下 case + + 注: + * 禁言,受到白名单保护,即白名单中用户不会被禁言 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知)。通知范围: + 1. 禁言指定聊天室中用户,通知指定聊天室中任何成员 + 2. 解除指定聊天室中用户禁言,通知指定聊天室中任何成员 + + 注: + * 全体禁言,也受到白名单保护,即白名单中用户不会被禁言 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知)。通知范围: + 3. 聊天室全体禁言,通知聊天室中所有成员 + 4. 解除聊天室全体禁言,通知聊天室中所有成员 + + 注: + * 白名单是聊天室维度,添加后,用户在此聊天室内无法被设置禁言,即被保护 + 生命周期跟随聊天室,销毁后,清空白名单,重建聊天室时,需要再次调用接口添加 + * 是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知)。通知范围: + 5. 添加禁言用户白名单,通知聊天室中所有成员 + 6. 移出禁言用户白名单,通知聊天室中所有成员 + + 注: + * 全局禁言是最高优先级,全局禁言后,禁言用户在所有聊天室内都无法发言,即便配置白名单也不行 + * 只有全局禁言或解除全局禁言的用户可以收到通知。是否接收通知取决于 server API 的入参 needNotify(默认为 false 不通知) + 7. 用户聊天室全局禁言,通知被全局禁言用户 + 8. 解除用户聊天室全局禁言,通知被解除全局禁言用户 + + 禁言时长最大值为43200分钟/1个月, 最小值1分钟 + + - Parameter event: 聊天室 ```RCChatRoomMemberBanEvent``` + */ +- (void)chatRoomNotifyBan:(RCChatRoomMemberBanEvent *)event; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCChatRoomProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomSyncEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomSyncEvent.h new file mode 100644 index 0000000..943d027 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatRoomSyncEvent.h @@ -0,0 +1,45 @@ +// +// RCChatRoomSyncEvent.h +// RongChatRoom +// +// Created by chinaspx on 2023/5/6. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCChatRoomEnumDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatRoomSyncEvent : NSObject +/*! + 聊天室 ID + */ +@property (nonatomic, copy) NSString *chatroomId; + +/** + 同步通知的变更状态 + */ +@property (nonatomic, assign) RCChatRoomSyncStatus status; + +/** + 如果status是0的情况,区分离开类型: + 1,自己主动离开, + 2,多端加入互踢导致离开 + */ +@property (nonatomic, assign) NSInteger reason; + +/** + 同步通知的变更时间 + 用户加入/退出/被踢的时间(毫秒时间戳) + */ +@property (nonatomic, assign) long long time; + +/** + 附加信息 + */ +@property (nonatomic, copy, nullable) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVChangeInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVChangeInfo.h new file mode 100644 index 0000000..ce960a4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVChangeInfo.h @@ -0,0 +1,29 @@ +// +// RCChatroomKVChangeInfo.h +// RongChatRoom +// +// Created by shuai shao on 2025/4/21. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCChatroomKVChangeInfo : NSObject + +/// 房间 ID。 +@property (nonatomic, copy, readonly) NSString *roomId; + +/// 发生变化的 Key。 +@property (nonatomic, copy, readonly) NSString *key; + +/// 发生变化后的 Value。 +@property (nonatomic, copy, readonly, nullable) NSString *value; + +/// 是否是删除。 +@property (nonatomic, assign, readonly) BOOL isDelete; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h new file mode 100644 index 0000000..5ddff77 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCChatroomKVNotificationMessage.h @@ -0,0 +1,57 @@ +// +// RCChatroomKVNotificationMessage.h +// RongIMLib +// +// Created by 孙浩 on 2019/10/14. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 聊天室自定义属性通知消息的类型名 +#define RCChatroomKVNotificationMessageTypeIdentifier @"RC:chrmKVNotiMsg" + +typedef NS_ENUM(NSInteger, RCChatroomKVNotificationType) { + /// 设置 KV 的操作 + RCChatroomKVNotificationTypeSet = 1, + /// 删除 KV 的操作 + RCChatroomKVNotificationTypeRemove = 2 +}; + +/** +聊天室自定义属性通知消息 + +不要随意构造此类消息发送,调用设置或者删除接口时会自动构建。 +此消息不存储不计入未读消息数。 + +- Remark: 通知类消息 +*/ +@interface RCChatroomKVNotificationMessage : RCMessageContent + +/// 聊天室操作的类型 +@property (nonatomic, assign) RCChatroomKVNotificationType type; + +/// 聊天室属性名称 +@property (nonatomic, copy) NSString *key; + +/// 聊天室属性对应的值 +@property (nonatomic, copy) NSString *value; + +/*! +初始化聊天室自定义属性通知消息 + +- Parameter key: 聊天室属性名称 +- Parameter value: 聊天室属性对应的值(删除 key 时不用传) +- Parameter extra: 通知消息的自定义字段 +- Returns: 聊天室自定义属性通知消息的对象 +*/ ++ (instancetype)notificationWithType:(RCChatroomKVNotificationType)type + key:(NSString *)key + value:(NSString *_Nullable)value + extra:(NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCJoinChatRoomResponse.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCJoinChatRoomResponse.h new file mode 100644 index 0000000..e9f391c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RCJoinChatRoomResponse.h @@ -0,0 +1,39 @@ +// +// RCJoinChatRoomResponse.h +// RongChatRoom +// +// Created by chinaspx on 2023/7/31. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCJoinChatRoomResponse : NSObject + +// 创建时间(毫秒时间戳) +@property (nonatomic, assign) long long createTime; + +// 成员数量 +@property (nonatomic, assign) NSInteger memberCount; + +// 是否全局禁言 +@property (nonatomic, assign) BOOL isAllChatRoomBanned; + +// 是否当前用户被禁言 +@property (nonatomic, assign) BOOL isCurrentUserBanned; + +// 当前用户是否在此聊天室被禁言 +@property (nonatomic, assign) BOOL isCurrentChatRoomBanned; + +// 当前用户是否在此聊天室的白名单中 +@property (nonatomic, assign) BOOL isCurrentChatRoomInWhitelist; + +// 加入时间(毫秒时间戳) +// - Since: 5.10.2 +@property (nonatomic, assign) long long joinTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RongChatRoom.h b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RongChatRoom.h new file mode 100644 index 0000000..0268fb8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Headers/RongChatRoom.h @@ -0,0 +1,34 @@ +// +// RongChatRoom.h +// RongChatRoom +// +// Created by 张改红 on 2020/8/12. +// Copyright © 2020 张改红。All rights reserved. +// + +#import + +//! Project version number for RongChatRoom. +FOUNDATION_EXPORT double RongChatRoomVersionNumber; + +//! Project version string for RongChatRoom. +FOUNDATION_EXPORT const unsigned char RongChatRoomVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import +#import +#import +#import + +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import + +#import diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Info.plist new file mode 100644 index 0000000..68ce43d Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Modules/module.modulemap b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Modules/module.modulemap new file mode 100644 index 0000000..e6751a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongChatRoom { + umbrella header "RongChatRoom.h" + + export * + module * { export * } +} diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/RongChatRoom b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/RongChatRoom new file mode 100755 index 0000000..2bb1dd5 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/RongChatRoom differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..709a161 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongChatRoom.xcframework/ios-arm64_i386_x86_64-simulator/RongChatRoom.framework/_CodeSignature/CodeResources @@ -0,0 +1,342 @@ + + + + + files + + Headers/RCChatRoomClient+Deprecated.h + + 59QNtRGVYcW/81lCM3xXg8lcQTw= + + Headers/RCChatRoomClient.h + + 4eeeWjTqbKSxJiBH1+lIU8V3abs= + + Headers/RCChatRoomEnumDefine.h + + 7ipmzPgcPv3DlG7eu7bVUPncN1I= + + Headers/RCChatRoomInfo.h + + lMBSs6LuI5dj/SCgE5xofYNUNlI= + + Headers/RCChatRoomMemberAction.h + + 8zVSvoPUHmvAqJy4g+7g2uPwNlk= + + Headers/RCChatRoomMemberActionModel.h + + Kq7FrXdzQ4axCQ7jHUXBSFuUP2E= + + Headers/RCChatRoomMemberBanEvent.h + + XMGBk5348/rPk+3SCFGlKz3bs5w= + + Headers/RCChatRoomMemberBlockEvent.h + + kl/ISDncrFFOTQnWCEq5ihYM39U= + + Headers/RCChatRoomMemberInfo.h + + MeunTuYWza6J6GNeU9jJ9yAIf6k= + + Headers/RCChatRoomProtocol.h + + dN1Cerf8C6IiNIVHIYvMUXmR8T8= + + Headers/RCChatRoomSyncEvent.h + + BF1X0bQS1U9pTg6JsKiouacegOs= + + Headers/RCChatroomKVChangeInfo.h + + kOgFBsvA95iTFPNOg8KvSZjpAp4= + + Headers/RCChatroomKVNotificationMessage.h + + MqUh4GHtUDgcpdhFkexLTJozHAs= + + Headers/RCJoinChatRoomResponse.h + + 7CLt4pIv0TSmLd9G2GotOhGqjYA= + + Headers/RongChatRoom.h + + 0Uc+ipnUebWHdxJFY3UNRSaB9FY= + + Info.plist + + BAbVxQ9YcskGmA3oVy8szLM52d4= + + Modules/module.modulemap + + ii0hqjTTGnemjpGIXXGYCaoB99o= + + + files2 + + Headers/RCChatRoomClient+Deprecated.h + + hash + + 59QNtRGVYcW/81lCM3xXg8lcQTw= + + hash2 + + VeUz0KM7anFOMcjqzwc0q8t7r+w5VNR2DvbWM91Uc7o= + + + Headers/RCChatRoomClient.h + + hash + + 4eeeWjTqbKSxJiBH1+lIU8V3abs= + + hash2 + + 8JnB3SmbUh/wFyuPvi3b3Gray+VplP/FYAHRWai1uQw= + + + Headers/RCChatRoomEnumDefine.h + + hash + + 7ipmzPgcPv3DlG7eu7bVUPncN1I= + + hash2 + + EzVs+EtKfpdjeis8qZtgtjFNOw1ANDosc411HfRTl6U= + + + Headers/RCChatRoomInfo.h + + hash + + lMBSs6LuI5dj/SCgE5xofYNUNlI= + + hash2 + + fdFCTcU8VIPr+5LZSLAUEPplOnimj7CTHXwJH9F4pj0= + + + Headers/RCChatRoomMemberAction.h + + hash + + 8zVSvoPUHmvAqJy4g+7g2uPwNlk= + + hash2 + + /mjF0gKIZ4AVh+AfA4XWHAvW7qdkiIE+LH3PRp0pT1M= + + + Headers/RCChatRoomMemberActionModel.h + + hash + + Kq7FrXdzQ4axCQ7jHUXBSFuUP2E= + + hash2 + + viBnYaS0atwrF8B3MA29jgUN3KrX6yIzHLcnTj+r4Jw= + + + Headers/RCChatRoomMemberBanEvent.h + + hash + + XMGBk5348/rPk+3SCFGlKz3bs5w= + + hash2 + + uYWFoWtk0fbPUQ/fX158NA8MzZD68zGVXFv3wi9It74= + + + Headers/RCChatRoomMemberBlockEvent.h + + hash + + kl/ISDncrFFOTQnWCEq5ihYM39U= + + hash2 + + fAw/5mf4KgR9kzfIx4rDQtRJZY16ZJC86j7psjme1ao= + + + Headers/RCChatRoomMemberInfo.h + + hash + + MeunTuYWza6J6GNeU9jJ9yAIf6k= + + hash2 + + p+ptXasD1EwetwwGO6fkJejatacBm1Likt7kOiwi1c0= + + + Headers/RCChatRoomProtocol.h + + hash + + dN1Cerf8C6IiNIVHIYvMUXmR8T8= + + hash2 + + FP805Zw9tuCBVyHqvOiuQfvErxdVc93Hzngte47Vjao= + + + Headers/RCChatRoomSyncEvent.h + + hash + + BF1X0bQS1U9pTg6JsKiouacegOs= + + hash2 + + RpMzkJUbvTp7PdPLzEO0RE9VRJ17F/lJAg8LEhhGroI= + + + Headers/RCChatroomKVChangeInfo.h + + hash + + kOgFBsvA95iTFPNOg8KvSZjpAp4= + + hash2 + + qUsA04eVGGxQv1OgHrfHwlnT+IGTFas+JD3vziKyhhs= + + + Headers/RCChatroomKVNotificationMessage.h + + hash + + MqUh4GHtUDgcpdhFkexLTJozHAs= + + hash2 + + 24CgnDh2oGGjydwLW/QvEkLFDKKn2ZLsXYMlLWDPcIY= + + + Headers/RCJoinChatRoomResponse.h + + hash + + 7CLt4pIv0TSmLd9G2GotOhGqjYA= + + hash2 + + IvgmaZuARMCpoX+wh1/P+S/IOaXIu69UJUE9J5/3aU4= + + + Headers/RongChatRoom.h + + hash + + 0Uc+ipnUebWHdxJFY3UNRSaB9FY= + + hash2 + + 2ckWRnD9M3feRHniqsmr95+ttGnSL0Ugz+MGZDDWHn4= + + + Modules/module.modulemap + + hash + + ii0hqjTTGnemjpGIXXGYCaoB99o= + + hash2 + + wJMy+vWcBIzIHUTDDqJsgKqxiJI3RYxErBRoeokdByQ= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/Info.plist new file mode 100644 index 0000000..4848803 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/Info.plist @@ -0,0 +1,42 @@ + + + + + AvailableLibraries + + + LibraryIdentifier + ios-arm64_i386_x86_64-simulator + LibraryPath + RongIMLibCore.framework + SupportedArchitectures + + arm64 + i386 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + LibraryIdentifier + ios-arm64_armv7 + LibraryPath + RongIMLibCore.framework + SupportedArchitectures + + arm64 + armv7 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAMRDataConverter.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAMRDataConverter.h new file mode 100644 index 0000000..6b40a16 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAMRDataConverter.h @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCAMRDataConverter.h +// Created by Heq.Shinoda on 14-6-17. + +#ifndef __RCAMRDataConverter +#define __RCAMRDataConverter + +#import +#include +#include +#include + +NS_ASSUME_NONNULL_BEGIN +/*! + AMR 格式与 WAV 格式音频转换工具类 + */ +@interface RCAMRDataConverter : NSObject + +/*! + 获取 AMR 格式与 WAV 格式音频转换工具类单例 + + - Returns: AMR 格式与 WAV 格式音频转换工具类单例 + */ ++ (RCAMRDataConverter *)sharedAMRDataConverter; + +/*! + 将 AMR 格式的音频数据转化为 WAV 格式的音频数据 + + - Parameter data: AMR 格式的音频数据,可以是 AMR-NB 或者 AMR-WB 格式 + - Returns: WAV 格式的音频数据 + */ +- (nullable NSData *)decodeAMRToWAVE:(NSData *)data; + +/*! + 将 AMR 格式的音频数据转化为 WAV 格式的音频数据 + + - Parameter data: AMR格式的音频数据,必须是 AMR-NB 的格式 + - Returns: WAV格式的音频数据 + */ +- (nullable NSData *)decodeAMRToWAVEWithoutHeader:(NSData *)data; + +/*! + 将 WAV 格式的音频数据转化为 AMR 格式的音频数据(8KHz/16KHz 采样) + + - Parameter data: WAV 格式的音频数据 + - Returns: AMR-NB/AMR-WB 格式的音频数据 + 如果采样率为 8KHz 则返回 AMR-NB 格式数据,如果采样率为 16KHz 则返回 AMR-WB 格式数据。 + */ +- (nullable NSData *)encodeWAVEToAMR:(NSData *)data; + +@end + +SEC_ASSUME_NONNULL_END +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAndroidConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAndroidConfig.h new file mode 100644 index 0000000..44eab07 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAndroidConfig.h @@ -0,0 +1,131 @@ +// +// RCAndroidConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/9/17. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 华为推送消息级别 +typedef NSString *RCImportanceHw NS_STRING_ENUM; + +/// 华为推送消息级别 NORMAL +FOUNDATION_EXPORT RCImportanceHw const RCImportanceHwNormal; + +/// 华为推送消息级别 LOW +FOUNDATION_EXPORT RCImportanceHw const RCImportanceHwLow; + +/// 荣耀推送消息级别 +typedef NSString *RCImportanceHonor NS_STRING_ENUM; + +/// 荣耀推送消息级别 NORMAL +FOUNDATION_EXPORT RCImportanceHonor const RCImportanceHonorNormal; + +/// 荣耀推送消息级别 LOW +FOUNDATION_EXPORT RCImportanceHonor const RCImportanceHonorLow; + + +@interface RCAndroidConfig : NSObject + +/// Android 平台 Push 唯一标识 +/// +/// 目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。 +@property (nonatomic, copy) NSString *notificationId; + +#pragma mark - 小米 + +/// 小米的渠道 ID +/// +/// 该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 +@property (nonatomic, copy, nullable) NSString *channelIdMi; + +/// 小米 Large icon 链接 +/// +/// Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。 +@property (nonatomic, copy, nullable) + NSString *miLargeIconUrl __deprecated_msg("由于小米官方已停止支持该能力,该字段/方法已失效"); +#pragma mark - 华为 + +/// 华为的渠道 ID +/// +/// 该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 +@property (nonatomic, copy, nullable) NSString *channelIdHW; + +////// 华为推送消息级别 +@property (nonatomic, copy, nullable) RCImportanceHw importanceHW; + +/// 华为通知栏消息右侧大图标 URL +/// +/// 如果不设置,则不展示通知栏右侧图标,URL 使用的协议必须是 HTTPS 协议。 +/// 图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。 +@property (nonatomic, copy, nullable) NSString *hwImageUrl; + +/// 华为推送消息分类: +/// - 社交通讯:即时通讯 [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 +/// +/// 默认值为 null,如果为 null,则以服务配置为准 +/// +/// - Since: 5.4.0 +@property (nonatomic, copy, nullable) NSString *categoryHW; + +#pragma mark - Honor + +/// 荣耀推送消息级别 +@property (nonatomic, copy, nullable) RCImportanceHonor importanceHonor; + +/// 荣耀通知栏消息右侧大图标 URL +@property (nonatomic, copy, nullable) NSString *imageUrlHonor; + +#pragma mark - OPPO + +/// OPPO 的渠道 ID +/// +/// 该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 +@property (nonatomic, copy, nullable) NSString *channelIdOPPO; + + +#pragma mark - VIVO + +/// VIVO 推送通道类型 +/// 开发者集成了 VIVO 推送,需要指定推送类型时,可进行设置。 +/// 目前可选值 "0"(运营消息) 和 "1"(系统消息) +@property (nonatomic, copy, nullable) NSString *typeVivo; + +/// Vivo 推送消息分类 +/// +/// 系统消息分类 +/// 即时消息 [IM],账号与资产 [ACCOUNT],日程待办 [TODO],设备信息 [DEVICE_REMINDER],订单与物流 [ORDER],订阅提醒 [SUBSCRIPTION] +/// 运营消息分类 +/// 新闻 [NEWS],内容推荐 [CONTENT],运营活动 [MARKETING],社交动态 [SOCIAL] +/// 更多信息请参考 Vivo 消息分类标准文档:https://dev.vivo.com.cn/documentCenter/doc/359 +/// +/// 默认值为 null,如果为 null,则以服务配置为准 +/// +/// - Since: 5.4.2 +@property (nonatomic, copy, nullable) NSString *categoryVivo; + +#pragma mark - FCM + +/// FCM 通知的频道 ID +/// +/// 该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。 +@property (nonatomic, copy, nullable) NSString *fcmChannelId; + +/// FCM 通知类型推送时所使用的分组 id +@property (nonatomic, copy, nullable) NSString *fcmCollapseKey; + +/// FCM 通知类型的推送所使用的通知图片 url +@property (nonatomic, copy, nullable) NSString *fcmImageUrl; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAppSettings.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAppSettings.h new file mode 100644 index 0000000..18f8b0a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCAppSettings.h @@ -0,0 +1,34 @@ +// +// RCAppSettings.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/9. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 当前 AppKey 对应的配置。 +/// +/// - Since: 5.22.0 +@interface RCAppSettings : NSObject + +/// 语音转文字功能是否开启。 +@property (nonatomic, readonly, assign) BOOL isSpeechToTextEnable; + +/// 消息可编辑的有效时间,单位:分钟。 +/// +/// - Since: 5.26.0 +@property (nonatomic, readonly, assign) NSInteger messageModifiableMinutes; + +/// 已读回执版本 +/// +/// - Since: 5.30.0 +@property (nonatomic, readonly, assign) RCMessageReadReceiptVersion readReceiptVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCBlockedMessageInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCBlockedMessageInfo.h new file mode 100644 index 0000000..2222ef6 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCBlockedMessageInfo.h @@ -0,0 +1,63 @@ +// +// RCBlockedMessageInfo.h +// RongIMLibCore +// +// Created by 孙浩 on 2021/7/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCBlockedMessageInfo : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType type; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 频道 ID +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 被拦截的消息 UID +@property (nonatomic, copy) NSString *blockedMsgUId; + +/// 拦截原因 +/// 1. 全局敏感词:命中了融云内置的全局敏感词 +/// 2. 自定义敏感词拦截:命中了客户在融云自定义的敏感词 +/// 3. 第三方审核拦截:命中了第三方(数美)或消息回调服务决定不下发的状态 +@property (nonatomic, assign) RCMessageBlockType blockType; + +/// 附加信息 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 消息的发送时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long sentTime; + +/// 消息源触发类型。0 默认,原始消息;1 消息扩展;2 消息修改 +@property (nonatomic, assign) NSInteger sourceType; + +/// 源内容 Json 字符串。sourceType 为 1、2 时返回;1 扩展内容,2 消息内容 +/// +/// - sourceType 为 0,sourceContent 内容为 nil +/// - sourceType 为 1,sourceContent 是扩展内容,示例 {"mid":"xxx-xxx-xxx-xxx","put":{"key":"敏感词"}} +/// - sourceType 为 2,sourceContent 是消息修改后内容,示例 {"content":"敏感词"} +@property (nonatomic, copy) NSString *sourceContent; + +/// RCBlockedMessageInfo 初始化方法 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter blockedMsgUId: 被拦截的消息 ID +/// - Parameter blockType: 会话 id +- (instancetype)initWithConversationType:(RCConversationType)type + targetId:(NSString *)targetId + blockedMsgUId:(NSString *)blockedMsgUId + blockType:(RCMessageBlockType)blockType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelClient+Deprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelClient+Deprecated.h new file mode 100644 index 0000000..02421ca --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelClient+Deprecated.h @@ -0,0 +1,1286 @@ +// +// RCChannelClient+Deprecated.h +// RongIMLibCore +// +// Created by shuai shao on 2023/1/29. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.4.1 +/// - Warning: 本文件的方法已经过期,请您根据提示使用替代方法。 +@interface RCChannelClient (Deprecated) + +#pragma mark - 消息发送 - +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 + +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCChannelClient " + "sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] instead"); +; + +/// 发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId:消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCChannelClient " + "sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] instead"); + +/// 发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCChannelClient " + "sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] instead"); + +/// 发送媒体消息(图片、文件、视频等消息) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg("Use [RCChannelClient " + "sendMediaMessage:targetId:channelId:content:pushContent:pushData:attached:progress:success:error:" + "cancel:] instead"); + +/// 发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// @discussion +/// 如果您使用 IMLibCore 上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + uploadPrepare: + (nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg("Use [RCChannelClient " + "sendMediaMessage:targetId:channelId:content:pushContent:pushData:attached:uploadPrepare:progress:" + "success:error:cancel:] instead"); + + +/// 插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Returns: 插入的消息实体 +/// +/// 此方法不支持聊天室的会话类型。如果 sentTime<=0,则被忽略,会以插入时的时间为准。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg("Use [RCChannelClient " + "insertOutgoingMessage:targetId:channelId:canIncludeExpansion:sentStatus:content:sentTime:" + "completion:] instead"); + +/// 异步插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [发送的消息实体] +/// +/// 此方法不支持聊天室的会话类型。如果 sentTime<=0,则被忽略,会以插入时的时间为准。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg("Use [RCChannelClient " + "insertOutgoingMessage:targetId:channelId:canIncludeExpansion:sentStatus:content:sentTime:" + "completion:] instead"); + +/// 插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Returns: 插入的消息实体 +/// +/// 此方法不支持聊天室的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg("Use [RCChannelClient " + "insertIncomingMessage:targetId:channelId:senderUserId:receivedStatusInfo:content:sentTime:" + "completion:] instead"); + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位:毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [插入的消息实体] +/// +/// 此方法不支持聊天室的会话类型。如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg("Use [RCChannelClient " + "insertIncomingMessage:targetId:channelId:senderUserId:receivedStatusInfo:content:sentTime:" + "completion:] instead"); + +/// 发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码,messageId:消息的 ID] +/// +/// - Returns: 发送的消息实体 +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdLis t 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg("Use [RCChannelClient " + "sendDirectionalMessage:targetId:channelId:toUserIdList:content:pushContent:pushData:option:" + "attached:success:error:] instead"); + +/// 发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// - Returns: 发送的消息实体 +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (nullable RCMessage *)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg("Use [RCChannelClient " + "sendDirectionalMessage:targetId:channelId:toUserIdList:content:pushContent:pushData:option:" + "attached:success:error:] instead"); + +/// 异步发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdLis t 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg("Use [RCChannelClient " + "sendDirectionalMessage:targetId:channelId:toUserIdList:content:pushContent:pushData:option:" + "attached:success:error:] instead"); + +#pragma mark - 消息操作 - + +/// 获取某个会话中指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + __deprecated_msg("Use [RCChannelClient getLatestMessages:targetId:channelId:count:completion:] instead"); + +/// 获取会话中,从指定消息之前、指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 oldestMessageId 对应那条消息。 +/// 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg( + "Use [RCChannelClient getHistoryMessages:targetId:channelId:oldestMessageId:count:completion:] instead"); + +/// 获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 oldestMessageId 对应的那条消息。 +/// 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg("Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:objectName:oldestMessageId:count:completion:] instead"); + +/// 获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter baseMessageId: 当前的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 baseMessageId 对应的那条消息。 +/// +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg( + "Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:objectName:baseMessageId:isForward:count:completion:] instead"); + +/// 获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNames: 消息内容的类型名称列表 +/// - Parameter sentTime: 当前的消息时间戳 +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 sentTime 对应的那条消息。 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg("Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:objectName:sentTime:isForward:count:completion:] instead"); + +/// 在会话中搜索指定消息的前 beforeCount 数量和后 afterCount 数量的消息。返回的消息列表中会包含指定的消息(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentTime: 消息的发送时间 +/// - Parameter beforeCount: 指定消息的前部分消息数量 +/// - Parameter afterCount: 指定消息的后部分消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + __deprecated_msg("Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:sentTime:beforeCount:afterCount:completion:] instead"); +; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter recordTime: 截止的消息发送时间戳,毫秒 +/// - Parameter count: 需要获取的消息数量,1 < count <= 100 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// @discussion +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// 本地数据库可以查到的消息,该接口不会再返回,所以建议先用 getHistoryMessages +/// 相关接口取本地历史消息,本地消息取完之后再通过该接口获取远端历史消息 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + recordTime:(long long)recordTime + count:(int)count + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient getRemoteHistoryMessages:targetId:channelId:option:success:error:] instead"); + +/// 获取历史消息(仅支持单群聊) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。当本地没有更多消息的时候,会从服务器拉取 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, RCErrorCode code))complete; + +/// 获取会话中 @ 提醒自己的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// +/// 最多返回 10 条@提醒的消息 +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadMentionedMessages:targetId:channelId:completion:] instead"); + +/// 获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 未读的 @ 消息,取值范围 [1,100] +/// - Parameter desc: 是否是降序查 +/// 假如有 1000 条未读的 @ 消息,取 100 条未读 +/// desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 +/// desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 +/// +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// 5.1.9 stable 单独添加该接口 +/// - Since: 5.2.5 + +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + desc:(BOOL)desc + __deprecated_msg( + "Use [RCChannelClient getUnreadMentionedMessages:targetId:channelId:count:desc:completion:] instead"); + +/// 根据会话 id 获取所有子频道的 @ 未读消息总数 +/// +/// - Parameter targetId: 会话 ID +/// - Returns: 该会话内的未读消息数 +/// +/// - Remark: 超级群消息操作 +/// - Since: 5.2.0 +- (int)getUltraGroupUnreadMentionedCount:(NSString *)targetId + __deprecated_msg("Use [RCChannelClient getUltraGroupUnreadMentionedCount:completion:] instead"); + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID,该消息已经变更为新的消息 `RCRecallNotificationMessage`] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)recallUltraGroupMessage:(RCMessage *)message + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取会话里第一条未读消息。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 第一条未读消息的实体。 +/// +/// 前提:超级群会话不接收离线消息。 +/// 用户在线接收的超级群未读消息已经保存到本地数据库,可以通过此接口获取到 +/// 用户离线的超级群未读消息,用户在线之后不收离线未读消息,通过此接口获取第一条未读消息为空 +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getFirstUnreadMessage:targetId:channelId:completion:] instead"); + +/// 删除本地所有 channel 特定时间之前的消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Returns: 是否删除成功 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (BOOL)deleteUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp + __deprecated_msg("Use [RCChannelClient deleteUltraGroupMessagesForAllChannel:timestamp:completion:] instead"); + +/// 删除本地特定 channel 特点时间之前的消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Returns: 是否删除成功 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (BOOL)deleteUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + __deprecated_msg("Use [RCChannelClient deleteUltraGroupMessages:channelId:timestamp:completion:] instead"); + +/// 删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否删除成功 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (BOOL)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearMessages:targetId:channelId:completion:] instead"); + +#pragma mark - 会话列表操作 - + +/// 获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 会话 RCConversation 的列表 +/// +/// 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: +/// 分页拉取会话列表,否则有可能造成内存过大。 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getConversationList:channelId:completion:] instead"); + +/// 分页获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取) +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCChannelClient getConversationList:channelId:count:startTime:completion:] instead"); + +/// 获取本地特定会话下所有频道的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.2.0 +- (nullable NSArray *)getConversationListForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCChannelClient getConversationListForAllChannel:targetId:completion:] instead"); + +/// 分页获取本地特定会话类型下所有 channel 的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// - Parameter conversationTypeList: 会话类型数组 +/// - Parameter count: 会话个数 +/// - Parameter startTime: 开始时间,首次可传入 0 +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Since: 5.2.3 +- (nullable NSArray *)getConversationListForAllChannel:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCChannelClient getConversationListForAllChannel:count:startTime:completion:] instead"); + +/// 获取本地所有含 ChannelId 会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Warning: 当会话数量多的时候,会有性能问题,所以建议在非主线程调用该接口 +/// - Remark: 会话列表 +/// - Since: 5.2.3 +- (nullable NSArray *)getConversationListForAllChannel:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCChannelClient getConversationListForAllChannel:completion:] instead"); + +/// 获取本地单个会话数据 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 会话的对象 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (nullable RCConversation *)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getConversation:targetId:channelId:completion:] instead"); + +/// 获取会话中的消息数量 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getMessageCount:targetId:channelId:completion:] instead"); + +/// 删除本地指定类型的会话 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否删除成功 +/// +/// 此方法会从本地存储中删除该会话,同时删除会话中的消息。 +/// 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearConversations:channelId:completion:] instead"); + +/// 删除本地和服务的会话 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 本地会话是否删除成功 +/// +/// 此方法会同时删除本地和服务的会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// - Warning: 如果服务的会话删除失败,本地的会话依然会被删除。SDK 在未连接的情况下,删除服务会话会失败 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient removeConversation:targetId:channelId:completion:] instead"); + +/// 设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isTop: 是否置顶 +/// - Returns: 设置是否成功 +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isTop:(BOOL)isTop + __deprecated_msg("Use [RCChannelClient setConversationToTop:targetId:channelId:isTop:completion:] instead"); + +/// 获取本地会话的置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter channelId: 所属会话的业务标识 +/// +/// - Remark: 会话 +/// - Since: 5.1.5 +- (BOOL)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getConversationTopStatus:channelId:completion:] instead"); + +/// 获取本地置顶的会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Returns: 置顶的会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getTopConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getTopConversationList:channelId:completion:] instead"); + +#pragma mark - 会话中的草稿操作 - + +/// 获取会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该会话中的草稿 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (nullable NSString *)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getTextMessageDraft:targetId:channelId:completion:] instead"); + +/// 保存草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 草稿信息 +/// - Returns: 是否保存成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(NSString *)content + __deprecated_msg("Use [RCChannelClient saveTextMessageDraft:targetId:channelId:content:completion:] instead"); + +/// 删除会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否删除成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearTextMessageDraft:targetId:channelId:completion:] instead"); + +#pragma mark - 未读消息数 - + +/// 获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// +/// - Returns: 所有的未读消息数(含免打扰会话未读数) +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getTotalUnreadCountWithChannelId:completion:] instead"); + +/// 获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰会话的未读数,YES 包含免打扰会话未读数 +/// +/// - Returns: 所有的未读消息数 +/// +/// - Remark: 会话 +/// - Since: 5.2.3 +- (int)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + containBlocked:(BOOL)isContain + __deprecated_msg("Use [RCChannelClient getTotalUnreadCountWithChannelId:containBlocked:completion:] instead"); + +/// 获取某个会话内的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该会话内的未读消息数 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadCount:targetId:channelId:completion:] instead"); + +/// 获取某个会话内的未读消息数 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter messageClassList: 消息类型数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该会话内的未读消息数 +/// +/// 此方法不支持聊天室和超级群的会话类型。 +/// +/// - Remark: 会话 +/// - Since: 5.1.5 +- (int)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadCount:messageClassList:channelId:completion:] instead"); + + +/// 获取某些类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰消息的未读数 +/// - Returns: 该类型的会话中所有的未读消息数 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getUnreadCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + containBlocked:(bool)isContain + __deprecated_msg("Use [RCChannelClient getUnreadCount:channelId:containBlocked:completion:] instead"); + +/// 获取某个类型的会话中所有未读的被 @ 的消息数 +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该类型的会话中所有未读的被 @ 的消息数 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getUnreadMentionedCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadMentionedCount:channelId:completion:] instead"); + +/// 清除某个会话中的未读消息数 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否清除成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearMessagesUnreadStatus:targetId:channelId:completion:] instead"); + +/// 清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳 +/// - Returns: 是否清除成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + __deprecated_msg("Use [RCChannelClient clearMessagesUnreadStatus:targetId:channelId:time:completion:] instead"); + +#pragma mark - 会话的消息提醒 - + +/// 设置会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isBlocked: 是否屏蔽消息提醒 +/// - Parameter successBlock: 设置成功的回调 [nStatus:会话设置的消息提醒状态] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如果您使用 IMLibCore,此方法会屏蔽该会话的远程推送; +/// 如果您使用 IMKit,此方法会屏蔽该会话的所有提醒(远程推送、本地通知、前台提示音),该接口不支持聊天室。 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (void)setConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isBlocked:(BOOL)isBlocked + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient " + "setConversationChannelNotificationLevel:targetId:channelId:level:success:error:] instead"); + +/// 获取本地消息免打扰会话列表 +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 消息免打扰会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getBlockedConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getBlockedConversationList:channelId:completion:] instead"); + +#pragma mark - 搜索 - + +/// 根据关键字搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter keyword: 关键字 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// +/// - Returns: 匹配的消息列表 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + __deprecated_msg( + "Use [RCChannelClient searchMessages:targetId:channelId:keyword:count:startTime:completion:] instead"); + +/// 根据时间,偏移量和个数搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 +/// - Parameter startTime: 查询 startTime 之后的消息,startTime >= 0,单位:毫秒 +/// - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime,单位:毫秒 +/// - Parameter offset: 查询的消息的偏移量,offset >= 0 +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(nullable NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + __deprecated_msg("Use [RCChannelClient " + "searchMessages:targetId:channelId:keyword:startTime:endTime:offset:limit:completion:] instead"); + +/// 按用户 ID 搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userId: 搜索用户 ID +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + __deprecated_msg( + "Use [RCChannelClient searchMessages:targetId:channelId:userId:count:startTime:completion:] instead"); + +/// 搜索指定会话中所有 channelId 的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + __deprecated_msg( + "Use [RCChannelClient searchMessagesForAllChannel:targetId:keyword:count:startTime:completion:] instead"); + +/// 分页搜索指定会话中所有 channelId 在指定时间范围内的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter startTime: 开始时间,单位:毫秒(传 0 表示不限时间) +/// - Parameter endTime: 结束时间,可传入当前 unix 时间,单位:毫秒 +/// - Parameter offset: 偏移量,默认填 0 +/// - Parameter limit: 最大的查询数量 +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + __deprecated_msg( + "Use [RCChannelClient searchMessagesForAllChannel:targetId:keyword:startTime:endTime:offset:limit:completion:] " + "instead"); + +/// 根据关键字搜索会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值) +/// - Parameter keyword: 关键字 +/// +/// - Returns: 匹配的会话搜索结果列表 +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *)searchConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + __deprecated_msg("Use [RCChannelClient searchConversations:targetId:messageType:keyword:completion:] instead"); + +/// 根据关键字搜索特定会话类型下所有 channelId 的会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值),不能为 nil +/// - Parameter keyword: 关键字,非空 +/// +/// - Returns: 匹配的会话搜索结果列表 +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// conversationTypeList 中类型个数不能超过 300,超过会被截断。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *) + searchConversationsForAllChannel:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + __deprecated_msg("Use [RCChannelClient searchConversationsForAllChannel:messageType:keyword:completion:] instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelClient.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelClient.h new file mode 100644 index 0000000..7eef543 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelClient.h @@ -0,0 +1,2134 @@ +// +// RCChannelClient.h +// RongIMLibCore +// +// Created by 张改红 on 2021/1/29. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationUnreadInfo, RCClearMessageOption; +@class RCNotificationQuietHoursSetting; + +/// 融云 ConversationChannel 核心类 +/// +/// 您需要通过 sharedChannelManager 方法,获取单例对象。 +@interface RCChannelClient : NSObject + +/// 获取核心类单例 +/// +/// - Returns: 核心单例类 +/// - Since: 5.1.1 ++ (instancetype)sharedChannelManager; + +#pragma mark 代理 + +/// 设置消息已读回执监听器 +/// +/// - Parameter delegate: RCChannelClient 消息已读回执监听器 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.1 +- (void)setChannelMessageReceiptDelegate:(nullable id)delegate; + + +/// 设置输入状态的监听器 +/// +/// - Parameter delegate: RCChannelClient 输入状态的的监听器 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.1 +- (void)setRCConversationChannelTypingStatusDelegate:(nullable id)delegate; + +/// 设置超级群输入状态的监听器 +/// +/// - Parameter delegate: RCChannelClient 输入状态的的监听器 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)setRCUltraGroupTypingStatusDelegate:(nullable id)delegate; + +/// 设置超级群已读时间回调监听器 +/// +/// - Parameter delegate: 超级群已读时间回调监听器 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)setRCUltraGroupReadTimeDelegate:(nullable id)delegate; + +/// 设置超级群消息处理监听器 +/// +/// - Parameter delegate: 超级群消息处理回调监听器 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)setRCUltraGroupMessageChangeDelegate:(nullable id)delegate; + +#pragma mark 消息发送 + +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用 IMLibCore 上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Warning: 使用此方法发送媒体消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用 IMLibCore 上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Warning: 使用此方法发送媒体消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + uploadPrepare:(nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter canIncludeExpansion: 是否支持扩展 +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位:毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [发送的消息实体] +/// +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Remark: 消息操作 +/// - Since: 5.3.1 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + canIncludeExpansion:(BOOL)canIncludeExpansion + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位:毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [插入的消息实体] +/// +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Note: 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存;可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + senderUserId:(NSString *)senderUserId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 [个数不能超过 300,超过会被截断] +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// 使用此方法发送定向消息,不会自动更新 UI。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +#pragma mark - 消息阅读回执 - + +/// 发送某个会话中消息阅读的回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 该会话中已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此接口只支持单聊,如果使用 IMLibCore 可以注册监听 +/// RCLibDispatchReadReceiptNotification 通知,使用 IMKit 直接设置 RCIM.h +/// 中的 enabledReadReceiptConversationTypeList。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)sendReadReceiptMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 发送阅读回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messageList: 已经阅读了的消息列表 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 当用户阅读了需要阅读回执的消息,可以通过此接口发送阅读回执,消息的发送方即可直接知道哪些人已经阅读。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)sendReadReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageList:(NSArray *)messageList + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 同步会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 已经阅读的最后一条消息的 Unix 时间戳,单位:毫秒 +/// - Parameter successBlock: 同步成功的回调 +/// - Parameter errorBlock: 同步失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)syncConversationReadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 上报超级群的已读时间 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 已读时间,传入最后一条消息的 sentTime,单位:毫秒 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)syncUltraGroupReadStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 同步服务端会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter timestamp: 已经阅读的最后一条消息的 Unix 时间戳 (毫秒) +/// - Parameter successBlock: 同步成功的回调 +/// - Parameter errorBlock: 同步失败的回调 [nErrorCode: 失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.12.3 +- (void)setReadTimestamp:(RCConversationIdentifier *)conversationIdentifier + timestamp:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorcode))errorBlock; +#pragma mark - 消息操作 + +/// 异步获取某个会话中指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,从指定消息之前、指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 oldestMessageId 对应那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 oldestMessageId 对应的那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter baseMessageId: 当前的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 baseMessageId 对应的那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNames: 消息内容的类型名称列表 +/// - Parameter sentTime: 当前的消息时间戳,单位:毫秒 +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 sentTime 对应的那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 在会话中异步搜索指定消息的前 beforeCount 数量和后 afterCount 数量的消息(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentTime: 消息的发送时间,单位:毫秒 +/// - Parameter beforeCount: 指定消息的前部分消息数量 +/// - Parameter afterCount: 指定消息的后部分消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + completion:(nullable void (^)(NSArray *_Nullable messages))completion; +/// 从服务器端清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter recordTime: 清除消息时间戳,单位:毫秒【0 <= recordTime <= 当前会话最后一条消息的 sentTime, 0 清除所有消息,其他值清除小于等于 recordTime 的消息】 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// +/// 此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 清除成功后只能获取该时间戳之后的历史消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)clearRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + recordTime:(long long)recordTime + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter recordTime: 清除消息时间戳,单位:毫秒【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 +/// 清除所有消息,其他值清除小于等于 recordTime 的消息】 +/// - Parameter clearRemote: 是否同时删除服务端消息 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [ status:清除失败的错误码] +/// +/// 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 并设置 clearRemote 为 YES +/// 清除消息,成功后只能获取该时间戳之后的历史消息。如果 clearRemote 传 NO, +/// 只会清除本地消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)clearHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + recordTime:(long long)recordTime + clearRemote:(BOOL)clearRemote + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + option:(RCRemoteHistoryMsgOption *)option + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取历史消息 +/// 获取指定会话的连续消息,会先从本地数据库获取指定数量消息,然后根据这些消息所在会话的连续 +/// 置信区间来判断,这些消息中间是否有断档遗漏(即本地存储消息与服务端存储不同步)如果本地数据库的消息有断档, +/// 会触发一次从服务端获取断档处的消息,然后跟本地消息合并再返回给调用者。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码],参数合法性检查不通过会直接回调 errorBlock +/// +/// - Note: 以下为单群聊场景下的详细说明: +/// +/// 产生消息断档的典型情况有: +/// 1. 超过消息离线存储最长时间未登录。例如默认离线消息的最长存储时间是 7 天,若用户连续 10 天未登录,当再次登录时, +/// 服务器只会推送最近 7 天的离线消息,那么更早的 3 天内的消息本地就没有,这段期间称为断档。 +/// 2. 客户启用了群组离线消息存储条数配置。例如配置群组离线消息存储条数为 100 条,若用户离线期间, +/// 该群离线消息超过 100 条,当再次登录时,服务器只会推送最后的 100 条消息,那么更早的消息本地也没有,这段期间称为断档。 +/// +/// 本地存储消息是否断档的判断逻辑: +/// 当连接成功后,服务器主动下发消息分为两种情况,一种是单条直发,一种是通知拉取(一般是会话消息量较大的情况)。还有一种 +/// 是客户端主动拉取消息。对于通知拉取和主动拉取,服务端返回结果中都带有连续置信区间的起始和终止时间戳,客户端会将这段时 +/// 间记录在本地数据库中,视为该会话的连续置信区间。如果用户一直在线情况下,收到单条直发消息,也会将当前消息的时间戳与本 +/// 地存储的该会话置信区间做拼接,视为连续置信区间。当用户调用此接口时,会根据用户传入的获取消息条数 count 来从本地数据库 +/// 中获取,如果获取的所有消息时间戳都在连续置信区间内,就视为无断档,可直接返回给用户。否则会以断档处时间戳为起点,向服 +/// 务端拉取历史消息,拉回来消息的同时,会更新该会话的连续置信区间,并将入库类型消息与本地数据库的消息合并,再返回给用户。 +/// +/// 结果回调中,messages 为本次拉取到的消息列表,timestamp 为下次拉取的起始时间戳,isRemaining 为服务器是否还有未拉取的消息。 +/// 分为以下几种情况: +/// 1. messages 数量等于 count。代表本次的调用已拉取到 count 条消息,且消息是连续的。用户可根据 isRemaining +/// 结果决定是否要继续拉取。 +/// 2. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 false。 +/// 代表本次调用已拉取到所有连续消息,且服务端也无更多消息可供拉取。 +/// 3. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 true。 +/// 代表本次调用只拉取到这么多连续消息,虽然尝试从服务端拉取断档处消息,但拉回来的都是不存储类型的消息。 +/// 同时服务端还有更多消息可供拉取,需要用户使用返回的 timestamp 继续拉取。 +/// +/// 以下情况需要注意: +/// 1. 调用此接口返回的消息,会在本地标记为连续消息。如果后面调用了删除消息相关接口从本地数据库删除了已连续的消息, +/// 会认为此处仍然连续无断档。下次再调用此接口时,不会从服务端拉取此处已删除的消息。 +/// 2. 当用户一直在线时,如果服务端通过 ServerAPI 将当前用户踢出某群,过一段时间再加回来。 +/// 如果服务端执行以上操作的同时什么都不做,客户端是无感知的。用户在被踢出群的这段时间内,此群消息接收不到, +/// 等加回来后又可以收之后的消息,但 SDK 会认为此间消息一直连续无断档,下次调用此接口时,不会从服务端拉取退群期间的消息。 +/// 如果想补偿这段时间消息,需要调用拉取该时段的远端消息接口。为避免执行上述操作时,客户端无感知, +/// 建议在服务端执行踢人操作前,同时发送一条小灰条消息通知被踢人,避免用户误解。 +/// +/// - Warning: +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。当本地没有更多消息的时候,会从服务器拉取 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// 在获取远端消息的时候,可能会拉到信令消息,信令消息会被 SDK 排除掉,导致 messages.count 小于 option.count,此时只要 isRemaining 为 YES,那么下次拉取消息的时候,请用 timestamp 当做 option.recordTime 再去拉取;如果 isRemaining 为 NO,则代表远端不再有消息了 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, long long timestamp, BOOL isRemaining, + RCErrorCode code))complete + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话中 @ 提醒自己的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 最多返回 10 条@提醒的消息 +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 未读的 @ 消息,取值范围 [1,100] +/// - Parameter desc: 是否是降序查 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 假如有 1000 条未读的 @ 消息,取 100 条未读 +/// desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 +/// desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 +/// +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// - Since: 5.3.0 + +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + desc:(BOOL)desc + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步根据会话 id 获取所有子频道的 @ 未读消息总数 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 回调会话内的未读消息数 +/// +/// - Remark: 超级群消息操作 +/// - Since: 5.3.0 +- (void)getUltraGroupUnreadMentionedCount:(NSString *)targetId completion:(nullable void (^)(int num))completion; + +/// 消息修改 +/// +/// - Parameter messageUId: 将被修改的消息 id +/// - Parameter newContent: 将被修改的消息内容 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法只能修改相同频道的同类型消息,仅能修改自己发送的消息 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (void)modifyUltraGroupMessage:(NSString *)messageUId + messageContent:(RCMessageContent *)newContent + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 更新超级群消息扩展信息 +/// +/// - Parameter messageUId: 消息 messageUId +/// - Parameter expansionDic: 要更新的消息扩展信息键值对 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)updateUltraGroupMessageExpansion:(NSString *)messageUId + expansionDic:(NSDictionary *)expansionDic + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除超级群消息扩展信息中特定的键值对 +/// +/// - Parameter messageUId: 消息 messageUId +/// - Parameter keyArray: 消息扩展信息中待删除的 key 的列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)removeUltraGroupMessageExpansion:(NSString *)messageUId + keyArray:(NSArray *)keyArray + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 撤回超级群消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter isDelete: 是否移除远端消息记录 +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID。isDelete:NO 时,该消息已经变更为新的消息 `RCRecallNotificationMessage`; isDelete:YES 时,该消息已经被删除] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// - Remark: 高级功能 +/// - Since: 5.2.3 +- (void)recallUltraGroupMessage:(RCMessage *)message + isDelete:(BOOL)isDelete + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取同一个超级群下的批量服务消息(含所有频道) +/// 获取成功后强制更新本地消息 +/// - Parameter messages: 消息列表 [最多 20 条,每个消息对象需包含 ConversationType,targetId,channelId, messageUid,sentTime] +/// - Parameter successBlock: 成功的回调 [matchedMsgList:成功的消息列表,notMatchMsgList:失败的消息列表] +/// - Parameter errorBlock: 失败的回调 [errorCode:错误码] +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)getBatchRemoteUltraGroupMessages:(NSArray *)messages + success:(nullable void (^)(NSArray *matchedMsgList, + NSArray *notMatchMsgList))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 批量获取本地消息,支持单聊、群聊、超级群、聊天室会话类型 +/// - Parameter conversationType: 会话类型 [非法报错:INVALID_PARAMETER_CONVERSATIONTYPE] +/// - Parameter targetId: 会话 ID[非法报错:INVALID_PARAMETER_TARGETID] +/// - Parameter channelId: 频道 ID(非超级群时传 nil)[非法报错:INVALID_PARAMETER_CHANNELID] +/// - Parameter messageUIDs: 消息 UID 列表 (最多 20 条)[数量大于 20 或为 0,类型不对:INVALID_PARAMETER_MESSAGELIST] +/// - Parameter successBlock: 成功的回调 [messages:成功的消息列表,mismatch:失败的消息 UID 列表] +/// - Parameter errorBlock: 失败的回调 [errorCode:错误码] +/// +/// mismatch 不为空,则代表本地没有对应的 message: +/// 1. messageUid 可能不是标准的 UID 字符串,本地无法匹配 +/// 2. 超级群默认只同步会话最后一条消息,可能本地找不到本地对应消息,可以先调用 getBatchRemoteUltraGroupMessages 从远端拉去一下 +/// 3. 聊天室退出之后,本地消息会被清空,调用该接口无法拿到本地消息 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getBatchLocalMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUIDs:(NSArray *)messageUIDs + success:(nullable void (^)(NSArray *messages, + NSArray *mismatch))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话里第一条未读消息。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [第一条未读消息的实体] +/// +/// - Remark: 消息操作 +/// 前提:超级群会话不接收离线消息。 +/// 用户在线接收的超级群未读消息已经保存到本地数据库,可以通过此接口获取到 +/// 用户离线的超级群未读消息,用户在线之后不收离线未读消息,通过此接口获取第一条未读消息为空 +/// - Since: 5.3.0 +- (void)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法删除数据库中该会话的消息记录,同时会整理压缩数据库,减少占用空间 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)deleteMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 批量删除某个会话中的指定远端消息(同时删除对应的本地消息) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 目标会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messages: 将被删除的消息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 一次批量操作仅支持删除属于同一个会话的消息,请确保消息列表中的所有消息来自同一会话 +/// 一次最多删除 100 条消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)deleteRemoteMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除指定超级群、所有 channel、指定时间之前的本地消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)deleteUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp + completion:(nullable void (^)(BOOL result))completion; + +/// 异步删除指定超级群、指定 channel、指定时间之前的本地消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)deleteUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + completion:(nullable void (^)(BOOL result))completion; +/// 删除指定 channel、指定时间之前的服务端消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (void)deleteRemoteUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步批量删除指定会话早于(含)发送时间的所有本地数据库消息 +/// +/// - Parameter clearMessageOptions: [RCClearMessageOption], 最大数量为 20 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 此方法删除数据库中会话早于(含)发送时间的消息记录,时间戳传 0 清除所有消息 +/// 支持的会话类型:单聊,群聊,聊天室,系统消息 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)clearMessages:(NSArray *)clearMessageOptions + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步批量删除服务端指定会话早于(含)发送时间的所有远端消息(可以删除对应的本地消息) +/// +/// - Parameter clearMessageOptions: [RCClearMessageOption], 最大数量为 20 +/// - Parameter isDeleteLocal: 是否删除对应的本地消息 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 时间戳传 0 清除所有消息 +/// 支持的会话类型:单聊,群聊,聊天室,系统消息 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)clearRemoteMessages:(NSArray *)clearMessageOptions + isDeleteLocal:(BOOL)isDeleteLocal + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +#pragma mark - 会话列表操作 + +/// 异步获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: +/// 分页拉取会话列表,否则有可能造成内存过大。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步分页获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳,单位:毫秒(获取这个时间戳之前的会话列表,0 表示从最新开始获取) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步分页获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳,单位:毫秒(获取这个时间戳之前的会话列表,0 表示从最新开始获取) +/// - Parameter topPriority: 查询结果的排序方式,是否置顶优先,传 true 表示置顶会话优先返回,否则结果只以会话时间排序 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.6.6 +- (void)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + count:(int)count + startTime:(long long)startTime + topPriority:(BOOL)topPriority + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取会话列表。 +/// - Parameters: +/// - filters: 会话过滤参数。 +/// - option: 参数配置。 +/// - completion: 结果回调。 +/// +/// - Since: 5.20.0 +- (void)getConversationListByFilters:(NSArray *)filters + option:(nullable RCConversationListOption *)option + completion:(RCConversationListCompletion)completion; + +/// 异步获取本地特定会话下所有频道的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationListForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion: + (nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 分页异步获取本地特定会话类型下所有 channel 的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// - Parameter conversationTypeList: 会话类型数组 +/// - Parameter count: 会话个数 +/// - Parameter startTime: 开始时间,首次可传入 0,单位:毫秒 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// - Since: 5.3.0 +- (void)getConversationListForAllChannel:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + completion: + (nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取本地所有含 ChannelId 会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Warning: 当会话数量多的时候,会有性能问题,所以建议在非主线程调用该接口 +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationListForAllChannel:(NSArray *)conversationTypeList + completion: + (nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取本地单个会话数据 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [会话的对象] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(RCConversation *_Nullable conversation))completion; + +/// 异步获取本地会话中的消息数量 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [会话中的消息数量,-1 表示获取消息数量出错] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步删除本地指定类型的会话 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// 此方法会从本地存储中删除该会话,同时删除会话中的消息。 +/// 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步删除本地和服务的会话 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// 此方法会同时删除本地和服务的会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// - Warning: 如果服务的会话删除失败,本地的会话依然会被删除。SDK 在未连接的情况下,删除服务会话会失败 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion + NS_SWIFT_NAME(removeConversation(_:targetId:channelId:completion:)); + +/// 异步批量删除会话列表 +/// +/// - Parameter conversationIdentifiers: [RCConversationIdentifier], 最大数量为 20 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 不删除会话内的消息,如果会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// 支持的会话类型:单聊,群聊,系统消息 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)removeConversations:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除远端会话 + +/// - Parameter conversationIdentifiers [RCConversationIdentifier], 最大数量为 20 +/// - Parameter successBlock 删除成功的回调 +/// - Parameter errorBlock 删除失败的回调 [status:删除失败的错误码] +/// +/// - Remark: 会话 +/// - Since:5.12.3 +- (void)removeRemoteConversations:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isTop: 是否置顶 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isTop:(BOOL)isTop + completion:(nullable void (^)(BOOL result))completion; + +/// 异步批量设置会话的置顶状态 +/// +/// - Parameter conversationIdentifiers: [RCConversationIdentifier], 最大数量为 20 +/// - Parameter isTop: 是否置顶(置顶:YES,取消置顶:NO) +/// - Parameter needCreate: 在没有会话时,是否创建会话 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)setConversationsToTop:(NSArray *)conversationIdentifiers + isTop:(BOOL)isTop + needCreate:(BOOL)needCreate + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isTop: 是否置顶 +/// - Parameter needUpdateTime: 是否更新时间 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isTop:(BOOL)isTop + needUpdateTime:(BOOL)needUpdateTime + completion:(nullable void (^)(BOOL result))completion; + +/// 异步获取本地会话的置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否置顶] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步获取本地置顶的会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [置顶的会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getTopConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; +#pragma mark 会话中的草稿操作 + +/// 异步获取会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该会话中的草稿] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSString *_Nullable content))completion; + +/// 异步保存草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 草稿信息 +/// - Parameter completion: 异步回调 [是否保存成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(NSString *)content + completion:(nullable void (^)(BOOL result))completion; + +/// 异步删除会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +#pragma mark 未读消息数 + +/// 异步获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [所有的未读消息数(含免打扰会话未读数)] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰会话的未读数,YES 包含免打扰会话未读数 +/// - Parameter completion: 异步回调 [所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + containBlocked:(BOOL)isContain + completion:(nullable void (^)(int num))completion; + +/// 异步获取某个会话内的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步获取某个会话内的未读消息数 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter messageClassList: 消息类型数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// 此方法不支持聊天室和超级群的会话类型。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步获取某些类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰消息的未读数 +/// - Parameter completion: 异步回调 [该类型的会话中所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + containBlocked:(bool)isContain + completion:(nullable void (^)(int num))completion; + +/// 异步获取某个类型的会话中所有未读的被 @ 的消息数 +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该类型的会话中所有未读的被 @ 的消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadMentionedCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步清除某个会话中的未读消息数 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + completion:(nullable void (^)(BOOL result))completion; + +#pragma mark - 会话的消息提醒 + +/// 设置会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如果您需要移除消息通知,level 参数传入 RCPushNotificationLevelDefault 即可 +/// 注:超级群通过该接口对具体频道进行免打扰设置 +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setConversationChannelNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 查询会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型(不支持聊天室,聊天室是不接受会话消息提醒的) +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter successBlock: 查询成功的回调 [nStatus:会话设置的消息提醒状态] +/// - Parameter errorBlock: 查询失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (void)getConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; +/// 查询消息通知级别 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 查询失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getConversationChannelNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取本地消息免打扰会话列表 +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [消息免打扰会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getBlockedConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; +/// 设置超级群的默认消息状态 +/// +/// 一般由管理员设置的接口,针对超级群的所有群成员生效,针对超级群下所有频道生效,优先级较低。 +/// 如果群成员自己超级群的免打扰级别,那么以群成员自己设置的为准。 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter level: 等级 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Since: 5.2.2 +- (void)setUltraGroupConversationDefaultNotificationLevel:(NSString *)targetId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; +/// 获取超级群的默认消息状态 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getUltraGroupConversationDefaultNotificationLevel:(NSString *)targetId + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +#pragma mark - 输入状态提醒 + +/// 向会话中发送正在输入的状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectName: 正在输入的消息的类型名 +/// +/// contentType 为用户当前正在编辑的消息类型名,即 RCMessageContent 中 getObjectName 的返回值。 +/// 如文本消息,应该传类型名"RC:TxtMsg"。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)sendTypingStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + contentType:(NSString *)objectName; + +/// 向超级群会话中发送正在输入的状态 +/// +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的频道 id +/// - Parameter status: 输入状态类型 +/// +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)sendUltraGroupTypingStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + typingStatus:(RCUltraGroupTypingStatus)status + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; +#pragma mark - 搜索 + +/// 根据关键字异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter keyword: 关键字 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据时间,偏移量和个数异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 +/// - Parameter startTime: 查询 startTime 之后的消息,startTime >= 0,单位:毫秒 +/// - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime,单位:毫秒 +/// - Parameter offset: 查询的消息的偏移量,offset >= 0 +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(nullable NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 按用户 ID 异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userId: 搜索用户 ID +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步搜索指定会话中所有 channelId 的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 分页异步搜索指定会话中所有 channelId 在指定时间范围内的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter startTime: 开始时间,单位:毫秒(传 0 表示不限时间) +/// - Parameter endTime: 结束时间,可传入当前 unix 时间,,单位:毫秒 +/// - Parameter offset: 偏移量,默认填 0 +/// - Parameter limit: 最大的查询数量 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据关键字搜索指定超级群下多个频道的本地历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter channelIds: 频道列表,支持一次查询多个频道,必须满足 `0 < 频道个数 <= 50` +/// SDK 会过滤掉数组中的空字符串,如果 channelId 不合法(非字符串类型或长度超过 20 为不合法) +/// 或 频道个数不满足条件,errorBlock 会返回错误码 `INVALID_PARAMETER_CHANNELID` +/// - Parameter keyword: 查询内容关键字 +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索) +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter successBlock: [messages] 满足条件的消息列表,按时间倒序排序 +/// - Parameter errorBlock: [errorCode] 错误码 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.2 +- (void)searchMessagesForChannels:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelIds:(NSArray *)channelIds + keyword:(NSString *)keyword + startTime:(long long)startTime + limit:(int)limit + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据发送者用户 ID 搜索指定超级群下多个频道的本地历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter channelIds: 频道列表,支持一次查询多个频道,必须满足 `0 < 频道个数 <= 50` +/// SDK 会过滤掉数组中的空字符串,如果 channelId 不合法(非字符串类型或长度超过 20 为不合法) +/// 或 频道个数不满足条件,errorBlock 会返回错误码 `INVALID_PARAMETER_CHANNELID` +/// - Parameter userId: 消息发送者用户 ID +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索) +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter successBlock: [messages] 满足条件的消息列表,按时间倒序排序 +/// - Parameter errorBlock: [errorCode] 错误码 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.2 +- (void)searchMessagesByUserForChannels:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelIds:(NSArray *)channelIds + userId:(NSString *)userId + startTime:(long long)startTime + limit:(int)limit + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据发送者用户 ID 搜索指定超级群下所有频道的本地历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter userId: 消息发送者用户 ID +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索) +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter successBlock: [messages] 满足条件的消息列表,按时间倒序排序 +/// - Parameter errorBlock: [errorCode] 错误码 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.2 +- (void)searchMessagesByUserForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + userId:(NSString *)userId + startTime:(long long)startTime + limit:(int)limit + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据关键字异步搜索会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值) +/// - Parameter keyword: 关键字 +/// - Parameter completion: 异步回调 [匹配的会话搜索结果列表] +/// +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + completion:(nullable void (^)(NSArray *_Nullable results))completion; + +/// 根据关键字异步搜索特定会话类型下所有 channelId 的会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值),不能为 nil +/// - Parameter keyword: 关键字,非空 +/// - Parameter completion: 异步回调 [匹配的会话搜索结果列表] +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchConversationsForAllChannel:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + completion:(nullable void (^)(NSArray *_Nullable results)) + completion; + +#pragma mark - 消息状态 + + +/// 设置超级群频道的默认消息状态 +/// 一般由管理员设置的的接口,针对超级群的所有群成员生效,仅针对设置的频道生效,优先级较低。如果群成员自己设置超级群的免打扰级别,那么以群成员自己设置的为准。 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setUltraGroupConversationChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 获取超级群频道的默认消息状态 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getUltraGroupConversationChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCPushNotificationLevel level)) + successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 屏蔽某个时间段的消息提醒 +/// +/// - Parameter startTime: 开始消息免打扰时间,格式为 HH:MM:SS +/// - Parameter spanMins: 需要消息免打扰分钟数,0 < spanMins < 1440 +/// (比如,您设置的起始时间是 00:00,结束时间为 01:00,则 spanMins 为 60 分钟。设置为 1439 代表全天免打扰(23 * 60 + 59 = 1439)) +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 屏蔽成功的回调 +/// - Parameter errorBlock: 屏蔽失败的回调 [status:屏蔽失败的错误码] +/// +/// 此方法设置的屏蔽时间会在每天该时间段时生效。 +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setNotificationQuietHoursLevel:(NSString *)startTime + spanMins:(int)spanMins + level:(RCPushNotificationQuietHoursLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 屏蔽某个时间段的消息提醒 +/// +/// - Parameter setting: 消息免打扰配置 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status:屏蔽失败的错误码] +/// +/// 此方法设置的屏蔽时间会在每天该时间段时生效。 +/// +/// - Remark: 会话 +/// - Since: 5.14.0 +- (void)setNotificationQuietHoursWithSetting:(RCNotificationQuietHoursSetting *)setting + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 查询已设置的时间段消息提醒屏蔽 +/// +/// - Parameter successBlock: 屏蔽成功的回调 [startTime:已设置的屏蔽开始时间, +/// spanMins:已设置的屏蔽时间分钟数,0 < spanMins < 1440],level:消息通知级别 +/// - Parameter errorBlock: 查询失败的回调 [status:查询失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getNotificationQuietHoursLevel:(nullable void (^)(NSString *startTime, int spanMins, + RCPushNotificationQuietHoursLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 查询已设置的消息提醒屏蔽信息 +/// +/// - Parameter successBlock: 查询成功的回调。 +/// - Parameter errorBlock: 查询失败的回调。 +/// +/// - Remark: 会话 +/// - Since: 5.14.0 +- (void)getNotificationQuietHoursSetting:(nullable void (^)(RCNotificationQuietHoursSetting *setting))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如要移除消息提醒状态,设置 level 为 RCPushNotificationLevelDefault +/// 注:超级群调用该接口,相当于设置了 channelId 为 空 的频道的免打扰,不会屏蔽整个超级群会话下所有频道的免打扰 +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setConversationNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步批量设置会话的消息提醒状态 +/// +/// - Parameter conversationIdentifiers: [RCConversationIdentifier], 最大数量为 20 +/// - Parameter level: RCPushNotificationLevel +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 如要移除消息提醒状态,设置 level 为 RCPushNotificationLevelDefault +/// 不支持聊天室 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)setConversationsNotificationLevel:(NSArray *)conversationIdentifiers + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getConversationNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 设置会话类型的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如要移除消息提醒状态,设置 level 为 RCPushNotificationLevelDefault +/// +/// - Remark: 会话 +/// - Since: 5.2.3 + +- (void)setConversationTypeNotificationLevel:(RCConversationType)conversationType + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 获取会话类型的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.3 + +- (void)getConversationTypeNotificationLevel:(RCConversationType)conversationType + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除已设置的全局时间段消息提醒屏蔽 +/// +/// - Parameter successBlock: 删除屏蔽成功的回调 +/// - Parameter errorBlock: 删除屏蔽失败的回调 [status:失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)removeNotificationQuietHours:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark-- 超级群 + +/// 拉取超级群列表后回调功能 +/// +/// - Parameter delegate: 代理 +/// +/// 超级群会话同步状态监听,要在初始化之后,连接之前设置代理 +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 + +- (void)setUltraGroupConversationDelegate:(id)delegate; + +/// 超级群频道信息回调功能 +/// +/// - Parameter delegate: 代理 +/// +/// - Remark: 超级群频道操作 +/// - Since: 5.2.4 + +- (void)setUltraGroupChannelDelegate:(id)delegate; + + +/// 获取指定超级群下所有频道的未读消息总数 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 +- (void)getUltraGroupUnreadCount:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取超级群会话类型的所有未读消息数 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 +- (void)getUltraGroupAllUnreadCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取超级群会话类型的 @ 消息未读数接口 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 +- (void)getUltraGroupAllUnreadMentionedCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取某个超级群指定 channel 列表,某段时间范围内的消息数量 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelIds: 频道列表,支持一次查询多个频道,如果为空,则返回全部 channel id 的消息数量 +/// - Parameter startTime 查询 startTime 之后的消息,startTime >= 0 +/// - Parameter endTime 查询 endTime 之前的消息,endTime > startTime +/// - Parameter success 异步回调 [会话中的消息数量] +/// - Parameter error 错误回调 [错误码] +/// +/// - Remark: 超级群消息操作 +/// - Since: 5.6.4 +- (void)getUltraGroupMessageCountByTimeRange:(NSString *)targetId + channelIds:(NSArray *)channelIds + startTime:(long long)startTime + endTime:(long long)endTime + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 可以获取本地指定超级群下公有频道或者私有频道的列表 +/// - Parameter targetId: 会话 ID +/// - Parameter channelType: 频道类型 +/// - Parameter successBlock: 获取成功的回调 [会话列表] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.4 +- (void)getUltraGroupChannelList:(NSString *)targetId + channelType:(RCUltraGroupChannelType)channelType + success:(nullable void (^)(NSArray *list))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 根据超级群会话 id 数组获取对应的会话对象数组 +/// +/// - Parameter targetIds: 会话 id 数组,最多 20 个 +/// - Parameter successBlock: 成功回调 [会话未读信息数组] +/// - Parameter errorBlock: 失败回调 [失败错误码] +/// +/// - Remark: 超级群会话 +/// - Since: 5.4.6 +- (void)getUltraGroupConversationUnreadInfoList:(nonnull NSArray *)targetIds + success: + (nonnull void (^)(NSArray *list))successBlock + error:(nonnull void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 未读数 + +/// 获取会话未读消息数 (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter conversationTypes: 会话类型数组:[单聊、群聊、超级群、系统会话] +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 单聊、群聊、超级群消息操作 +/// - Since: 5.2.5 +- (void)getUnreadCount:(nonnull NSArray *)conversationTypes + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取会话未读 @消息数 (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter conversationTypes: 会话类型数组:[群聊、超级群] +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 群聊、超级群消息操作 +/// - Since: 5.2.5 +- (void)getUnreadMentionedCount:(nonnull NSArray *)conversationTypes + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取指定超级群会话的未读消息数(包括所有频道) (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter targetId: 超级群会话 ID +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.5 +- (void)getUltraGroupUnreadCount:(nonnull NSString *)targetId + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 获取指定超级群会话的未读@消息数(包括所有频道) (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter targetId: 超级群会话 ID +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.5 +- (void)getUltraGroupUnreadMentionedCount:(nonnull NSString *)targetId + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取超级群会话类型未读的 @ 消息摘要列表接口 (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sendTime: 消息发送的时间 [毫秒,0 代表从第一条开始查询] +/// - Parameter count: 查询数量 [1 - 50], 超过范围上报 INVALID_PARAMETER_COUNT 错误码 +/// - Parameter successBlock: 获取成功的回调 [消息摘要列表] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.5 +- (void)getUltraGroupUnreadMentionedDigests:(nonnull NSString *)targetId + channelId:(nullable NSString *)channelId + sendTime:(long long)sendTime + count:(NSInteger)count + success:(nullable void (^)(NSArray *digests))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 用户组 + +/// 设置用户组信息回调代理 +/// +/// - Parameter delegate: 代理 +/// +/// - Remark: 用户组信息操作 +/// +/// - Since: 5.4.0 +- (void)setUserGroupStatusDelegate:(nullable id)delegate; + + +#pragma mark - 已读回执V4 + + +/// 获取某条消息的已读回执信息 +/// - Parameters: +/// - targetId: 会话 ID +/// - channelId: 业务 ID +/// - messageUID: 消息 uid +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 + +- (void)getMessageReadReceiptV4:(nonnull NSString *)targetId + channelId:(nullable NSString *)channelId + messageUID:(nonnull NSString *)messageUID + successBlock:(nullable void (^)(NSInteger readCount, NSInteger totalCount, + NSArray *list))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 发送消息的已读回执,会将区间内的消息在服务端全部添加已读状态,本地不进行处理。需要 lib 自己调用清除未读等相关接口处理其他业务。 +/// - Parameters: +/// - conversationType: 会话类型 +/// - targetId: 会话 ID +/// - channelId: 业务 ID +/// - startMessageUID: 开始的消息 UID +/// - endMessageUID: 结束的消息 UID +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 +- (void)sendReadReceiptMessageV4:(RCConversationType)conversationType + targetId:(nonnull NSString *)targetId + channelId:(nullable NSString *)channelId + startMessageUID:(nullable NSString *)startMessageUID + endMessageUID:(nonnull NSString *)endMessageUID + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelIdentifier.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelIdentifier.h new file mode 100644 index 0000000..d4cb73d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCChannelIdentifier.h @@ -0,0 +1,19 @@ +// +// RCChannelIdentifier.h +// RongIMLibCore +// +// Created by RobinCui on 2023/1/3. +// Copyright © 2023 RongCloud. All rights reserved. +// + +//#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.4.0 +@interface RCChannelIdentifier : RCConversationIdentifier + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCClearConversationOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCClearConversationOption.h new file mode 100644 index 0000000..bdc9e9d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCClearConversationOption.h @@ -0,0 +1,20 @@ +// +// RCClearConversationOption.h +// RongIMLibCore +// +// Created by 孙浩 on 2021/8/23. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCClearConversationOption : NSObject + +/// 是否清除本地历史消息 +@property (nonatomic, assign) BOOL isDeleteMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCClearMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCClearMessageOption.h new file mode 100644 index 0000000..a50b2a1 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCClearMessageOption.h @@ -0,0 +1,28 @@ +// +// RCClearMessageOption.h +// RongIMLibCore +// +// Created by chinaspx on 2023/9/18. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.6.7 +@interface RCClearMessageOption : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType type; +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; +/// channel ID +@property (nonatomic, copy) NSString *channelId; +/// timestamp 时间戳(毫秒) +@property (nonatomic, assign) long long timestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCombineMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCombineMessage.h new file mode 100644 index 0000000..ea90492 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCombineMessage.h @@ -0,0 +1,51 @@ +// +// RCCombineMessage.h +// RongIMLib +// +// Created by liyan on 2019/8/13. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 合并转发消息的类型名 +#define RCCombineMessageTypeIdentifier @"RC:CombineMsg" + + +/// 合并转发消息类 +/// +/// 合并转发消息,此消息会进行存储并计入未读消息数。 +/// +/// 该消息不支持超级群的会话类型。 +/// +/// - Remark: 内容类消息 +@interface RCCombineMessage : RCMediaMessageContent + +/// 转发的消息展示的缩略内容列表 (格式是发送者:缩略内容) +@property (nonatomic, strong) NSArray *summaryList; + +/// 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称) +@property (nonatomic, strong) NSArray *nameList; + +/// 转发的消息会话类型(目前仅支持单聊和群聊) +@property (nonatomic, assign) RCConversationType conversationType; + + +/// 初始化 RCCombineMessage 消息 +/// +/// - Parameter summaryList: 转发的消息展示的缩略内容列表 +/// - Parameter nameList: 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称) +/// - Parameter conversationType: 转发的消息会话类型 +/// - Parameter content: 转发的内容 +/// +/// - Returns: 消息对象 ++ (instancetype)messageWithSummaryList:(NSArray *)summaryList + nameList:(NSArray *)nameList + conversationType:(RCConversationType)conversationType + content:(NSString *)content; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCombineV2Message.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCombineV2Message.h new file mode 100644 index 0000000..731f85e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCombineV2Message.h @@ -0,0 +1,62 @@ +// +// RCCombineV2Message.h +// GlobalIMUIKit +// +// Created by zgh on 2023/11/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 合并转发消息的类型名 +#define RCCombineV2MessageTypeIdentifier @"RC:CombineV2Msg" + +@interface RCCombineV2Message : RCMediaMessageContent + +/// 转发的消息会话类型(目前仅支持单聊和群聊)。 +@property (nonatomic, assign, readonly) RCConversationType conversationType; + +/// 转发的消息展示的缩略内容列表 (格式是发送者:缩略内容)。 +@property (nonatomic, readonly) NSArray *summaryList; + +/// 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称)。 +@property (nonatomic, readonly) NSArray *nameList; + +/// 被转发的消息条数。 +@property (nonatomic, assign, readonly) NSUInteger msgNum; + +/// 消息列表。当被转发的消息长度之和小于等于 12K 时才会有此字段,此时不会有 JsonMsgKey 字段。 +/// [ +/// { +/// "fromUserId":"uid_A", +/// "targetId":"group1", +/// "timestamp":1693382006578, +/// "objectName":"RC:TxtMsg", +/// "content":{ +/// "content":"大家觉得这个怎么样?" +/// } +/// } +/// ] +@property (nonatomic, readonly, nullable) NSArray> *> *msgList; + +/// 合并转发的消息列表 Key。当被转发的消息长度之和大于 12K 时才会有此字段,此时不会有 msgList 字段。 +@property (nonatomic, readonly, nullable) NSString *jsonMsgKey; + + +/// 初始化 RCCombineV2Message 消息 +/// +/// - Parameter summaryList: 转发的消息展示的缩略内容列表 +/// - Parameter nameList: 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称) +/// - Parameter conversationType: 转发的消息会话类型 +/// - Parameter msgList: 转发的消息体列表 +/// +/// - Returns: 消息实例对象 ++ (instancetype)messageWithSummaryList:(NSArray *)summaryList + nameList:(NSArray *)nameList + conversationType:(RCConversationType)conversationType + messages:(NSArray *)messages; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCommandMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCommandMessage.h new file mode 100644 index 0000000..2bdaf01 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCommandMessage.h @@ -0,0 +1,41 @@ +// +// RCCommandMessage.h +// RongIMLib +// +// Created by 张改红 on 15/12/2. +// Copyright © 2015 年 RongCloud. All rights reserved. +// +#import + +/// 命令消息的类型名 +#define RCCommandMessageIdentifier @"RC:CmdMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 命令消息类 +/// +/// 命令消息类,此消息不存储不计入未读消息数。 +/// 与 RCCommandNotificationMessage 的区别是,此消息不存储,也不会在界面上显示。 +/// +/// - Remark: 通知类消息 +@interface RCCommandMessage : RCMessageContent + +/// 命令的名称 +@property (nonatomic, copy) NSString *name; + +/// 命令的扩展数据 +/// +/// 命令的扩展数据,可以为任意字符串,如存放您定义的 json 数据。 +@property (nonatomic, copy, nullable) NSString *data; + +/// 初始化命令消息 +/// +/// - Parameter name: 命令的名称 +/// - Parameter data: 命令的扩展数据 +/// +/// - Returns: 命令消息对象 ++ (instancetype)messageWithName:(NSString *)name data:(nullable NSString *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCommandNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCommandNotificationMessage.h new file mode 100644 index 0000000..cf68e37 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCommandNotificationMessage.h @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCCommandNotificationMessage.h +// Created by xugang on 14/11/28. + +#import + +/// 命令提醒消息的类型名 +#define RCCommandNotificationMessageIdentifier @"RC:CmdNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 命令提醒消息类 +/// +/// 此消息会进行存储,但不计入未读消息数。 +/// 与 RCCommandMessage 的区别是,此消息会进行存储并在界面上显示。 +/// +/// - Remark: 通知类消息 +@interface RCCommandNotificationMessage : RCMessageContent + +/// 命令提醒的名称 +@property (nonatomic, copy) NSString *name; + +/// 命令提醒消息的扩展数据 +/// +/// 命令提醒消息的扩展数据,可以为任意字符串,如存放您定义的 json 数据。 +@property (nonatomic, copy, nullable) NSString *data; + +/// 初始化命令提醒消息 +/// +/// - Parameter name: 命令的名称 +/// - Parameter data: 命令的扩展数据 +/// +/// - Returns: 命令提醒消息对象 ++ (instancetype)notificationWithName:(NSString *)name data:(nullable NSString *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCContactNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCContactNotificationMessage.h new file mode 100644 index 0000000..72c0b0a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCContactNotificationMessage.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCContactNotificationMessage.h +// Created by xugang on 14/11/28. + +#import + +/// 好友请求消息的类型名 +#define RCContactNotificationMessageIdentifier @"RC:ContactNtf" + +/// 请求添加好友 +#define ContactNotificationMessage_ContactOperationRequest @"Request" + +/// 同意添加好友的请求 +#define ContactNotificationMessage_ContactOperationAcceptResponse @"AcceptResponse" + +/// 拒绝添加好友的请求 +#define ContactNotificationMessage_ContactOperationRejectResponse @"RejectResponse" + +NS_ASSUME_NONNULL_BEGIN + +/// 好友请求消息类 +/// +/// 好友请求消息类,此消息会进行存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCContactNotificationMessage : RCMessageContent + +/// 好友请求的当前操作名 +/// +/// 好友请求当前的操作名称,您可以使用预定义好的操作名,也可以是您自己定义的任何操作名。 +/// 预定义的操作名:ContactNotificationMessage_ContactOperationRequest、ContactNotificationMessage_ContactOperationAcceptResponse、ContactNotificationMessage_ContactOperationRejectResponse。 +@property (nonatomic, copy) NSString *operation; + +/// 当前操作发起用户的用户 ID +@property (nonatomic, copy) NSString *sourceUserId; + +/// 当前操作目标用户的用户 ID +@property (nonatomic, copy) NSString *targetUserId; + +/// 当前操作的消息内容 +/// +/// 当前操作的消息内容,如同意、拒绝的理由等。 +@property (nonatomic, copy) NSString *message; + +/// 初始化好友请求消息 +/// +/// - Parameter operation: 好友请求当前的操作名 +/// - Parameter sourceUserId: 当前操作发起用户的用户 ID +/// - Parameter targetUserId: 当前操作目标用户的用户 ID +/// - Parameter message: 当前操作的消息内容 +/// - Parameter extra: 当前操作的附加信息 +/// - Returns: 好友请求消息对象 +/// +/// 融云不介入您的好友关系,所有的好友关系都由您的服务器自己维护。 +/// 所以好友请求的操作名和消息内容、扩展信息您均可以自己定制,只要您发送方和接收方针对具体字段内容做好 UI 显示即可。 ++ (instancetype)notificationWithOperation:(NSString *)operation + sourceUserId:(NSString *)sourceUserId + targetUserId:(NSString *)targetUserId + message:(NSString *)message + extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversation.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversation.h new file mode 100644 index 0000000..26d5711 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversation.h @@ -0,0 +1,186 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCConversation.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptInfo, RCGroupReadReceiptInfoV2, RCMessageConfig; +@class RCReceivedStatusInfo, RCMessage; +@class RCEditedMessageDraft; + +/// 会话类,包含会话的所有属性。 +@interface RCConversation : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 该会话的业务标识,长度限制 20 字符 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 会话的标题 +@property (nonatomic, copy, nullable) NSString *conversationTitle; + +/// 会话中的未读消息数量 +@property (nonatomic, assign) int unreadMessageCount; + +/// 是否置顶,默认值为 NO +/// 如果设置了置顶,在 IMKit 的 RCConversationListViewController 中会将此会话置顶显示。 +@property (nonatomic, assign) BOOL isTop; + +/// 当前会话在此 tag 下的置顶状态。 +/// 仅在通过 tag 获取会话时 getConversationsFromTagByPage,此字段有效。 +@property (nonatomic, assign) BOOL isTopForTag; + +/// 会话中最后一条消息的接收状态 +@property (nonatomic, assign) RCReceivedStatus receivedStatus __deprecated_msg("Use receivedStatusInfo instead"); + +/// 会话中最后一条消息的接收状态类 (针对接收的消息生效) +/// - Since: 5.6.8 +@property (nonatomic, strong, nullable) RCReceivedStatusInfo *receivedStatusInfo; + +/// 会话中最后一条消息的发送状态 +@property (nonatomic, assign) RCSentStatus sentStatus; + +/// 会话中最后一条消息的接收时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long receivedTime; + +/// 会话中最后一条消息的发送时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long sentTime; + +/// 会话的操作时间(Unix 时间戳、毫秒),用于分页获取会话列表时传入的时间戳 +/// 初始值与 sentTime 相同,置顶等操作会更新此时间戳 +/// - Since: 5.6.7 +@property (nonatomic, assign) long long operationTime; + +/// 会话中存在的草稿 +@property (nonatomic, copy, nullable) NSString *draft; + +/// 会话中最后一条消息的类型名 +@property (nonatomic, copy, nullable) NSString *objectName; + +/// 会话中最后一条消息的发送者用户 ID +@property (nonatomic, copy, nullable) NSString *senderUserId; + +/// 会话中最后一条消息的消息 ID +@property (nonatomic, assign) long latestMessageId; + +/// 会话中最后一条消息的内容 +@property (nonatomic, strong, nullable) RCMessageContent *latestMessage; + +/// 会话中最后一条的完整消息体 +@property (nonatomic, strong, readonly, nullable) RCMessage *latestRCMessage; + +/// 会话中最后一条消息的方向 +@property (nonatomic, assign) RCMessageDirection latestMessageDirection; + +/// 会话中最后一条消息的 json Dictionary +/// +/// 此字段存放最后一条消息内容中未编码的 json 数据。 +/// SDK 内置的消息,如果消息解码失败,默认会将消息的内容存放到此字段;如果编码和解码正常,此字段会置为 nil。 +@property (nonatomic, strong, nullable) NSDictionary *jsonDict; + +/// 最后一条消息的全局唯一 ID +/// +/// 服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, copy, nullable) NSString *latestMessageUId; + +/// 会话中是否存在被 @ 的消息 +/// +/// 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此状态置成 NO。 +@property (nonatomic, assign, readonly) BOOL hasUnreadMentioned; + +/// 会话中 @ 消息的总个数(包含 @ 我的个数和 @ 所有人的个数) +/// +/// 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此值置成 0。 +@property (nonatomic, assign) int mentionedCount; + +/// 超级群会话中 @ 我的消息的个数 +/// +/// 只有超级群获取频道列表时有效 +/// 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此值置成 0。 +@property (nonatomic, assign) int mentionedMeCount; + +/// 会话是否是免打扰状态 +@property (nonatomic, assign) RCConversationNotificationStatus blockStatus; + +/// 最后一条消息的阅读回执状态 +@property (nonatomic, strong, nullable) RCReadReceiptInfo *latestMessageReadReceiptInfo; + +/// 最后一条消息的群阅读回执状态 +/// +/// 如果是调用 RCGroupReadReceiptV2Manager 中方法实现群已读回执功能,此参数才有效,否则请使用 readReceiptInfo 属性获取阅读回执状态 +/// 如果使用 IMKit,请用 readReceiptInfo 属性 +@property (nonatomic, strong, nullable) RCGroupReadReceiptInfoV2 *latestMessageGroupReadReceiptInfoV2; + +/// 最后一条消息的消息配置 +@property (nonatomic, strong, nullable) RCMessageConfig *latestMessageMessageConfig; + +/// 最后一条消息是否可以包含扩展信息 +/// +/// 该属性在消息发送时确定,发送之后不能再做修改 +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +@property (nonatomic, assign) BOOL latestMessageCanIncludeExpansion; + +/// 最后一条消息的扩展信息列表 +/// +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +/// 默认消息扩展字典 key 长度不超过 32,value 长度不超过 4096,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300 +@property (nonatomic, strong, nullable) NSDictionary *latestMessageExpansion; + +/// 免打扰级别 +@property (nonatomic, assign) RCPushNotificationLevel notificationLevel; + +/// 超级群频道类型,只有 ConversationType 为超级群时该字段有效,非超级群时为 0 +@property (nonatomic, assign) RCUltraGroupChannelType channelType; + +/// 会话中第一条未读消息时间戳(Unix 时间戳、毫秒) +/// +/// 仅支持 超级群会话 +/// - Since: 5.2.5 +@property (nonatomic, assign) long long firstUnreadMsgSendTime; + +/// 文本消息翻译方式。 +/// +/// - Since: 5.24.0 +@property (nonatomic, assign) RCTranslateStrategy translateStrategy; + +@property (nonatomic, strong) RCEditedMessageDraft *editedMessageDraft; + +@end + +@interface RCConversation (deprecated) + +/// 会话中最后一条消息的消息 ID +@property (nonatomic, assign) long lastestMessageId __deprecated_msg("Use latestMessageId instead"); + +/// 会话中最后一条消息的内容 +@property (nonatomic, strong, nullable) RCMessageContent *lastestMessage __deprecated_msg("Use latestMessage instead"); + +/// 会话中最后一条消息的方向 +@property (nonatomic, assign) + RCMessageDirection lastestMessageDirection __deprecated_msg("Use latestMessageDirection instead"); + +/// 最后一条消息的全局唯一 ID +/// +/// 服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, copy, nullable) NSString *lastestMessageUId __deprecated_msg("Use latestMessageUId instead"); + + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationBatchDeletionParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationBatchDeletionParams.h new file mode 100644 index 0000000..02e77d6 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationBatchDeletionParams.h @@ -0,0 +1,29 @@ +// +// RCConversationBatchDeletionParams.h +// RongIMLibCore +// +// Created by RongCloud on 2025/8/5. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class RCConversationIdentifier; +@interface RCConversationBatchDeletionParams : NSObject + +/// 待删除的会话列表,最多同时删除 100 个会话 +@property (nonatomic, copy) NSArray *identifiers; + +/// 是否同步删除服务器端会话 +@property (nonatomic, assign) BOOL deleteRemotely; + +///是否同步删除会话中的历史消息 +/// 1. 当 deleteRemotely && deleteMessages 为 YES 时,将同时删除本地和远端会话中的历史消息 +/// 2. 当 deleteRemotely 为 NO 而 deleteMessages 为 YES 时,只删除本地会话中的历史消息 +/// 3. 当 deleteMessages 为 NO,只删会话 +@property (nonatomic, assign) BOOL deleteMessages; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationChannelProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationChannelProtocol.h new file mode 100644 index 0000000..c09a094 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationChannelProtocol.h @@ -0,0 +1,126 @@ +// +// RCConversationChannelProtocol.h +// RongIMLibCore +// +// Created by Sin on 2021/3/5. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#ifndef RCConversationChannelProtocol_h +#define RCConversationChannelProtocol_h + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCUserTypingStatus; +@protocol RCConversationChannelMessageReceiptDelegate +@optional +/*! + 请求消息已读回执(收到需要阅读时发送回执的请求,收到此请求后在会话页面已经展示该 messageUId 对应的消息或者调用 + getHistoryMessages 获取消息的时候,包含此 messageUId 的消息,需要调用 sendMessageReadReceiptResponse + 接口发送消息阅读回执) + + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + */ +- (void)onMessageReceiptRequest:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId; + +/*! + 消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数) + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + - Parameter userIdList: 已读userId列表 + */ +- (void)onMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId + readerList:(NSMutableDictionary *)userIdList; + +@end + +@protocol RCConversationChannelTypingStatusDelegate +/*! + 用户输入状态变化的回调 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标ID + - Parameter channelId: 所属会话的业务标识 + - Parameter userTypingStatusList: 正在输入的RCUserTypingStatus列表(nil表示当前没有用户正在输入) + + 当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUserTypingStatus列表。 + */ +- (void)onTypingStatusChanged:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + status:(nullable NSArray *)userTypingStatusList; +@end + +#pragma mark - 超级群会话代理 + +@protocol RCUltraGroupConversationDelegate + +//超级群会话列表与会话最后一条消息同步完成 +- (void)ultraGroupConversationListDidSync; +@end + +@protocol RCUltraGroupChannelDelegate + +/*! + 超级群类型变更通知 + 1. 公有频道变私有频道时,公有频道所有用户会收到该通知 + a. 在私有频道白名单内的用户,收到的变更类型是 PublicToPrivate(公有频道变私有频道前,可以提前将用户加入私有频道白名单) + b. 不在私有频道白名单的其他用户,变更类型为 PublicToPrivateUserNotIn + + 2. 私有频道变公有频道时,私有频道白名单中的用户收到通知,变更类型为 PrivateToPublic + + - Parameter infoList: 频道变更信息 + + 当客户端收到频道变更时,会回调此接口,通知发生变化的会话频道列表。 + 该功能仅支持超级群。 + */ +- (void)ultraGroupChannelTypeDidChanged:(NSArray *)infoList; + +/*! + 频道白名单用户被移除通知(当前仅支持私有频道) + 1. 公有频道时,将用户从私有频道白名单移除时,不通知 + 2. 私有频道时,将用户从白名单移除时,仅通知私有频道所有用户,含被踢的用户 + 3. 清理本地数据 + a. 当被踢用户为当前用户时:用户本地会话删除,本地会话的消息保留 + b. 当被踢用户为其他人时:不做任何处理 + + - Parameter infoList: 频道变更信息 + + 当客户端收到用户被移除频道时,会回调此接口,通知发生变化的会话频道列表。 + 该功能仅支持超级群。 + */ +- (void)ultraGroupChannelUserDidKicked:(NSArray *)infoList; + + +/*! + 删除频道通知,可以认为是频道解散。 + 1. 公有频道时,删除频道通知频道中所有人 + 2. 私有频道时,删除频道通知白名单中所有人 + 3. 清理本地数据:用户本地会话删除,本地会话的消息保留 + + - Parameter infoList: 频道变更信息 + + 当客户端收到频道解散时,会回调此接口,通知发生变化的会话频道列表。 + 该功能仅支持超级群。 + */ +- (void)ultraGroupChannelDidDisbanded:(NSArray *)infoList; + + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCConversationChannelProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationFilterOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationFilterOption.h new file mode 100644 index 0000000..af1f344 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationFilterOption.h @@ -0,0 +1,51 @@ +// +// RCConversationFilterOption.h +// RongIMLibCore +// +// Created by chinaspx on 2025/3/25. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 会话类型过滤。 +/// +/// - Since: 5.20.0 +@interface RCConversationTypeFilter : NSObject + +/// 会话类型 +@property (nonatomic, assign, readonly) RCConversationType type; + +/// 频道 ID,有效值:包含 @"" 或有效字符串,无效值:nil 不包含 channelId 的条件查询 +/// 单群聊未启用 channelId 传 nil,启用则传真实有效值 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 构造方法。 +/// - Parameter type: 会话类型。 +- (instancetype)initWithType:(RCConversationType)type; + +@end + +/// 会话列表参数配置。 +/// +/// - Since: 5.20.0 +@interface RCConversationListOption : NSObject + +/// 获取的数量,默认为 20。 +/// 当实际取回的会话数量小于 count 值时,表明已取完数据。 +@property (nonatomic, assign) NSInteger count; + +/// 会话的时间戳,单位:毫秒。获取这个时间戳之前的会话列表,0 表示从最新开始获取。 +@property (nonatomic, assign) long long startTime; + +/// 查询结果的排序方式,是否置顶优先,传 YES 表示置顶会话优先返回,否则结果只以会话时间排序。 +/// 默认为 YES。 +@property (nonatomic, assign) BOOL topPriority; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationIdentifier.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationIdentifier.h new file mode 100644 index 0000000..6b57130 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationIdentifier.h @@ -0,0 +1,44 @@ +// +// RCConversationIdentifier.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 会话标识 +@interface RCConversationIdentifier : NSObject +/// 会话类型 +@property (nonatomic, assign) RCConversationType type; +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 频道 ID +/// - Since: 5.6.7 +@property (nonatomic, copy, nullable) NSString *channelId; + + +/// 初始化方法 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +- (instancetype)initWithConversationIdentifier:(RCConversationType)type targetId:(NSString *)targetId; + +/// 初始化方法 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter channel: 频道 id +/// - Since: 5.6.7 +- (instancetype)initWithConversationIdentifier:(RCConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationStatusInfo.h new file mode 100644 index 0000000..c2844b7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationStatusInfo.h @@ -0,0 +1,69 @@ +// +// RCConversationStatusInfo.h +// RongIMLib +// +// Created by liyan on 2020/5/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import + +/// 会话状态类型 + +typedef NS_ENUM(NSUInteger, RCConversationStatusType) { + /// 免打扰 + RCConversationStatusType_Mute = 1, + + /// 置顶 + RCConversationStatusType_Top = 2, + /// 翻译 + RCConversationStatusType_Translation = 4 +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCConversationStatusInfo : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 所属会话的业务标识 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 会话状态改变的类型 +@property (nonatomic, assign) RCConversationStatusType conversationStatusType; + +/*! + 如果 conversationStatusType = RCConversationStatusType_Mute,conversationStatusValue = 1 是提醒,conversationStatusValue = 0 是免打扰。 + + 如果 conversationStatusType = RCConversationStatusType_Top,conversationStatusValue = 0 是不置顶,conversationStatusValue = 1 是置顶。 + + 如果 conversationStatusType = RCConversationStatusType_Translation,conversationStatusValue 代表以下功能: + RCTranslateStrategyDefault = 0, 默认,会跟随用户级别的自动翻译方式。 + RCTranslateStrategyAutoOn = 1,自动翻译 + RCTranslateStrategyAutoOff = 2, 手动翻译 + + +*/ +@property (nonatomic, assign) int conversationStatusValue; + +/*! + 会话免打扰类型 + + 当 conversationStatusType = RCConversationStatusType_Mute 时,notificationLevel 值为有效值。 +*/ +@property (nonatomic, assign) RCPushNotificationLevel notificationLevel; + +@end + +@interface RCConversationStatusInfo (deprecated) + +@property (nonatomic, assign) int conversationStatusvalue __deprecated_msg("Use conversationStatusValue instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationTagInfo.h new file mode 100644 index 0000000..7397206 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationTagInfo.h @@ -0,0 +1,25 @@ +// +// ConversationTagInfo.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 会话所属的标签信息 +@interface RCConversationTagInfo : NSObject + +/// 标签 ID +@property (nonatomic, strong) RCTagInfo *tagInfo; + +/// 会话是否置顶 +@property (nonatomic, assign) BOOL isTop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationTopOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationTopOption.h new file mode 100644 index 0000000..3e5c54c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationTopOption.h @@ -0,0 +1,31 @@ +// +// RCConversationTopOption.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/3. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 设置置顶的配置信息。 +/// +/// - Since: 5.20.0 +@interface RCConversationTopOption : NSObject + +/// 是否更新会话的操作时间。默认值为 YES。 +@property (nonatomic, assign) BOOL needUpdateTime; + +/// 会话不存在时,是否需要创建会话。默认值为 YES。 +@property (nonatomic, assign) BOOL needCreateConversation; + +/// 初始化方法。 +/// - Parameter needUpdateTime: 是否更新时间。 +/// - Parameter needCreateConversation: 是否创建会话。 +- (instancetype)initWithNeedUpdateTime:(BOOL)needUpdateTime needCreateConversation:(BOOL)needCreateConversation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationUnreadInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationUnreadInfo.h new file mode 100644 index 0000000..03d333d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCConversationUnreadInfo.h @@ -0,0 +1,42 @@ +// +// RCConversationUnreadInfo.h +// RongIMLibCore +// +// Created by shuai shao on 2023/6/2. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCConversationUnreadInfo : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 该会话的业务标识,长度限制 20 字符 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 会话中的未读消息数量 +@property (nonatomic, assign) int unreadMessageCount; + +/// 会话中 @ 消息的总个数(包含 @ 我的个数和 @ 所有人的个数) +@property (nonatomic, assign) int mentionedCount; + +/// 超级群会话中 @ 我的消息的个数 +/// 只有超级群获取频道列表时有效 +@property (nonatomic, assign) int mentionedMeCount; + +/// 免打扰级别 +@property (nonatomic, assign) RCPushNotificationLevel notificationLevel; + +/// 初始化 +- (instancetype)initWithConversation:(RCConversation *)conversation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCoreClient+Deprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCoreClient+Deprecated.h new file mode 100644 index 0000000..274fc24 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCoreClient+Deprecated.h @@ -0,0 +1,1902 @@ +// +// RCCoreClient+Deprecated.h +// RongIMLibCore +// +// Created by shuai shao on 2023/1/29. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/*! + - Since: 5.4.1 + - Warning: 本文件的方法已经过期,请您替换 RCCoreClient 中的方法。 + */ +@interface RCCoreClient (Deprecated) + +#pragma mark - SDK初始化 + +/// 初始化融云 SDK +/// +/// - Parameter appKey: 从融云开发者平台创建应用后获取到的 App Key +/// 初始化后,SDK 会监听 app 生命周期,用于判断应用处于前台、后台,根据前后台状态调整链接心跳 +/// +/// 您在使用融云 SDK 所有功能(包括显示 SDK 中或者继承于 SDK 的 View)之前,您必须先调用此方法初始化 SDK。 +/// 在 App 整个生命周期中,您只需要执行一次初始化。 +/// +/// **升级说明:** +/// **从 2.4.1 版本开始,为了兼容 Swift 的风格与便于使用,将原有的 init: 方法升级为此方法,方法的功能和使用均不变。** +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法初始化 SDK; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法初始化,而不要使用此方法。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)initWithAppKey:(NSString *)appKey __deprecated_msg("Use [RCCoreClient initWithAppKey:option:] instead"); + +#pragma mark-- 监听器 + +/// 设置 IMLibCore 的连接状态监听器 +/// +/// - Parameter delegate: IMLibCore 连接状态监听器 +/// +/// - Warning: 如果您使用 IMLibCore,可以设置并实现此 Delegate 监听连接状态变化; +/// 如果您使用 IMKit,请使用 RCIM 中的 connectionStatusDelegate 监听连接状态变化,而不要使用此方法,否则会导致 IMKit +/// 中无法自动更新 UI! +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCConnectionStatusChangeDelegate:(id)delegate + __deprecated_msg("Use [RCCoreClient addConnectionStatusChangeDelegate:] instead"); + +/// 设置 IMLibCore 的消息接收监听器 +/// +/// - Parameter delegate: IMLibCore 消息接收监听器 +/// - Parameter userData: 用户自定义的监听器 Key 值,可以为 nil +/// +/// +/// 设置 IMLibCore 的消息接收监听器请参考 RCCoreClient 的 setReceiveMessageDelegate:object:方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以设置并实现此 Delegate 监听消息接收; +/// 如果您使用 IMKit,请使用 RCIM 中的 receiveMessageDelegate 监听消息接收,而不要使用此方法,否则会导致 IMKit +/// 中无法自动更新 UI! +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setReceiveMessageDelegate:(id)delegate + object:(nullable id)userData + __deprecated_msg("Use [RCCoreClient addReceiveMessageDelegate:] instead"); + +#pragma mark - 设置导航服务器和上传文件服务器(仅限独立数据中心使用,使用前必须先联系商务开通) + +/// 设置导航服务器和上传文件服务器信息 +/// +/// - Parameter naviServer: 导航服务器地址,具体的格式参考下面的说明 +/// - Parameter fileServer: 文件服务器地址,具体的格式参考下面的说明 +/// - Returns: 是否设置成功 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。必须在 SDK init 之前进行设置。 +/// +/// naviServer 必须为有效的服务器地址,fileServer 如果想使用默认的,可以传 nil。 +/// naviServer 和 fileServer 的格式说明: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port" 或 https://cn.xxx.com 或 cn.xxx.com【SDK 默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 +/// 端口。(iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 iOS 官方开发 +/// ⽂档中的 ATS 设置说明。链接如下:https://developer.apple.com/documentation/security/preventing_insecure_network_connections#3138036) +/// +/// 本接口和 initWithAppKey:option: 中 RCInitOption 传入的 naviServer 和 fileServer 效果一致,任一种设置都生效 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (BOOL)setServerInfo:(NSString *)naviServer + fileServer:(nullable NSString *)fileServer + __deprecated_msg("Use [RCCoreClient initWithAppKey:option:] instead"); + +/// 设置统计服务器的信息 +/// +/// - Parameter statisticServer: 统计服务器地址,具体的格式参考下面的说明 +/// - Returns: 是否设置成功 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。必须在 SDK init 和 setDeviceToken 之前进行设置。 +/// +/// statisticServer 必须为有效的服务器地址,否则会造成推送等业务不能正常使用。 +/// 格式说明: +/// 1、如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK 默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2、如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 +/// 端口。(iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 iOS 官方开发 +/// ⽂档中的 ATS 设置说明。链接如下:https://developer.apple.com/documentation/security/preventing_insecure_network_connections#3138036) +/// 本接口和 initWithAppKey:option: 中 RCInitOption 传入的 statisticServer 效果一致,任一种设置都生效 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (BOOL)setStatisticServer:(NSString *)statisticServer + __deprecated_msg("Use [RCCoreClient initWithAppKey:option:] instead"); + + +#pragma mark-- config +/** + 语音消息采样率,默认 8KHz + + + 2.9.12 之前的版本只支持 8KHz。如果设置为 16KHz,老版本将无法播放 16KHz 的语音消息。 + 客服会话只支持 8KHz。 + + - Remark: 功能设置 + - Since: 5.0.0 + */ +@property (nonatomic, assign) RCSampleRate sampleRate __attribute__((deprecated)); + +#pragma mark - 消息发送 - + +/*! + 发送消息 + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, + messageId:消息的ID] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent ,用于显示;二是 pushData ,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil ,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCCoreClient sendMessage:targetId:content:pushContent:pushData:attached:success:error:] instead"); + +/*! + 发送消息 + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter option: 消息的相关配置 + - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, + messageId: 消息的 ID] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCCoreClient sendMessage:targetId:content:pushContent:pushData:option:attached:success:error:] instead"); + +/*! + 发送媒体消息(图片消息或文件消息) + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 + <= progress <= 100, messageId:消息的 ID] + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendMediaMessage:targetId:content:pushContent:pushData:attached:progress:success:error:cancel:] instead"); + +/*! + 发送媒体消息(上传图片或文件等媒体信息到指定的服务器) + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 + [uploadListener:当前的发送进度监听] + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 + <= progress <= 100, messageId:消息的ID] + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] + - Returns: 发送的消息实体 + + + 如果您需要上传图片到自己的服务器并使用 IMLibCore,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器并使用 IMLibCore,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + uploadPrepare: + (nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg("Use [RCCoreClient " + "sendMediaMessage:targetId:content:pushContent:pushData:attached:uploadPrepare:progress:success:" + "error:cancel:] instead"); + +/*! + 发送消息 + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [successMessage: 消息实体] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, errorMessage:消息实体] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent ,用于显示;二是 pushData ,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil ,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + __deprecated_msg("Use [RCCoreClient sendMessage: pushContent:pushData:attached:successBlock:errorBlock:] instead"); + +/*! + 发送媒体消息(上传图片或文件等媒体信息到指定的服务器) + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 + [uploadListener:当前的发送进度监听] + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 + <= progress <= 100, messageId:消息的ID] + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] + - Returns: 发送的消息实体 + + + 如果您需要上传图片到自己的服务器并使用 IMLibCore,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器并使用 IMLibCore,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Remark: 消息操作 + - Since: 5.2.1 + */ +- (nullable RCMessage *)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + uploadPrepare: + (nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendMediaMessage:pushContent:pushData:attached:uploadPrepare:progress:success:error:cancel:] instead"); + +/*! + 发送媒体消息(图片消息或文件消息) + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 <= progress <= 100, progressMessage:消息实体] + - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码, errorMessage:消息实体] + - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock + __deprecated_msg( + "Use [RCCoreClient sendMediaMessage:pushContent:pushData:attached:progress:successBlock:errorBlock:cancel:] " + "instead"); + +#pragma mark - 插入消息 - + +/*! + 插入向外发送的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter sentStatus: 发送状态 + - Parameter content: 消息的内容 + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + __deprecated_msg("Use [RCCoreClient insertOutgoingMessage:targetId:sentStatus:content:completion:] instead"); + +/*! + 插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) + (该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter sentStatus: 发送状态 + - Parameter content: 消息的内容 + - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。如果 sentTime<=0,则被忽略,会以插入时的时间为准。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg( + "Use [RCCoreClient insertOutgoingMessage:targetId:sentStatus:content:sentTime:completion:] instead"); + +/*! + 插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter senderUserId: 发送者 ID + - Parameter receivedStatus: 接收状态 + - Parameter content: 消息的内容 + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + __deprecated_msg("Use [RCCoreClient " + "insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:completion:] instead"); + +/*! + 插入接收的消息(此方法如果 sentTime + 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter senderUserId: 发送者 ID + - Parameter receivedStatus: 接收状态 + - Parameter content: 消息的内容 + - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒 (传 0 会按照本地时间插入) + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg( + "Use [RCCoreClient " + "insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:sentTime:completion:] instead"); + +/// 异步插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// 此方法不支持聊天室的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg( + "Use [RCCoreClient insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:completion] instead"); + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// 此方法不支持聊天室的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg( + "Use [RCCoreClient insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:sentTime:completion] " + "instead"); + +/*! + 批量插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) + RCMessage 下列属性会被入库,其余属性会被抛弃 + conversationType 会话类型 + targetId 会话 ID + messageUId 消息唯一 ID, 此属性入库 5.3.5 开始支持 + messageDirection 消息方向 + senderUserId 发送者 ID + receivedStatus 接收状态;消息方向为接收方,并且 receivedStatus 为 ReceivedStatus_UNREAD 时,该条消息未读 + sentStatus 发送状态 + content 消息的内容 + sentTime 消息发送的 Unix 时间戳,单位为毫秒 ,会影响消息排序 + extra RCMessage 的额外字段 + + 此方法不支持聊天室的会话类型。每批最多处理 500 条消息,超过 500 条返回 NO + 消息的未读会累加到会话的未读数上 + + - Remark: 消息操作 + - Since: 5.1.1 + */ +- (BOOL)batchInsertMessage:(NSArray *)msgs + __deprecated_msg("Use [RCCoreClient batchInsertMessage:completion:] instead"); + +#pragma mark - 定向消息 - + +/*! + 发送定向消息 + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + + - Returns: 发送的消息实体 + + 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + 如果您使用 IMLibCore,可以使用此方法发送定向消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送定向消息,否则不会自动更新 UI。 + userIdList里ID个数不能超过300,超过会被截断。 + + - Warning: 此方法目前仅支持普通群组和讨论组。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendDirectionalMessage:targetId:toUserIdList:content:pushContent:pushData:attached:success:error:] instead"); + +/*! + 发送定向消息 + + - Parameter message: 消息实体 + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] + + - Returns: 发送的消息实体 + + 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + userIdList里ID个数不能超过300,超过会被截断。 + + - Warning: 此方法目前仅支持普通群组和讨论组。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock: + (nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + __deprecated_msg( + "Use [RCCoreClient sendDirectionalMessage:toUserIdList:pushContent:pushData:attached:successBlock:errorBlock:] " + "instead"); + +/*! + 发送定向消息 + + - Parameter message: 消息实体 + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter option: 消息的相关配置 + - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] + + - Returns: 发送的消息实体 + + 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + userIdList里ID个数不能超过300,超过会被截断。 + + - Warning: 此方法目前仅支持普通群组和讨论组。 + + - Remark: 消息操作 + - Since: 5.1.2 + */ +- (nullable RCMessage *)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock: + (nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendDirectionalMessage:toUserIdList:pushContent:pushData:option:attached:successBlock:errorBlock:] instead"); + +/*! + 发送定向媒体消息(图片消息或文件消息) + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 <= progress <= 100, progressMessage:消息实体] + - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码, errorMessage:消息实体] + - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Warning: 如果您使用 IMLib,可以使用此方法发送媒体消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.2.5 + */ +- (nullable RCMessage *) + sendDirectionalMediaMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock + __deprecated_msg("Use [RCCoreClient " + "sendDirectionalMediaMessage:toUserIdList:pushContent:pushData:attached:progress:successBlock:" + "errorBlock:cancel:] instead"); + +#pragma mark - 消息操作 - + +/*! + 获取某个会话中指定数量的最新消息实体 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + __deprecated_msg("Use [RCCoreClient getLatestMessages:targetId:count:completion:] instead"); + +/*! + 获取会话中,从指定消息之前、指定数量的最新消息实体 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter oldestMessageId: 截止的消息 ID [0或-1 代表从最近的发送时间查起] + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,oldestMessageId 之前的、指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 oldestMessageId 对应那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + 如: + oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg("Use [RCCoreClient getHistoryMessages:targetId:oldestMessageId:count:completion:] instead"); +/*! + 获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil + - Parameter oldestMessageId: 截止的消息 ID [0或-1 代表从最近的发送时间查起] + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,oldestMessageId 之前的、指定数量和消息类型的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 oldestMessageId 对应的那条消息,如果会话中的消息数量小于参数 count + 的值,会将该会话中的所有消息返回。 + 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:objectName:oldestMessageId:count:completion:] instead"); + +/*! + 获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil + - Parameter baseMessageId: 当前的消息 ID [0或-1 代表从最近的发送时间查起] + - Parameter isForward: 查询方向 true 为向前,false 为向后 + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,baseMessageId + 之前或之后的、指定数量、消息类型和查询方向的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 baseMessageId 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:objectName:baseMessageId:isForward:count:completion:] instead"); + +/*! + 获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter objectNames: 消息内容的类型名称列表 + - Parameter sentTime: 当前的消息时间戳 + - Parameter isForward: 查询方向 true 为向前,false 为向后 + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,sentTime + 之前或之后的、指定数量、指定消息类型(多个)的消息实体列表,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 sentTime 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:objectNames:sentTime:isForward:count:completion:] instead"); + +/*! + 在会话中搜索指定消息的前 beforeCount 数量和后 afterCount + 数量的消息。返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter sentTime: 消息的发送时间 + - Parameter beforeCount: 指定消息的前部分消息数量 + - Parameter afterCount: 指定消息的后部分消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 获取该会话的这条消息及这条消息前 beforeCount 条和后 afterCount 条消息,如前后消息不够则返回实际数量的消息。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:sentTime:beforeCount:afterCount:completion:] instead"); + +/// 获取历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, RCErrorCode code))complete + __deprecated_msg("Use [RCCoreClient getMessages:targetId:option:completion:error:] instead"); + +/*! + 获取会话中 @ 提醒自己的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + + + 此方法从本地获取被@提醒的消息(最多返回 10 条信息) + - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: + 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 + + - Remark: 高级功能 + - Since: 5.0.0 + */ +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getUnreadMentionedMessages:targetId:completion:] instead"); + +/*! + 获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter count: 未读的 @ 消息,取值范围 [1,100] + - Parameter desc: 是否是降序查 + 假如有 1000 条未读的 @ 消息,取 100 条未读 + desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 + desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 + + - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: + 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 + - Since: 5.2.5 + */ +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + desc:(BOOL)desc + __deprecated_msg("Use [RCCoreClient getUnreadMentionedMessages:targetId:count:desc:completion: instead"); + +/*! + 获取消息的发送时间(Unix 时间戳、毫秒) + + - Parameter messageId: 消息 ID + - Returns: 消息的发送时间(Unix 时间戳、毫秒) + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (long long)getMessageSendTime:(long)messageId + __deprecated_msg("Use [RCCoreClient getMessageSendTime:completion:] instead"); + + +/*! + 通过 messageId 获取消息实体 + + - Parameter messageId: 消息 ID(数据库索引唯一值) + - Returns: 通过消息 ID 获取到的消息实体,当获取失败的时候,会返回 nil。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)getMessage:(long)messageId + __deprecated_msg("Use [RCCoreClient getMessage:completion:] instead"); + +/*! + 通过全局唯一 ID 获取消息实体 + + - Parameter messageUId: 全局唯一 ID(服务器消息唯一 ID) + - Returns: 通过全局唯一ID获取到的消息实体,当获取失败的时候,会返回 nil。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)getMessageByUId:(NSString *)messageUId + __deprecated_msg("Use [RCCoreClient getMessageByUId:completion:] instead"); + +/** + * 获取会话里第一条未读消息。 + * + * - Parameter conversationType: 会话类型 + * - Parameter targetId: 会话 ID + * - Returns: 第一条未读消息的实体。 + * - Remark: 消息操作 + * - Since: 5.0.0 + */ +- (nullable RCMessage *)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getFirstUnreadMessage:targetId:completion:] instead"); + +/*! + 删除消息 + + - Parameter messageIds: 消息 ID 的列表,元素需要为 NSNumber 类型 + - Returns: 是否删除成功 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)deleteMessages:(NSArray *)messageIds + __deprecated_msg("Use [RCCoreClient deleteMessages:completion:] instead"); + +/*! + 删除某个会话中的所有消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 是否删除成功 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient clearMessages:targetId:completion:] instead"); + +/*! + 设置消息的附加信息 + + - Parameter messageId: 消息 ID + - Parameter value: 附加信息,最大 1024 字节 + - Returns: 是否设置成功 + + 用于扩展消息的使用场景。只能用于本地使用,无法同步到远端。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)setMessageExtra:(long)messageId + value:(NSString *)value + __deprecated_msg("Use [RCCoreClient setMessageExtra:value:completion:] instead"); + +/*! + 设置消息的接收状态 + + - Parameter messageId: 消息 ID + - Parameter receivedStatus: 消息的接收状态 + - Returns: 是否设置成功 + + 用于 UI 展示消息为已读,已下载等状态。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)setMessageReceivedStatus:(long)messageId + receivedStatus:(RCReceivedStatus)receivedStatus + __deprecated_msg("Use [RCCoreClient setMessageReceivedStatus:receivedStatusInfo:completion:] instead"); + +/// 异步设置消息的接收状态 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter receivedStatus: 消息的接收状态 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于 UI 展示消息为已读,已下载等状态。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)setMessageReceivedStatus:(long)messageId + receivedStatus:(RCReceivedStatus)receivedStatus + completion:(nullable void (^)(BOOL ret))completion + __deprecated_msg("Use [RCCoreClient setMessageReceivedStatus:receivedStatusInfo:completion] instead"); +/*! + 设置消息的发送状态 + + - Parameter messageId: 消息 ID + - Parameter sentStatus: 消息的发送状态 + - Returns: 是否设置成功 + + 用于 UI 展示消息为正在发送,对方已接收等状态。 + 为了保证 UI 正常显示,5.1.8 版本起不再支持 app 将消息状态设置为 SentStatus_SENDING + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)setMessageSentStatus:(long)messageId + sentStatus:(RCSentStatus)sentStatus + __deprecated_msg("Use [RCCoreClient setMessageSentStatus:sentStatus:completion:] instead"); +; + +#pragma mark - 会话列表操作 - +/*! + 获取会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取会话列表。 + 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 + 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: + 分页拉取会话列表,否则有可能造成内存过大。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient getConversationList:completion:] instead"); + +/*! + 分页获取会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) + - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取) + - Returns: 会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取会话列表。 + 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCCoreClient getConversationList:count:startTime:completion:] instead"); + +/*! + 获取单个会话数据 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 会话的对象 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (nullable RCConversation *)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getConversation:targetId:completion:] instead"); + +/*! + 获取会话中的消息数量 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 会话中的消息数量 + + -1 表示获取消息数量出错。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getMessageCount:targetId:completion:] instead"); + +/*! + 删除本地和服务的会话 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 本地会话是否删除成功 + + 此方法会删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 + - Warning: 此方法会同时删除本地和服务的会话。如果服务的会话删除失败,本地的会话依然会被删除 + SDK 在未连接的情况下,删除服务会话会失败 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient removeConversation:targetId:completion:] instead"); + +/// 异步删除本地会话 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Warning: 此方法会删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion + NS_SWIFT_NAME(removeConversation(_:targetId:completion:)) + __deprecated_msg("Use -[RCCoreClient removeConversation:targetId:isDeleteRemote:success:error:] instead"); + +/*! + 删除指定类型的会话 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 是否删除成功 + + 此方法会从本地存储中删除该会话,同时删除会话中的消息。 + + 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearConversations:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient clearConversations:completion:] instead"); + +/*! + 设置会话的置顶状态 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter isTop: 是否置顶 + - Returns: 设置是否成功 + + 会话不存在时设置置顶,会在会话列表生成会话。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + isTop:(BOOL)isTop + __deprecated_msg("Use [RCCoreClient setConversationToTop:targetId:isTop:completion:] instead"); + +/*! + 获取置顶的会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 置顶的会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取置顶的会话列表。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getTopConversationList:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient getTopConversationList:completion:] instead"); + +/*! + 获取会话的置顶状态 + + - Parameter conversationIdentifier: 会话信息 + + 此方法会从本地数据库中,读取该会话是否置顶。 + + - Remark: 会话 + - Since: 5.1.5 + */ +- (BOOL)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + __deprecated_msg("Use [RCCoreClient getConversationTopStatus:completion:] instead"); + +#pragma mark - 会话中的草稿操作 - +/*! + 获取会话中的草稿信息(用户输入但未发送的暂存消息) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Returns: 该会话中的草稿 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (nullable NSString *)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getTextMessageDraft:targetId:completion:] instead"); + +/*! + 保存草稿信息(用户输入但未发送的暂存消息) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Parameter content: 草稿信息 + - Returns: 是否保存成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(NSString *)content + __deprecated_msg("Use [RCCoreClient saveTextMessageDraft:targetId:content:completion:] instead"); + +/*! + 删除会话中的草稿信息(用户输入但未发送的暂存消息) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Returns: 是否删除成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient clearTextMessageDraft:targetId:completion:] instead"); + + +#pragma mark - 未读消息数 - + +/*! + 获取所有的未读消息数(聊天室会话除外) + + - Returns: 所有的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getTotalUnreadCount __deprecated_msg("Use [RCCoreClient getTotalUnreadCountWith:] instead"); + +/*! + 获取某个会话内的未读消息数(聊天室会话除外) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Returns: 该会话内的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getUnreadCount:targetId:completion:] instead"); + +/*! + 获取某个会话内的未读消息数 + + - Parameter conversationIdentifier: 会话信息 + - Parameter messageClassList: 消息类型数组 + - Returns: 该会话内的未读消息数 + + 此方法不支持聊天室和超级群的会话类型。 + + - Remark: 会话 + - Since: 5.1.5 + */ +- (int)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + __deprecated_msg("Use [RCCoreClient getUnreadCount:messageClassList:completion:] instead"); + +/*! + 获取某些会话的总未读消息数 (聊天室会话除外) + + - Parameter conversations: 会话列表 ( RCConversation 对象只需要 conversationType 和 targetId,channelId 按需使用) + - Returns: 传入会话列表的未读消息数 + + conversations会话个数不能超过300,超过会被截断。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getTotalUnreadCount:(NSArray *)conversations + __deprecated_msg("Use [RCCoreClient getTotalUnreadCount:completion:] instead"); + +/*! + 获取某些类型的会话中所有的未读消息数 (聊天室会话除外) + + - Parameter conversationTypes: 会话类型的数组 + - Parameter isContain: 是否包含免打扰消息的未读数 + - Returns: 该类型的会话中所有的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadCount:(NSArray *)conversationTypes + containBlocked:(bool)isContain + __deprecated_msg("Use [RCCoreClient getUnreadCount:containBlocked:completion:] instead"); + +/*! + 获取某个类型的会话中所有的未读消息数(聊天室会话除外) + + - Parameter conversationTypes: 会话类型的数组 + - Returns: 该类型的会话中所有的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadCount:(NSArray *)conversationTypes + __deprecated_msg("Use [RCCoreClient getUnreadCount:completion:] instead"); + +/*! + 获取某个类型的会话中所有未读的被 @ 的消息数 + + - Parameter conversationTypes: 会话类型的数组 + - Returns: 该类型的会话中所有未读的被 @ 的消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadMentionedCount:(NSArray *)conversationTypes + __deprecated_msg("Use [RCCoreClient getUnreadMentionedCount:completion:] instead"); + +/*! + 清除某个会话中的未读消息数 + + - Parameter conversationType: 会话类型,不支持聊天室 + - Parameter targetId: 会话 ID + - Returns: 是否清除成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient clearMessagesUnreadStatus:targetId:completion:] instead"); + +/*! + 清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) + + - Parameter conversationType: 会话类型,不支持聊天室 + - Parameter targetId: 会话 ID + - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳 + - Returns: 是否清除成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + __deprecated_msg("Use [RCCoreClient clearMessagesUnreadStatus:targetId:time:completion:] instead"); + +/// 下载消息内容中的媒体信息 +/// +/// - Parameter messageId: 媒体消息的 messageId +/// - Parameter progressBlock: 消息下载进度更新的回调 [progress:当前的下载进度,0 <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 [mediaPath:下载成功后本地存放的文件路径] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 多媒体下载成功后,会更新消息体的 localPath。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (void)downloadMediaMessage:(long)messageId + progress:(nullable void (^)(int progress))progressBlock + success:(nullable void (^)(NSString *mediaPath))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancel:(nullable void (^)(void))cancelBlock + __deprecated_msg( + "Use [RCCoreClient downloadMediaMessage:progressBlock:successBlock:errorBlock:cancelBlock:] instead"); + +/// 取消下载中的媒体信息 +/// +/// - Parameter messageId: 媒体消息的 messageId +/// +/// - Returns: YES 表示取消成功,NO 表示取消失败,即已经下载完成或者消息不存在。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (BOOL)cancelDownloadMediaMessage:(long)messageId + __deprecated_msg("Use [RCCoreClient cancelDownloadMediaMessage:successBlock:errorBlock:] instead"); + +/// 取消下载中的媒体信息 +/// +/// - Parameter mediaUrl: 媒体消息 Url +/// +/// - Returns: YES 表示取消成功,NO 表示取消失败,即已经下载完成或者消息不存在。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (BOOL)cancelDownloadMediaUrl:(NSString *)mediaUrl + __deprecated_msg("Use [RCCoreClient cancelDownloadMediaUrl:successBlock:errorBlock:] instead"); + +#pragma mark - 会话的消息提醒 - + +/*! + 设置会话的消息提醒状态 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter isBlocked: 是否屏蔽消息提醒 + - Parameter successBlock: 设置成功的回调 + [nStatus:会话设置的消息提醒状态] + - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] + + + 如果您使用 + IMLibCore,此方法会屏蔽该会话的远程推送;如果您使用IMKit,此方法会屏蔽该会话的所有提醒(远程推送、本地通知、前台提示音),该接口不支持聊天室。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)setConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + isBlocked:(BOOL)isBlocked + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient " + "setConversationChannelNotificationLevel:targetId:channelId:level:success:error:] instead"); + +/*! + 获取消息免打扰会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 消息免打扰会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取消息免打扰会话列表。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getBlockedConversationList:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient getBlockedConversationList:completion:] instead"); + +#pragma mark - 全局消息提醒 - + +/*! + 全局屏蔽某个时间段的消息提醒 + + - Parameter startTime: 开始消息免打扰时间,格式为 HH:MM:SS + - Parameter spanMins: 需要消息免打扰分钟数,0 < spanMins < 1440( 比如,您设置的起始时间是 00:00, 结束时间为 01:00,则 spanMins 为 60 分钟。设置为 1439 代表全天免打扰 (23 * 60 + 59 = 1439 )) + - Parameter successBlock: 屏蔽成功的回调 + - Parameter errorBlock: 屏蔽失败的回调 [status:屏蔽失败的错误码] + + 此方法设置的屏蔽时间会在每天该时间段时生效。 + 如果您使用 IMLibCore,此方法会屏蔽所有会话在该时间段的远程推送;如果您使用 + IMKit,此方法会屏蔽所有会话在该时间段的所有提醒(远程推送、本地通知、前台提示音)。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)setNotificationQuietHours:(NSString *)startTime + spanMins:(int)spanMins + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient setNotificationQuietHoursLevel:spanMins:level:success:error:] instead"); + +/*! + 删除已设置的全局时间段消息提醒屏蔽 + + - Parameter successBlock: 删除屏蔽成功的回调 + - Parameter errorBlock: 删除屏蔽失败的回调 [status:失败的错误码] + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)removeNotificationQuietHours:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient removeNotificationQuietHours:success:error:] instead"); + +/*! + 查询已设置的全局时间段消息提醒屏蔽 + + - Parameter successBlock: 屏蔽成功的回调 [startTime:已设置的屏蔽开始时间, + spanMins:已设置的屏蔽时间分钟数,0 < spanMins < 1440] + - Parameter errorBlock: 查询失败的回调 [status:查询失败的错误码] + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)getNotificationQuietHours:(nullable void (^)(NSString *startTime, int spanMins))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient getNotificationQuietHoursLevel:error:] instead"); + +#pragma mark - 工具类方法 + +/*! + 获取当前手机与服务器的时间差 + + - Returns: 时间差 + 消息发送成功后,SDK 会与服务器同步时间,消息所在数据库中存储的时间就是服务器时间。 + + - Remark: 数据获取 + - Since: 5.0.0 + */ +- (long long)getDeltaTime __deprecated_msg("Use [RCCoreClient getDeltaTime:] instead"); + +#pragma mark - 搜索 + +/*! + 根据关键字搜索指定会话中的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter keyword: 关键字 + - Parameter count: 最大的查询数量 + - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间) + + - Returns: 匹配的消息列表 + + 只支持搜索已存储到本地的消息。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCCoreClient searchMessages:targetId:keyword:count:startTime:completion:] instead"); + +/*! + 根据时间,偏移量和个数搜索指定会话中的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 + - Parameter startTime: 查询 startTime 之后的消息, startTime >= 0 + - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime + - Parameter offset: 查询的消息的偏移量,offset >= 0 + - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为100,如果大于100,会默认成100。 + + - Returns: 匹配的消息列表 + + 只支持搜索已存储到本地的消息。 + + - Remark: 消息操作 + - Since: 5.1.2 + */ +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + __deprecated_msg( + "Use [RCCoreClient searchMessages:targetId:keyword:count:startTime:endTime:offset:limit:completion:] instead"); + +/*! + 按用户 ID 搜索指定会话中的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter userId: 搜索用户 ID + - Parameter count: 最大的查询数量 + - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间) + + - Returns: 匹配的消息列表 + + 只支持搜索已存储到本地的消息。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCCoreClient searchMessages:targetId:userId:count:startTime:completion:] instead"); + +/*! + 根据关键字搜索会话 + + - Parameter conversationTypeList: 需要搜索的会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Parameter objectNameList: 需要搜索的消息类型名列表(即每个消息类方法 getObjectName 的返回值) + - Parameter keyword: 关键字,非空 + + - Returns: 匹配的会话搜索结果列表 + + 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 + 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 + + conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 + objectNameList中类型名个数不能超过300,超过会被截断。 + + conversationTypeList 传值时: + OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), + Swift 需获取到 rawValue 强转成 NSNumber 传入 + (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) + [privateType] ) + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)searchConversations:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + __deprecated_msg("Use [RCCoreClient searchConversations:messageType:keyword:completion:] instead"); + +#pragma mark - 消息扩展 - + +/*! + 获取标签列表 + + - Returns: 标签列表 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (NSArray *)getTags __deprecated_msg("Use [RCCoreClient getTags:] instead"); + +/*! + 获取会话的所有标签 + + - Parameter conversationIdentifier: 会话信息 + - Returns: 会话所属的标签列表 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (nullable NSArray *)getTagsFromConversation: + (RCConversationIdentifier *)conversationIdentifier + __deprecated_msg("Use [RCCoreClient getTagsFromConversation:completion:] instead"); + +/*! + 分页获取标签中会话列表 + + - Parameter tagId: 标签 ID + - Parameter timestamp: 会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取) + - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) + - Returns: 会话 RCConversation 的列表 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (nullable NSArray *)getConversationsFromTagByPage:(NSString *)tagId + timestamp:(long long)timestamp + count:(int)count + __deprecated_msg("Use [RCCoreClient getConversationsFromTagByPage:timestamp:count:completion:] instead"); + +/*! + 获取标签中会话消息未读数 + + - Parameter tagId: 标签 ID + - Parameter isContain: 是否包含免打扰会话 + - Returns: 会话消息未读数 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (int)getUnreadCountByTag:(NSString *)tagId + containBlocked:(BOOL)isContain + __deprecated_msg("Use [RCCoreClient getUnreadCountByTag:containBlocked:completion:] instead"); + +/*! + 获取标签中的会话置顶状态 + + - Parameter conversationIdentifier: 会话信息 + - Parameter tagId: 标签 ID + - Returns: 置顶状态 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (BOOL)getConversationTopStatusInTag:(RCConversationIdentifier *)conversationIdentifier + tagId:(NSString *)tagId + __deprecated_msg("Use [RCCoreClient getConversationTopStatusInTag:tagId:completion:] instead"); + +/*! + 清除标签对应会话的未读消息数 + + - Parameter tagId: 标签 ID + - Returns: 是否清除成功 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.5 + */ +- (BOOL)clearMessagesUnreadStatusByTag:(NSString *)tagId + __deprecated_msg("Use [RCCoreClient clearMessagesUnreadStatusByTag:completion:] instead"); + +#pragma mark-- 统计 + +/// 统计 App 启动的事件 +/// +/// - Parameter launchOptions: App 的启动附加信息 +/// +/// 此方法用于统计融云推送服务的点击率。 +/// 如果您需要统计推送服务的点击率,只需要在 AppDelegate 的-application:didFinishLaunchingWithOptions:中, +/// 调用此方法并将 launchOptions 传入即可。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recordLaunchOptionsEvent:(nullable NSDictionary *)launchOptions + __deprecated_msg("Remote notification use [RCCoreClient recordRemoteNotificationEvent:] instead, local " + "notification use [RCCoreClient recordLocalNotificationResponseEvent:] instead"); + +/// 统计本地通知的事件 +/// +/// - Parameter notification: 本地通知的内容 +/// +/// 此方法用于统计融云推送服务的点击率。 +/// 如果您需要统计推送服务的点击率,只需要在 AppDelegate 的-application:didReceiveLocalNotification:中, +/// 调用此方法并将 launchOptions 传入即可。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (void)recordLocalNotificationEvent:(UILocalNotification *)notification + __deprecated_msg("Use [RCCoreClient recordLocalNotificationResponseEvent:] instead"); +#pragma clang diagnostic pop + +#pragma mark-- 信息托管 + +/// 创建群组 +/// - Parameter groupInfo: 群组信息及权限,groupId、groupName 必填,否则创建失败 +/// - Parameter inviteeUserIds: 被邀请的用户 Id 列表,可以为空,一次最多允许 30 个用户加入。 +/// - Parameter success: 成功回调。 +/// - Parameter error: 失败回调 +/// +/// - Note: +/// +/// **`groupInfo` 参数说明** +/// - `groupId` 最大长度 64 个字符。支持大小写英文字母与数字的组合 +/// - `groupName` 最长不超过 64 个字符,群名称可以重复创建 +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `inviteHandlePermission` 为被邀请人需要同意才能进群时,`processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` ( 25427 ),表示需要被邀请人同意后才能进入群组。 +/// - 当群组的 `inviteHandlePermission` 为不需被邀请人同意时,`processCode` 返回 RC_SUCCESS ( 0 ),被邀请人会直接加入群组。 +/// - Since: 5.12.0 +- (void)createGroup:(RCGroupInfo *)groupInfo + inviteeUserIds:(nullable NSArray *)inviteeUserIds + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode, NSString *_Nullable errorKey))errorBlock + __deprecated_msg("Use -[RCCoreClient createGroup:inviteeUserIds:successBlock:errorBlock:] instead"); + +/// 更新群组信息 +/// - Parameter groupInfo: 群组信息,groupId 必填,否则更新失败 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)updateGroupInfo:(RCGroupInfo *)groupInfo + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode, NSString *_Nullable errorKey))errorBlock + NS_SWIFT_NAME(updateGroupInfo(_:success:error:)) + __deprecated_msg("Use -[RCCoreClient updateGroupInfo:successBlock:errorBlock:] instead"); + +/// 设置群成员资料 +/// - Parameter groupId: 群组 ID +/// - Parameter userId: 用户 ID,必填项,支持传入当前登录用户 ID +/// - Parameter nickname: 用户昵称,非必填项,长度不超过 64 个字符,传 nil 或 空字符串表示移除用户昵称 +/// - Parameter extra: 附加信息,非必填项,长度不超过 128 个字符 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setGroupMemberInfo:(NSString *)groupId + userId:(NSString *)userId + nickname:(nullable NSString *)nickname + extra:(nullable NSString *)extra + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock + __deprecated_msg("Use -[RCCoreClient setGroupMemberInfo:userId:nickname:extra:successBlock:errorBlock:] instead"); + +/// 修改自己的用户信息 +/// +/// - Parameter profile: 用户信息 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)updateMyUserProfile:(RCUserProfile *)profile + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode, NSString *_Nullable errorKey))errorBlock + __deprecated_msg("Use -[RCCoreClient updateMyUserProfile:successBlock:errorBlock:] instead"); + +/// 好友信息设置 +/// - Parameter userId: 用户 ID +/// - Parameter remark: 好友备注,最多为 64 个字符,不传或为空时清除备注名。 +/// - Parameter extProfile: 扩展信息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setFriendInfo:(NSString *)userId + remark:(nullable NSString *)remark + extProfile:(nullable NSDictionary *)extProfile + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock + __deprecated_msg("Use -[RCCoreClient setFriendInfo:remark:extProfile:successBlock:errorBlock:] instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCoreClient.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCoreClient.h new file mode 100644 index 0000000..328928b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCCoreClient.h @@ -0,0 +1,4319 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCCoreClient.h +// RongIMLibCore +// Created by xugang on 14/12/23. + +#ifndef __RongCoreClient +#define __RongCoreClient +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import + +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCIMProxy; +@class RCAppSettings; +@class RCInitOption, RCConversationTopOption; +@class RCSearchMessageParams; +@class RCSubscribeEvent, RCSubscribeInfoEvent, RCSubscribeEventRequest; +@class RCMessageIdentifier; +@class RCConversationBatchDeletionParams; +@class RCAppSettings; +@class RCGetUnreadMentionMeConversationListParams; +@class RCSubscribeUserOnlineStatus; +@class RCEditedMessageDraft; +@protocol RCSubscribeEventDelegate; + +/// 收到已读回执的 Notification +/// +/// 收到消息已读回执之后,IMLibCore 会分发此通知。 +/// +/// Notification 的 object 为 nil,userInfo 为 NSDictionary 对象, +/// 其中 key 值分别为 @"cType"、@"tId"、@"messageTime", +/// 对应的 value 为会话类型的 NSNumber 对象、会话的 targetId、已阅读的最后一条消息的 sendTime。 +/// 如: +/// ```objc +/// NSNumber *type = [notification.userInfo objectForKey:@"cType"]; +/// NSNumber *time = [notification.userInfo objectForKey:@"messageTime"]; +/// NSString *targetId = [notification.userInfo objectForKey:@"tId"]; +/// NSString *channelId = [notification.userInfo objectForKey:@"cId"]; +/// NSString *fromUserId = [notification.userInfo objectForKey:@"fId"]; +/// ``` +/// 收到这个消息之后可以更新这个会话中 messageTime 以前的消息 UI 为已读(底层数据库消息状态已经改为已读)。 +/// +/// - Remark: 事件监听 +FOUNDATION_EXPORT NSString *const RCLibDispatchReadReceiptNotification; + +#pragma mark - IMLibCore 核心类 + +/// 融云 IMLibCore 核心类 +/// +/// 您需要通过 sharedCoreClient 方法,获取单例对象。 +@interface RCCoreClient : NSObject + +/// 获取融云通讯能力库 IMLibCore 的核心类单例 +/// +/// - Returns: 融云通讯能力库 IMLibCore 的核心单例类 +/// +/// 您可以通过此方法,获取 IMLibCore 的单例,访问对象中的属性和方法。 +/// - Since: 5.0.0 ++ (instancetype)sharedCoreClient; + + +#pragma mark - SDK初始化 + +/// 初始化融云 SDK +/// +/// - Parameter appKey: 从融云开发者平台创建应用后获取到的 App Key +/// - Parameter option: 设置配置信息,详细配置项信息请查看 RCInitOption.h 文件 +/// +/// 初始化后,SDK 会监听 app 生命周期,用于判断应用处于前台、后台,根据前后台状态调整链接心跳 +/// +/// 您在使用融云 SDK 所有功能(包括显示 SDK 中或者继承于 SDK 的 View)之前,您必须先调用此方法初始化 SDK。 +/// 在 App 整个生命周期中,您只需要执行一次初始化。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法初始化 SDK; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法初始化,而不要使用此方法。 +/// +/// - Remark: 连接 +/// +/// - Since: 5.4.1 +- (void)initWithAppKey:(NSString *)appKey option:(nullable RCInitOption *)option; + +/// 设置 deviceToken(已兼容 iOS 13),用于远程推送 +/// +/// - Parameter deviceTokenData: 从系统获取到的设备号 deviceTokenData (不需要处理) +/// +/// deviceToken 是系统提供的,从苹果服务器获取的,用于 APNs 远程推送必须使用的设备唯一值。 +/// 您需要将 -application:didRegisterForRemoteNotificationsWithDeviceToken: 获取到的 deviceToken 作为参数传入此方法。 +/// +/// 如: +/// ```objc +/// - (void)application:(UIApplication *)application +/// didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { +/// [[RCCoreClient sharedCoreClient] setDeviceTokenData:deviceToken]; +/// } +/// ``` +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setDeviceTokenData:(NSData *)deviceTokenData; + +/// 设置 deviceToken,用于远程推送 +/// +/// - Parameter deviceToken: 从系统获取到的设备号 deviceToken +/// +/// +/// deviceToken 是系统提供的,从苹果服务器获取的,用于 APNs 远程推送必须使用的设备唯一值。 +/// 您需要将 -application:didRegisterForRemoteNotificationsWithDeviceToken: 获取到的 +/// deviceToken,转换成十六进制字符串,作为参数传入此方法。 +/// +/// 如: +/// ```objc +/// - (void)application:(UIApplication *)application +/// didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { +/// NSString *token = [self getHexStringForData:deviceToken]; +/// [[RCCoreClient sharedCoreClient] setDeviceToken:token]; +/// } +/// +/// - (NSString *)getHexStringForData:(NSData *)data { +/// NSUInteger length = [data length]; +/// char *chars = (char *)[data bytes]; +/// NSMutableString *hexString = [[NSMutableString alloc] init]; +/// for (NSUInteger i = 0; i < length; i ++) { +/// [hexString appendString:[NSString stringWithFormat:@"%0.2hhx", chars[i]]]; +/// } +/// return hexString; +/// } +/// ``` +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setDeviceToken:(NSString *)deviceToken; + +#pragma mark - 连接与断开服务器 + +/// 与融云服务器建立连接 +/// +/// - Parameter token: 从您服务器端获取的 token (用户身份令牌) +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID] +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码] +/// +/// 调用该接口,SDK 会在连接失败之后尝试重连,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// 如果您不想一直进行重连,可以使用 connectWithToken:timeLimit:dbOpened:success:error: 接口并设置连接超时时间 timeLimit。 +/// +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// 对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。 +/// 在此种情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法建立与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法建立与融云服务器的连接,而不要使用此方法。 +/// +/// 此方法的回调并非为原调用线程,您如果需要进行 UI 操作,请注意切换到主线程。 +/// - Since: 5.0.0 +- (void)connectWithToken:(NSString *)token + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 与融云服务器建立连接 +/// +/// - Parameter token: 从您服务器端获取的 token (用户身份令牌) +/// - Parameter timeLimit: SDK 连接的超时时间,单位:秒 +/// timeLimit <= 0,SDK 会一直连接,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// timeLimit > 0,SDK 最多连接 timeLimit 秒,超时时返回 RC_CONNECT_TIMEOUT 错误,并不再重连。 +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID] +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码] +/// +/// 调用该接口,SDK 会在 timeLimit 秒内尝试重连,直到出现下面三种情况之一: +/// 第一、连接成功,回调 successBlock(userId)。 +/// 第二、超时,回调 errorBlock(RC_CONNECT_TIMEOUT)。 +/// 第三、出现 SDK 无法处理的错误,回调 errorBlock(errorCode)(如 token 非法)。 +/// +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// 对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。 +/// 在此种情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法建立与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法建立与融云服务器的连接,而不要使用此方法。 +/// +/// 此方法的回调并非为原调用线程,您如果需要进行 UI 操作,请注意切换到主线程。 +/// - Since: 5.0.0 +- (void)connectWithToken:(NSString *)token + timeLimit:(int)timeLimit + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 与融云服务器建立连接。 +/// +/// - Parameter userId: 融云服务器的用户 ID,与 `token` 对应。 +/// - Parameter token: 融云服务器端的用户身份令牌。 +/// - Parameter timeLimit: SDK 连接的超时时间,单位:秒。 +/// timeLimit 大于 0 时,SDK 最多连接 timeLimit 秒,超时时返回 `RC_CONNECT_TIMEOUT` 错误,并不再重连。 +/// timeLimit 小于或等于 0 时,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调。 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID]。 +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码]。对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。但要注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Note: +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// - Warning: +/// 此方法的回调线程是 SDK 的内部线程,不是该接口的调用线程。您如果需要进行 UI 操作,请注意切换到主线程。 +/// +/// - Since: 5.20.0 +- (void)connectWithUserId:(NSString *)userId + token:(NSString *)token + timeLimit:(int)timeLimit + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 与融云服务器建立连接。 +/// +/// - Parameter userId: 融云服务器的用户 ID,与 `token` 对应。 +/// - Parameter token: 融云服务器端的用户身份令牌。 +/// - Parameter timeLimit: SDK 连接的超时时间,单位:秒。 +/// timeLimit 大于 0 时,SDK 最多连接 timeLimit 秒,超时时返回 `RC_CONNECT_TIMEOUT` 错误,并不再重连。 +/// timeLimit 小于或等于 0 时,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调。 +/// - Parameter dbCreatedBlock: 本地消息数据库是否是重建的回调。 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID]。 +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码]。对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。但要注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Note: +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// - Warning: +/// 此方法的回调线程是 SDK 的内部线程,不是该接口的调用线程。您如果需要进行 UI 操作,请注意切换到主线程。 +/// +/// - Since: 5.28.0 +- (void)connectWithUserId:(NSString *)userId + token:(NSString *)token + timeLimit:(int)timeLimit + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + dbCreated:(nullable void (^)(BOOL isRecreated))dbCreatedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 断开与融云服务器的连接 +/// +/// - Parameter isReceivePush: App 在断开连接之后,是否还接收远程推送 +/// +/// +/// 因为 SDK 在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 +/// 所以除非您的 App 逻辑需要登出,否则一般不需要调用此方法进行手动断开。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法断开与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法断开与融云服务器的连接,而不要使用此方法。 +/// +/// isReceivePush 指断开与融云服务器的连接之后,是否还接收远程推送。 +/// [[RCCoreClient sharedCoreClient] disconnect:YES] 与 [[RCCoreClient sharedCoreClient] +/// disconnect] 完全一致; +/// [[RCCoreClient sharedCoreClient] disconnect:NO] 与 [ [RCCoreClient sharedCoreClient] +/// logout] 完全一致。 +/// 您只需要按照您的需求,使用 disconnect: 与 disconnect 以及 logout 三个接口其中一个即可。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)disconnect:(BOOL)isReceivePush; + +/// 断开与融云服务器的连接,但仍然接收远程推送 +/// +/// +/// 因为 SDK 在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 +/// 所以除非您的 App 逻辑需要登出,否则一般不需要调用此方法进行手动断开。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法断开与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法断开与融云服务器的连接,而不要使用此方法。 +/// +/// [[RCCoreClient sharedCoreClient] disconnect:YES] 与 [[RCCoreClient sharedCoreClient] +/// disconnect] 完全一致; +/// [[RCCoreClient sharedCoreClient] disconnect:NO] 与 [[RCCoreClient sharedCoreClient] +/// logout] 完全一致。 +/// 您只需要按照您的需求,使用 disconnect: 与 disconnect 以及 logout 三个接口其中一个即可。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)disconnect; + +/// 断开与融云服务器的连接,并不再接收远程推送 +/// +/// +/// 因为 SDK 在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 +/// 所以除非您的 App 逻辑需要登出,否则一般不需要调用此方法进行手动断开。 +/// +/// - Warning: 如果您使用 IMKit,请使用此方法断开与融云服务器的连接; +/// 如果您使用 IMLibCore,请使用 RCCoreClient 中的同名方法断开与融云服务器的连接,而不要使用此方法。 +/// +/// [[RCCoreClient sharedCoreClient] disconnect:YES] 与 [[RCCoreClient sharedCoreClient] +/// disconnect] 完全一致; +/// [[RCCoreClient sharedCoreClient] disconnect:NO] 与 [[RCCoreClient sharedCoreClient] +/// logout] 完全一致。 +/// 您只需要按照您的需求,使用 disconnect: 与 disconnect 以及 logout 三个接口其中一个即可。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)logout; + +/// 设置断线重连时是否踢出当前正在重连的设备 +/// +/// +/// 用户没有开通多设备登录功能的前提下,同一个账号在一台新设备上登录的时候,会把这个账号在之前登录的设备上踢出。 +/// 由于 SDK 有断线重连功能,存在下面情况。 +/// 用户在 A 设备登录,A 设备网络不稳定,没有连接成功,SDK 启动重连机制。 +/// 用户此时又在 B 设备登录,B 设备连接成功。 +/// A 设备网络稳定之后,用户在 A 设备连接成功,B 设备被踢出。 +/// 这个接口就是为这种情况加的。 +/// 设置 enable 为 YES 时,SDK 重连的时候发现此时已有别的设备连接成功,不再强行踢出已有设备,而是踢出重连设备。 +/// +/// - Parameter enable: 是否踢出重连设备 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setReconnectKickEnable:(BOOL)enable; + +/// 是否允许 SDK 排重,默认值为 YES +/// +/// 排重的场景如下 +/// 发送方弱网情况下发送消息,消息到达服务但发送方没有收到服务 ack,导致发送方认为消息发送失败 +/// 此种情况下,服务端和接收方都会收到第一条消息 +/// 此时发送方重发该消息,再次达到服务,那么此时服务端会有两条消息(消息内容相同,messageUid 不同) +/// 接收方会收到两条内容相同但 messageUid 不同的消息,SDK 此时会把第二条相同内容消息排重掉 +/// 以此来保证重发的相同内容消息,发送方只有一条消息,接收方也只有一条消息 +/// +/// 当消息量少时,消息排重影响不大;但是本地存在大量消息时,排重会出现性能问题 +/// 当 APP 本地存在大量消息,且发生收消息卡顿时,建议将排重关闭 +/// 在初始化接口之后连接之前调用 +/// 该接口不支持聊天室、超级群会话类型关闭消息排重。 +/// +/// - Parameter enableCheck: 是否允许 SDK 排重 +/// +/// - Since: 5.3.4 +- (void)setCheckDuplicateMessage:(bool)enableCheck; + +#pragma mark - 连接状态监听 + +/// 添加 IMLib 连接状态监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)addConnectionStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(addConnectionStatusChangeDelegate(_:)); + +/// 移除 IMLib 连接状态监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)removeConnectionStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(removeConnectionStatusChangeDelegate(_:)); + +/// 获取当前 SDK 的连接状态 +/// +/// - Returns: 当前 SDK 的连接状态 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (RCConnectionStatus)getConnectionStatus; + +/// 获取当前的网络状态 +/// +/// - Returns: 当前的网路状态 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (RCNetworkStatus)getCurrentNetworkStatus; + +/// SDK 当前所处的运行状态 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +@property (nonatomic, assign, readonly) RCSDKRunningMode sdkRunningMode; + +/// 媒体文件上传&下载拦截器 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.2 +@property (nonatomic, weak, nullable) id downloadInterceptor; + +#pragma mark - 阅后即焚监听 + +/// +/// 设置 IMLibCore 的阅后即焚监听器 +/// +/// - Parameter delegate: 阅后即焚监听器 +/// 可以设置并实现此 Delegate 监听消息焚烧 +/// - Warning: 如果您使用 IMKit,请不要使用此监听器,否则会导致 IMKit 中无法自动更新 UI! +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCMessageDestructDelegate:(nullable id)delegate; + +#pragma mark - 用户信息 + +/// 当前登录用户的用户信息 +/// +/// 用于与融云服务器建立连接之后,设置当前用户的用户信息。 +/// +/// - Warning: 如果传入的用户信息中的用户 ID 与当前登录的用户 ID 不匹配,则将会忽略。 +/// 如果您使用 IMLibCore,请使用此字段设置当前登录用户的用户信息; +/// 如果您使用 IMKit,请使用 RCIM 中的 currentUserInfo 设置当前登录用户的用户信息,而不要使用此字段。 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +@property (nonatomic, strong, nullable) RCUserInfo *currentUserInfo; + +#pragma mark - 消息接收与发送 + +/// 注册自定义的消息类型 +/// +/// - Parameter messageClass: 自定义消息的类,该自定义消息需要继承于 RCMessageContent +/// +/// +/// 如果您需要自定义消息,必须调用此方法注册该自定义消息的消息类型,否则 SDK 将无法识别和解析该类型消息。 +/// 请在初始化 appkey 之后,token 连接之前调用该方法注册自定义消息 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法注册自定义的消息类型; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法注册自定义的消息类型,而不要使用此方法。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)registerMessageType:(Class)messageClass; + +#pragma mark 消息发送 + +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码,messageId:消息的 ID] +/// +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 +/// [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + uploadPrepare:(nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 +/// [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + uploadPrepare:(nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送消息 +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage: 消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码,errorMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送消息 +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage: 消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码,errorMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)sendMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 <= progress <= 100, progressMessage:消息实体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:消息实体] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 <= progress <= 100, progressMessage:消息实体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:消息实体] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.4.4 +- (void)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock; + +/// 取消发送中的媒体信息 +/// +/// - Parameter messageId: 媒体消息的 messageId +/// +/// - Returns: YES 表示取消成功,NO 表示取消失败,即已经发送成功或者消息不存在。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (BOOL)cancelSendMediaMessage:(long)messageId; + +/// 异步插入向外发送的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + + +/// 异步插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter content: 消息的内容 +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Note: 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存;可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + content:(RCMessageContent *)content + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Note: 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存;可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + + +/// 异步插入消息(此方法如果 message.sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter message: 将要插入的消息实体(message 中的 conversationType、targetId、messageContent、messageDirection、senderUserId 必须是有效值) +/// MessageDirection_SEND 时必须设置 sentStatus;MessageDirection_RECEIVE 时必须设置 receivedStatusInfo +/// - Parameter successBlock: 异步回调 [message: 插入消息的完整实体] +/// - Parameter errorBlock: 异步回调 [errorCode: 插入失败错误码] +/// +/// - Note: 如果 message.sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Remark: 消息操作 +/// - Since: 5.12.2 +/** + RCTextMessage *txtMessage = [RCTextMessage messageWithContent:@"insert a message"]; + // 构造一条接收到的单聊消息,用于插入本地数据库 + RCMessage *incoming = [[RCMessage alloc] initWithType:ConversationType_PRIVATE + targetId:@"targetID" + direction:MessageDirection_RECEIVE + content:txtMessage]; + incoming.senderUserId = @"senderUserId"; + RCReceivedStatusInfo *statusInfo = [[RCReceivedStatusInfo alloc] initWithReceivedStatus:0]; + [statusInfo markAsRead]; + incoming.receivedStatusInfo = statusInfo; + incoming.disableUpdateLastMessage = YES; + + // 构造一条发送的超级群消息,用于插入本地数据库 + RCMessage *outgoing = [[RCMessage alloc] initWithType:ConversationType_PRIVATE + targetId:@"targetID" + channelId:@"channelID" + direction:MessageDirection_SEND + content:txtMessage]; + outgoing.senderUserId = @"own user id"; + outgoing.sentStatus = SentStatus_SENT; + outgoing.canIncludeExpansion = YES;// 如需后续支持扩展能力,插入前需要设置 + outgoing.disableUpdateLastMessage = YES; +*/ +- (void)insertMessage:(RCMessage *)message + successBlock:(void (^)(RCMessage *successMessage))successBlock + errorBlock:(void (^)(RCErrorCode errorCode))errorBlock; + + +/// 异步批量插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// RCMessage 下列属性会被入库,其余属性会被抛弃 +/// conversationType 会话类型 +/// targetId 会话 ID +/// messageUId 消息唯一 ID, 此属性入库 5.3.5 开始支持 +/// messageDirection 消息方向 +/// senderUserId 发送者 ID +/// receivedStatus[已废弃] 接收状态;消息方向为接收方,并且 receivedStatus 为 ReceivedStatus_UNREAD 时,该条消息未读 +/// receivedStatusInfo 接收状态对象;消息方向为接收方,并且 receivedStatusInfo.receivedStatus 为 0 时,该条消息未读 +/// sentStatus 发送状态 +/// content 消息的内容 +/// sentTime 消息发送的 Unix 时间戳,单位为毫秒,会影响消息排序 +/// extra RCMessage 的额外字段 +/// +/// - Parameter msgs: 插入的批量 RCMessage 数据(此方法不执行排重) +/// - Parameter completion: 完成回调 +/// +/// 此方法不支持聊天室和超级群的会话类型。每批最多处理 500 条消息,超过 500 条返回 NO +/// 消息的未读会累加到会话的未读数上 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)batchInsertMessage:(NSArray *)msgs completion:(nullable void (^)(BOOL ret))completion; + +/// 异步批量插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// RCMessage 下列属性会被入库,其余属性会被抛弃 +/// conversationType 会话类型 +/// targetId 会话 ID +/// messageUId 消息唯一 ID +/// messageDirection 消息方向 +/// senderUserId 发送者 ID +/// receivedStatus[已废弃] 接收状态;消息方向为接收方,并且 receivedStatus 为 ReceivedStatus_UNREAD 时,该条消息未读 +/// receivedStatusInfo 接收状态对象;消息方向为接收方,并且 receivedStatusInfo.receivedStatus 为 0 时,该条消息未读 +/// sentStatus 发送状态 +/// content 消息的内容 +/// sentTime 消息发送的 Unix 时间戳,单位为毫秒,会影响消息排序 +/// extra RCMessage 的额外字段 +/// +/// - Parameter msgs: 插入的批量 RCMessage 数据 +/// - Parameter checkDuplicate: 是否根据 messageUId 排重 +/// - Parameter completion: 完成回调 +/// +/// 此方法不支持聊天室和超级群的会话类型。每批最多处理 500 条消息,超过 500 条返回 NO +/// 消息的未读会累加到会话的未读数上 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.5 + +- (void)batchInsertMessage:(NSArray *)msgs + checkDuplicate:(BOOL)checkDuplicate + completion:(nullable void (^)(BOOL ret))completion; + +/// 根据文件 URL 地址下载文件内容 +/// +/// - Parameter fileName: 指定的文件名称 需要开发者指定文件后缀 (例如 rongCloud.mov) +/// - Parameter mediaUrl: 文件的 URL 地址 +/// - Parameter progressBlock: 文件下载进度更新的回调 [progress:当前的下载进度,0 <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 [mediaPath:下载成功后本地存放的文件路径 文件路径为文件消息的默认地址] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 此方法仅仅是文件下载器,不会操作消息体。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (void)downloadMediaFile:(NSString *)fileName + mediaUrl:(NSString *)mediaUrl + progress:(nullable void (^)(int progress))progressBlock + success:(nullable void (^)(NSString *mediaPath))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancel:(nullable void (^)(void))cancelBlock; + +/// 下载消息内容中的媒体信息 +/// +/// - Parameter conversationType: 消息的会话类型 +/// - Parameter targetId: 消息的会话 ID +/// - Parameter mediaType: 消息内容中的多媒体文件类型,目前仅支持图片 +/// - Parameter mediaUrl: 多媒体文件的网络 URL +/// - Parameter progressBlock: 消息下载进度更新的回调 [progress:当前的下载进度,0 +/// <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 +/// [mediaPath:下载成功后本地存放的文件路径] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 此方法仅仅是文件下载器,不会操作消息体。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (void)downloadMediaFile:(RCConversationType)conversationType + targetId:(NSString *)targetId + mediaType:(RCMediaType)mediaType + mediaUrl:(NSString *)mediaUrl + progress:(nullable void (^)(int progress))progressBlock + success:(nullable void (^)(NSString *mediaPath))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancel:(nullable void (^)(void))cancelBlock; + +/// 下载消息内容中的媒体信息 +/// +/// - Parameter message: 媒体消息 +/// - Parameter progressBlock: 消息下载进度更新的回调 [progress:当前的下载进度,0 <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 [mediaPath:下载成功后本地存放的文件路径] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 多媒体下载成功后,会更新消息体的 localPath。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)downloadMediaMessage:(RCMessage *)message + progressBlock:(nullable void (^)(int progress))progressBlock + successBlock:(nullable void (^)(NSString *mediaPath))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancelBlock:(nullable void (^)(void))cancelBlock; + +/// 取消发送中的媒体信息 +/// +/// - Parameter message: 媒体消息 +/// - Parameter successBlock: 取消成功 +/// - Parameter errorBlock: 取消失败 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.4 +- (void)cancelDownloadMediaMessage:(RCMessage *)message + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 取消下载中的媒体信息 +/// +/// - Parameter mediaUrl: 媒体消息 Url +/// - Parameter successBlock: 成功 +/// - Parameter errorBlock: 失败 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)cancelDownloadMediaUrl:(NSString *)mediaUrl + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 暂停下载中的媒体消息,如需继续下载重新调用 download 方法即可。 +/// +/// - Parameter message: 媒体消息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)pauseDownloadMediaMessage:(RCMessage *)message + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 暂停下载中的媒体消息,如需继续下载重新调用 download 方法即可。 +/// +/// - Parameter mediaUrl: 媒体消息 Url +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)pauseDownloadMediaUrl:(NSString *)mediaUrl + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 可通过此接口获取文件的下载信息,包含进度、已下载文件大小、总文件大小等。 +/// +/// 1. 调用 `downloadMediaMessage:progressBlock:successBlock:errorBlock:cancelBlock:` 接口下载的文件 +/// 传入 message.remoteUrl 获取 RCDownloadInfo; +/// 如需判断文件是否已下载,可通过 message.localPath 来判断文件是否存在。 +/// +/// 2. 调用 `downloadMediaFile:mediaUrl:progress:success:error:cancel:` 接口下载的文件 +/// 传入文件远端地址获取 RCDownloadInfo; +/// 如需判断文件是否已经下载过,可通过以下代码拼接出本地路径来判断文件是否存在。 +/// ``` +/// NSString *fileLocalPath = [RCUtilities getFileStoragePath]; +/// fileLocalPath = [fileLocalPath stringByAppendingPathComponent:fileName]; +/// ``` +- (nullable RCDownloadInfo *)getDownloadInfo:(NSString *)mediaUrl; + +/// 异步发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// 如果您使用 IMLibCore,可以使用此方法发送定向消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送定向消息,否则不会自动更新 UI。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送定向消息 +/// +/// - Parameter message: 消息实体 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送定向消息 +/// +/// - Parameter message: 消息实体 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送定向媒体消息(图片消息或文件消息) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 <= progress <= 100, progressMessage:消息实体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:消息实体] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLib,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMediaMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock; + +#pragma mark 消息接收监听 + +/// 添加 IMLib 接收消息监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)addReceiveMessageDelegate:(id)delegate + NS_SWIFT_NAME(addReceiveMessageDelegate(_:)); + +/// 移除 IMLib 接收消息监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)removeReceiveMessageDelegate:(id)delegate + NS_SWIFT_NAME(removeReceiveMessageDelegate(_:)); + +#pragma mark - 消息入库前预处理监听 +/// 设置消息拦截器 +/// +/// 可以设置并实现此拦截器来进行消息的拦截处理 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.2 +@property (nonatomic, weak, nullable) id messageInterceptor; + +#pragma mark - 发送消息被拦截监听 + +/// 设置发送消息被拦截的监听器 +/// +/// 可以设置并实现此拦截器来处理发送消息被拦截时的处理 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.4 +@property (nonatomic, weak, nullable) id messageBlockDelegate; + +#pragma mark - 消息阅读回执 + +/// 发送某个会话中消息阅读的回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 该会话中已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此接口只支持单聊,如果使用 IMLibCore 可以注册监听 +/// RCLibDispatchReadReceiptNotification 通知,使用 IMKit 直接设置 RCIM.h +/// 中的 enabledReadReceiptConversationTypeList。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendReadReceiptMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 请求消息阅读回执 +/// +/// - Parameter message: 要求阅读回执的消息 +/// - Parameter successBlock: 请求成功的回调 +/// - Parameter errorBlock: 请求失败的回调 [nErrorCode: 失败的错误码] +/// +/// 通过此接口,可以要求阅读了这条消息的用户发送阅读回执。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendReadReceiptRequest:(RCMessage *)message + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 发送阅读回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter messageList: 已经阅读了的消息列表 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 当用户阅读了需要阅读回执的消息,可以通过此接口发送阅读回执,消息的发送方即可直接知道那些人已经阅读。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendReadReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + messageList:(NSArray *)messageList + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 同步会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 已经阅读的最后一条消息的 Unix 时间戳,单位:毫秒 +/// - Parameter successBlock: 同步成功的回调 +/// - Parameter errorBlock: 同步失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)syncConversationReadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +#pragma mark - 消息撤回 + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter option: 撤回消息的配置项,无配置可传 nil +/// - Parameter pushContent: 当下发 push 消息时,在通知栏里会显示这个字段,不设置将使用融云默认推送内容。将优先使用 message.messagePushConfig.pushContent 否则才会使用该方法的 pushContent +/// - Parameter successBlock: 撤回成功的回调 [message:撤回的消息体。isDelete:NO 时,该消息已经变更为新的消息 `RCRecallNotificationMessage`; isDelete:YES 时,该消息已经被删除] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// +/// - Warning: 仅支持单聊、群组、聊天室和讨论组。 +/// +/// 如果需要使用该接口的 pushContent 生效,则需要将 message.messagePushConfig 置为 nil 或者直接修改 message.messagePushConfig.pushContent +/// +/// - Remark: 高级功能 +/// - Since: 5.16.0 +- (void)recallMessage:(RCMessage *)message + option:(nullable RCRecallMessageOption *)option + pushContent:(nullable NSString *)pushContent + success:(nullable void (^)(RCMessage *message))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter pushContent: 当下发 push 消息时,在通知栏里会显示这个字段,不设置将使用融云默认推送内容。将优先使用 message.messagePushConfig.pushContent 否则才会使用该方法的 pushContent +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID,该消息已经变更为新的消息 `RCRecallNotificationMessage`] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// +/// - Warning: 仅支持单聊、群组、聊天室和讨论组。 +/// +/// 如果需要使用该接口的 pushContent 生效,则需要将 message.messagePushConfig 置为 nil 或者直接修改 message.messagePushConfig.pushContent +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recallMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID,该消息已经变更为新的消息 `RCRecallNotificationMessage`] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// - Warning: 仅支持单聊、群组、聊天室和讨论组。 +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recallMessage:(RCMessage *)message + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +#pragma mark - 消息操作 + +/// 异步获取某个会话中指定数量的最新消息实体 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,从指定消息之前、指定数量的最新消息实体 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,oldestMessageId 之前的、指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 oldestMessageId 对应那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// 如: +/// oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,oldestMessageId 之前的、指定数量和消息类型的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 oldestMessageId 对应的那条消息,如果会话中的消息数量小于参数 count +/// 的值,会将该会话中的所有消息返回。 +/// 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter baseMessageId: 当前的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,baseMessageId +/// 之前或之后的、指定数量、消息类型和查询方向的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 baseMessageId 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectNames: 消息内容的类型名称列表 +/// - Parameter sentTime: 当前的消息时间戳,单位:毫秒 +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,sentTime +/// 之前或之后的、指定数量、指定消息类型(多个)的消息实体列表,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 sentTime 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 在会话中异步搜索指定消息的前 beforeCount 数量和后 afterCount +/// 数量的消息。返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter sentTime: 消息的发送时间,单位:毫秒 +/// - Parameter beforeCount: 指定消息的前部分消息数量 +/// - Parameter afterCount: 指定消息的后部分消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 获取该会话的这条消息及这条消息前 beforeCount 条和后 afterCount 条消息,如前后消息不够则返回实际数量的消息。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + + +/// 从服务器端清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter recordTime: 清除消息时间戳,【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 +/// 清除所有消息,其他值清除小于等于 recordTime 的消息】,单位:毫秒 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// +/// +/// 此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 清除成功后只能获取该时间戳之后的历史消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)clearRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + recordTime:(long long)recordTime + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter recordTime: 清除消息时间戳,【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 +/// 清除所有消息,其他值清除小于等于 recordTime 的消息】,单位:毫秒 +/// - Parameter clearRemote: 是否同时删除服务端消息 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [ status:清除失败的错误码] +/// +/// +/// 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 并设置 clearRemote 为 YES +/// 清除消息,成功后只能获取该时间戳之后的历史消息。如果 clearRemote 传 NO, +/// 只会清除本地消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)clearHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + recordTime:(long long)recordTime + clearRemote:(BOOL)clearRemote + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter recordTime: 截止的消息发送时间戳,单位:毫秒 +/// - Parameter count: 需要获取的消息数量,1 < count <= 100 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// 本地数据库可以查到的消息,该接口不会再返回,所以建议先用 getHistoryMessages +/// 相关接口取本地历史消息,本地消息取完之后再通过该接口获取远端历史消息 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + recordTime:(long long)recordTime + count:(int)count + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter option: 可配置的参数 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + option:(RCRemoteHistoryMsgOption *)option + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取历史消息 +/// 获取指定会话的连续消息,会先从本地数据库获取指定数量消息,然后根据这些消息所在会话的连续 +/// 置信区间来判断,这些消息中间是否有断档遗漏(即本地存储消息与服务端存储不同步)如果本地数据库的消息有断档, +/// 会触发一次从服务端获取断档处的消息,然后跟本地消息合并再返回给调用者。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码],参数合法性检查不通过会直接回调 errorBlock +/// +/// - Note: 以下为单群聊场景下的详细说明: +/// +/// 产生消息断档的典型情况有: +/// 1. 超过消息离线存储最长时间未登录。例如默认离线消息的最长存储时间是 7 天,若用户连续 10 天未登录,当再次登录时, +/// 服务器只会推送最近 7 天的离线消息,那么更早的 3 天内的消息本地就没有,这段期间称为断档。 +/// 2. 客户启用了群组离线消息存储条数配置。例如配置群组离线消息存储条数为 100 条,若用户离线期间, +/// 该群离线消息超过 100 条,当再次登录时,服务器只会推送最后的 100 条消息,那么更早的消息本地也没有,这段期间称为断档。 +/// +/// 本地存储消息是否断档的判断逻辑: +/// 当连接成功后,服务器主动下发消息分为两种情况,一种是单条直发,一种是通知拉取(一般是会话消息量较大的情况)。还有一种 +/// 是客户端主动拉取消息。对于通知拉取和主动拉取,服务端返回结果中都带有连续置信区间的起始和终止时间戳,客户端会将这段时 +/// 间记录在本地数据库中,视为该会话的连续置信区间。如果用户一直在线情况下,收到单条直发消息,也会将当前消息的时间戳与本 +/// 地存储的该会话置信区间做拼接,视为连续置信区间。当用户调用此接口时,会根据用户传入的获取消息条数 count 来从本地数据库 +/// 中获取,如果获取的所有消息时间戳都在连续置信区间内,就视为无断档,可直接返回给用户。否则会以断档处时间戳为起点,向服 +/// 务端拉取历史消息,拉回来消息的同时,会更新该会话的连续置信区间,并将入库类型消息与本地数据库的消息合并,再返回给用户。 +/// +/// 结果回调中,messages 为本次拉取到的消息列表,timestamp 为下次拉取的起始时间戳,isRemaining 为服务器是否还有未拉取的消息。 +/// 分为以下几种情况: +/// 1. messages 数量等于 count。代表本次的调用已拉取到 count 条消息,且消息是连续的。用户可根据 isRemaining +/// 结果决定是否要继续拉取。 +/// 2. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 false。 +/// 代表本次调用已拉取到所有连续消息,且服务端也无更多消息可供拉取。 +/// 3. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 true。 +/// 代表本次调用只拉取到这么多连续消息,虽然尝试从服务端拉取断档处消息,但拉回来的都是不存储类型的消息。 +/// 同时服务端还有更多消息可供拉取,需要用户使用返回的 timestamp 继续拉取。 +/// +/// 以下情况需要注意: +/// 1. 调用此接口返回的消息,会在本地标记为连续消息。如果后面调用了删除消息相关接口从本地数据库删除了已连续的消息, +/// 会认为此处仍然连续无断档。下次再调用此接口时,不会从服务端拉取此处已删除的消息。 +/// 2. 当用户一直在线时,如果服务端通过 ServerAPI 将当前用户踢出某群,过一段时间再加回来。 +/// 如果服务端执行以上操作的同时什么都不做,客户端是无感知的。用户在被踢出群的这段时间内,此群消息接收不到, +/// 等加回来后又可以收之后的消息,但 SDK 会认为此间消息一直连续无断档,下次调用此接口时,不会从服务端拉取退群期间的消息。 +/// 如果想补偿这段时间消息,需要调用拉取该时段的远端消息接口。为避免执行上述操作时,客户端无感知, +/// 建议在服务端执行踢人操作前,同时发送一条小灰条消息通知被踢人,避免用户误解。 +/// +/// - Warning: +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。当本地没有更多消息的时候,会从服务器拉取 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// 在获取远端消息的时候,可能会拉到信令消息,信令消息会被 SDK 排除掉,导致 messages.count 小于 option.count,此时只要 isRemaining 为 YES,那么下次拉取消息的时候,请用 timestamp 当做 option.recordTime 再去拉取;如果 isRemaining 为 NO,则代表远端不再有消息了 +/// +/// - Remark: 消息操作 +/// - Since: 5.14.0 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, long long timestamp, BOOL isRemaining, + RCErrorCode code))complete + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话中 @ 提醒自己的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法从本地获取被@提醒的消息 (最多返回 10 条信息) +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 +/// +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(NSArray *_Nullable messages))completion; +/// 异步获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter count: 未读的 @ 消息,取值范围 [1,100] +/// - Parameter desc: 是否是降序查 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 假如有 1000 条未读的 @ 消息,取 100 条未读 +/// desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 +/// desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 +/// +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 +/// - Since: 5.3.0 +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + desc:(BOOL)desc + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取消息的发送时间(Unix 时间戳、毫秒) +/// +/// - Parameter messageId: 消息 ID +/// - Parameter completion: 异步回调 [消息的发送时间(Unix 时间戳、毫秒)] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getMessageSendTime:(long)messageId completion:(nullable void (^)(long long time))completion; + +/// 异步通过 messageId 获取消息实体 +/// +/// - Parameter messageId: 消息 ID(数据库索引唯一值) +/// - Parameter completion: 异步回调 [消息实体,当获取失败的时候,会返回 nil] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getMessage:(long)messageId completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步通过全局唯一 ID 获取消息实体 +/// +/// - Parameter messageUId: 全局唯一 ID(服务器消息唯一 ID) +/// - Parameter completion: 异步回调 [消息实体,当获取失败的时候,会返回 nil] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getMessageByUId:(NSString *)messageUId completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// +/// 获取会话里第一条未读消息。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [第一条未读消息的实体] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步删除消息 +/// +/// - Parameter messageIds: 消息 ID 的列表,元素需要为 NSNumber 类型 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)deleteMessages:(NSArray *)messageIds completion:(nullable void (^)(BOOL ret))completion; + +/// 删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法删除数据库中该会话的消息记录,同时会整理压缩数据库,减少占用空间 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)deleteMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 批量删除某个会话中的指定远端消息(同时删除对应的本地消息) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 目标会话 ID +/// - Parameter messages: 将被删除的消息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法会同时删除远端和本地消息。 +/// 一次批量操作仅支持删除属于同一个会话的消息,请确保消息列表中的所有消息来自同一会话 +/// 一次最多删除 100 条消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)deleteRemoteMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + messages:(NSArray *)messages + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置消息的附加信息 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter value: 附加信息,最大 1024 字节 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于扩展消息的使用场景。只能用于本地使用,无法同步到远端。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)setMessageExtra:(long)messageId + value:(nullable NSString *)value + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置消息的接收状态 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于 UI 展示消息为已读,已下载等状态。 +/// 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存 +/// 可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)setMessageReceivedStatus:(long)messageId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置消息的发送状态 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter sentStatus: 消息的发送状态 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于 UI 展示消息为正在发送,对方已接收等状态。 +/// 为了保证 UI 正常显示,5.1.8 版本起不再支持 app 将消息状态设置为 SentStatus_SENDING +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)setMessageSentStatus:(long)messageId + sentStatus:(RCSentStatus)sentStatus + completion:(nullable void (^)(BOOL ret))completion; + +/// 开始焚烧消息(目前仅支持单聊) +/// +/// - Parameter message: 消息类 +/// 仅限接收方调用 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)messageBeginDestruct:(RCMessage *)message; + +/// 停止焚烧消息(目前仅支持单聊) +/// +/// - Parameter message: 消息类 +/// 仅限接收方调用 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)messageStopDestruct:(RCMessage *)message; + +#pragma mark - 会话列表操作 + +/// 获取 @我未读消息的会话列表 +/// - Parameters: param 详见 RCGetUnreadMentionMeConversationListParams 定义 +/// - completion: 异步回调 [会话 RCConversation 的列表] [code : 获取是否成功,0 表示成功,非 0 表示失败] +/// +/// - Since: 5.28.0 +- (void)getUnreadMentionMeConversationList:(RCGetUnreadMentionMeConversationListParams *)params + completion:(nullable void(^)(NSArray *conversations, + RCErrorCode code))completion; + + +/// 拉取远端会话列表 +/// - Parameters: +/// - successBlock: 接口调用成功的回调 +/// - errorBlock: 接口调用失败的回调 [携带错误码] +/// 此方法会从 IM 服务器中拉取会话列表。结果回调只代码接口是否成功,不会返回具体的会话列表数据。 +/// 拉取完成的回调,请监听 -[RCConversationDelegate remoteConversationListDidSync:] 。 +/// - Warning: 不支持超级群 +/// - Remark: 远端会话列表 +/// - Since 5.20.0 +- (void)getRemoteConversationListWithSuccess:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 异步获取会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: +/// 分页拉取会话列表,否则有可能造成内存过大。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步分页获取会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; +/// 异步分页获取会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒) +/// - Parameter topPriority: 查询结果的排序方式,是否置顶优先,传 true 表示置顶会话优先返回,否则结果只以会话时间排序 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// +/// - Remark: 会话列表 +/// - Since: 5.6.6 +- (void)getConversationList:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + topPriority:(BOOL)topPriority + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 获取所有的未读会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.2 +- (void)getUnreadConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取单个会话数据 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [会话的对象] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(RCConversation *_Nullable conversation))completion; + +/// 批量获取会话数据 +/// +/// - Parameter conversationIdentifiers: 会话信息列表,每次获取会话个数最大为 100 +/// - Parameter success: 成功回调 [会话的对象] +/// - Parameter error: 错误回调 [错误码] +/// +/// 此方法会从本地数据库中读取会话,支持单聊、群聊、系统会话。 +/// - Remark: 会话 +/// - Since: 5.8.2 +- (void)getConversations:(NSArray *)conversationIdentifiers + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话中的消息数量 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [会话中的消息数量] +/// +/// -1 表示获取消息数量出错。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(int count))completion; + +/// 异步获取会话中某段时间范围内的消息数量 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter conversationType 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter startTime 查询 startTime 之后的消息,startTime >= 0 +/// - Parameter endTime 查询 endTime 之前的消息,endTime > startTime +/// - Parameter success 异步回调 [会话中的消息数量] +/// - Parameter error 错误回调 [错误码] +/// +/// - Remark: 会话 +/// - Since: 5.6.4 +- (void)getMessageCountByTimeRange:(RCConversationType)conversationType + targetId:(NSString *)targetId + startTime:(long long)startTime + endTime:(long long)endTime + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除指定类型的会话 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// 此方法会从本地存储中删除该会话,同时删除会话中的消息。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearConversations:(NSArray *)conversationTypeList + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步删除本地和服务的会话 +/// +/// - Parameter conversationType: 会话类型 +/// - conversationType: 会话类型 +/// - targetId: 会话 ID +/// - isDeleteRemote: 是否删除服务的会话 +/// - successBlock: 删除成功的回调 +/// - errorBlock: 删除失败的回调 [携带错误码] +/// 此方法会删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// - Warning: 此方法会同时删除本地和服务的会话。如果服务的会话删除失败,本地的会话不会被删除 +/// SDK 在未连接的情况下,删除服务会话会失败 +/// +/// - Remark: 会话 +/// - Since: 5.10.2 +- (void)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + isDeleteRemote:(BOOL)isDeleteRemote + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + + +/// 批量删除会话 +/// - Parameters: RCConversationBatchDeletionParams: 批量删除会话的参数 +/// - params: 批量删除会话的参数,具体参数请参考 `RCConversationBatchDeletionParams` 类 +/// - successBlock: 删除成功的回调 +/// - errorBlock: 删除失败的回调 [携带错误码] +/// - Since 5.26.0 +- (void)batchDeleteConversations:(RCConversationBatchDeletionParams *)params + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter isTop: 是否置顶 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + isTop:(BOOL)isTop + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter isTop: 是否置顶 +/// - Parameter needUpdateTime: 是否更新时间 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + isTop:(BOOL)isTop + needUpdateTime:(BOOL)needUpdateTime + completion:(nullable void (^)(BOOL result))completion; + +/// 更新会话的置顶状态。 +/// - Parameters: +/// - conversationIdentifiers: 需要更新的会话。 +/// - isTop: 是否置顶。 +/// - option: 置顶状态信息。 +/// - completion: 结果回调。 +/// +/// - Since: 5.20.0 +- (void)setConversationsToTop:(NSArray *)conversationIdentifiers + isTop:(BOOL)isTop + option:(nullable RCConversationTopOption *)option + completion:(nullable void (^)(RCErrorCode code))completion; + +/// 异步获取置顶的会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [置顶的会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取置顶的会话列表。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getTopConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取会话的置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter completion: 异步回调 [是否获取成功] +/// +/// 此方法会从本地数据库中,读取该会话是否置顶。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + completion:(nullable void (^)(BOOL ret))completion; + +/// 设置实时会话监听 +/// - Parameter delegate: 代理 +/// - Since: 5.1.2 +- (void)setRCConversationDelegate:(nullable id)delegate; + +#pragma mark 会话中的草稿操作 + +/// 异步获取会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter completion: 异步回调 [该会话中的草稿] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(NSString *_Nullable draft))completion; + +/// 异步保存草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter content: 草稿信息 +/// - Parameter completion: 异步回调 [是否保存成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(NSString *)content + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步删除会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion; + +#pragma mark 未读消息数 + +/// 获取所有的未读消息数(聊天室会话除外) +/// - Parameter completion: 异步回调 [所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCountWith:(nullable void (^)(int unreadCount))completion; + +/// 异步获取某个会话内的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(int count))completion; + +/// 异步获取某个会话内的未读消息数 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter messageClassList: 消息类型数组 +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// 此方法不支持聊天室和超级群的会话类型。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + completion:(nullable void (^)(int count))completion; + +/// 异步获取某些会话的总未读消息数(聊天室会话除外) +/// +/// - Parameter conversations: 会话列表(RCConversation 对象只需要 conversationType 和 targetId,channelId 按需使用) +/// - Parameter completion: 异步回调 [传入会话列表的未读消息数] +/// +/// conversations 会话个数不能超过 300,超过会被截断。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCount:(NSArray *)conversations + completion:(nullable void (^)(int count))completion; + +/// 异步获取某些类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter isContain: 是否包含免打扰消息的未读数 +/// - Parameter completion: 异步回调 [该类型的会话中所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(NSArray *)conversationTypes + containBlocked:(bool)isContain + completion:(nullable void (^)(int count))completion; + +/// 异步获取某个类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter completion: 异步回调 [该类型的会话中所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(NSArray *)conversationTypes completion:(nullable void (^)(int count))completion; + +/// 异步获取某个类型的会话中所有未读的被@的消息数 +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter completion: 异步回调 [该类型的会话中所有未读的被@的消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadMentionedCount:(NSArray *)conversationTypes + completion:(nullable void (^)(int count))completion; + +/// 异步清除某个会话中的未读消息数 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + completion:(nullable void (^)(BOOL ret))completion; + +#pragma mark - 会话的消息提醒 + +/// 查询会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型(不支持聊天室,聊天室是不接受会话消息提醒的) +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 查询成功的回调 [nStatus:会话设置的消息提醒状态] +/// - Parameter errorBlock: 查询失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.0.0 +- (void)getConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取消息免打扰会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [消息免打扰会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取消息免打扰会话列表。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getBlockedConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +#pragma mark - 输入状态提醒 + +/// typing 状态更新的时间,默认是 6s +/// +/// - Remark: 功能设置 +/// - Since: 5.1.1 +@property (nonatomic, assign) NSInteger typingUpdateSeconds; + +/// 设置输入状态的监听器 +/// +/// - Parameter delegate: IMLibCore 输入状态的的监听器 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCTypingStatusDelegate:(nullable id)delegate; + +/// 向会话中发送正在输入的状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter objectName: 正在输入的消息的类型名 +/// +/// +/// contentType 为用户当前正在编辑的消息类型名,即 RCMessageContent 中 getObjectName 的返回值。 +/// 如文本消息,应该传类型名"RC:TxtMsg"。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendTypingStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + contentType:(NSString *)objectName; + +#pragma mark - 黑名单 + +/// 将某个用户加入黑名单 +/// +/// - Parameter userId: 需要加入黑名单的用户 ID +/// - Parameter successBlock: 加入黑名单成功的回调 +/// - Parameter errorBlock: 加入黑名单失败的回调 [status:失败的错误码] +/// +/// 将对方加入黑名单后,对方再发消息时,就会提示“您的消息已经发出,但被对方拒收”。但您仍然可以给对方发送消息。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)addToBlacklist:(NSString *)userId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + NS_SWIFT_NAME(addToBlacklist(_:success:error:)); + +/// 将某个用户移出黑名单 +/// +/// - Parameter userId: 需要移出黑名单的用户 ID +/// - Parameter successBlock: 移出黑名单成功的回调 +/// - Parameter errorBlock: 移出黑名单失败的回调 [status:失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)removeFromBlacklist:(NSString *)userId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + NS_SWIFT_NAME(removeFromBlacklist(_:success:error:)); + +/// 查询某个用户是否已经在黑名单中 +/// +/// - Parameter userId: 需要查询的用户 ID +/// - Parameter successBlock: 查询成功的回调 +/// [bizStatus:该用户是否在黑名单中。0 表示已经在黑名单中,101 表示不在黑名单中] +/// - Parameter errorBlock: 查询失败的回调 [status:失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)getBlacklistStatus:(NSString *)userId + success:(nullable void (^)(int bizStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 查询已经设置的黑名单列表 +/// +/// - Parameter successBlock: 查询成功的回调 +/// [blockUserIds:已经设置的黑名单中的用户 ID 列表] +/// - Parameter errorBlock: 查询失败的回调 [status:失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)getBlacklist:(nullable void (^)(NSArray *blockUserIds))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 推送业务数据统计 + +/// 统计本地通知的点击事件 +/// +/// - Parameter userInfo: 本地通知的内容 +/// +/// 此方法用于统计本地通知的点击率。 +/// + +/// 杀掉 app 通过 AppDelegate 的 -application:didFinishLaunchingWithOptions: 获取本地推送内容; +/// 如: +/// - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { +/// NSDictionary *userInfo; +/// if (@available(iOS 10.0, *)) { +/// userInfo = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]; +/// } else { +/// UILocalNotification *localNotification = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]; +/// userInfo = localNotification.userInfo; +/// } +/// if (userInfo) { +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:userInfo]; +/// } +/// return YES; +/// } +/// +/// app 在后台或者前台时,点击通知 +/// 在 iOS 10 以下版本中,通过在 AppDelegate 的 -application:didReceiveLocalNotification: 获取远程推送内容, +/// - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:notification.userInfo]; +/// } +/// +/// 在 iOS 10 及以上版本中,只通过在 AppDelegate 实现 UNUserNotificationCenterDelegate 的方法 -userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:,获取 response.notification.request.content.userInfo, +/// 如: +/// - (void)userNotificationCenter:(UNUserNotificationCenter *)center +/// didReceiveNotificationResponse:(UNNotificationResponse *)response +/// withCompletionHandler:(void (^)(void))completionHandler { +/// // 不需要 app 层区分本地通知和远程推送,recordLocalNotificationResponseEvent 内部判断只在本地时统计 +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:response.notification.request.content.userInfo]; +/// completionHandler(); +/// } +/// +/// - Since: 5.14.0 +- (void)recordLocalNotificationResponseEvent:(NSDictionary *)userInfo; + +/// 统计收到远程推送的事件 +/// +/// - Parameter userInfo: 远程推送的内容 +/// +/// 此方法用于统计融云推送服务的到达率。 +/// 如果您需要统计推送服务的到达率,需要在 App 中实现通知扩展,并在 NotificationService 的 -didReceiveNotificationRequest: withContentHandler: 中 +/// 先初始化 appkey 再调用此方法并将推送内容 userInfo 传入即可。 +/// +/// 如果有单独的统计服务地址,还需要在初始化之后设置独立的统计服务地址 +/// +/// 如: +/// +/// - (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { +/// self.contentHandler = contentHandler; +/// self.bestAttemptContent = [request.content mutableCopy]; +/// +/// NSDictionary *userInfo = self.bestAttemptContent.userInfo; +/// [[RCCoreClient sharedCoreClient] initWithAppKey:RONGCLOUD_IM_APPKEY]; +/// if (RONGCLOUD_STATS_SERVER.length > 0) { +/// [[RCCoreClient sharedCoreClient] setStatisticServer:RONGCLOUD_STATS_SERVER]; +/// } +/// [[RCCoreClient sharedCoreClient] recordReceivedRemoteNotificationEvent:userInfo]; +/// +/// self.contentHandler(self.bestAttemptContent); +/// } +/// +/// - Remark: 高级功能 +/// - Since: 5.1.3 +- (void)recordReceivedRemoteNotificationEvent:(NSDictionary *)userInfo; + +/// 统计远程推送的点击事件 +/// +/// - Parameter userInfo: 远程推送的内容 +/// +/// 此方法用于统计融云推送服务的点击率。 +/// 杀掉 app 通过 AppDelegate 的 -application:didFinishLaunchingWithOptions: 获取远程推送内容; + +/// - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { +/// NSDictionary *remoteNotification = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]; +/// if (remoteNotification) { +/// [[RCCoreClient sharedCoreClient] recordRemoteNotificationEvent:remoteNotification]; +/// } +/// return YES; +/// } +/// +/// app 在后台或者前台时,点击推送 +/// 在 iOS 10 以下版本中,通过在 AppDelegate 的 -application:didReceiveRemoteNotification: 获取远程推送内容, +/// - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { +/// [[RCCoreClient sharedCoreClient] recordRemoteNotificationEvent:userInfo]; +/// } +/// 在 iOS 10 及以上版本中,只通过在 AppDelegate 实现 UNUserNotificationCenterDelegate 的方法 -userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:,获取 response.notification.request.content.userInfo, +/// 如: +/// - (void)userNotificationCenter:(UNUserNotificationCenter *)center +/// didReceiveNotificationResponse:(UNNotificationResponse *)response +/// withCompletionHandler:(void (^)(void))completionHandler { +/// // 不需要 app 层区分本地通知和远程推送,recordLocalNotificationResponseEvent 内部判断只在远程推送时统计 +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:response.notification.request.content.userInfo]; +/// completionHandler(); +/// } +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recordRemoteNotificationEvent:(NSDictionary *)userInfo; + +/// 获取点击的启动事件中,融云推送服务的扩展字段 +/// +/// - Parameter launchOptions: App 的启动附加信息 +/// - Returns: 收到的融云推送服务的扩展字段,nil 表示该启动事件不包含来自融云的推送服务 +/// +/// 此方法仅用于获取融云推送服务的扩展字段。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (nullable NSDictionary *)getPushExtraFromLaunchOptions:(nullable NSDictionary *)launchOptions; + +/// 获取点击的远程推送中,融云推送服务的扩展字段 +/// +/// - Parameter userInfo: 远程推送的内容 +/// - Returns: 收到的融云推送服务的扩展字段,nil 表示该远程推送不包含来自融云的推送服务 +/// +/// 此方法仅用于获取融云推送服务的扩展字段。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (nullable NSDictionary *)getPushExtraFromRemoteNotification:(NSDictionary *)userInfo; + +#pragma mark - 工具类方法 + +/// 获取当前 IMLibCore SDK 的版本号 +/// +/// - Returns: 当前 IMLibCore SDK 的版本号,如:@"2.0.0" +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 ++ (NSString *)getVersion; + +/// 获取当前手机与服务器的时间差 +/// +/// - Parameter completion: 回调 +/// 消息发送成功后,SDK 会与服务器同步时间,消息所在数据库中存储的时间就是服务器时间,单位:毫秒。 +/// +/// - Remark: 数据获取 +/// - Since: 5.3.0 +- (void)getDeltaTime:(nullable void (^)(long long))completion; + +/// 将 AMR 格式的音频数据转化为 WAV 格式的音频数据,数据开头携带 WAVE 文件头 +/// +/// - Parameter data: AMR 格式的音频数据,必须是 AMR-NB 的格式 +/// - Returns: WAV 格式的音频数据 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (nullable NSData *)decodeAMRToWAVE:(NSData *)data; + +/// 将 AMR 格式的音频数据转化为 WAV 格式的音频数据,数据开头不携带 WAV 文件头 +/// +/// - Parameter data: AMR 格式的音频数据,必须是 AMR-NB 的格式 +/// - Returns: WAV 格式的音频数据 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (nullable NSData *)decodeAMRToWAVEWithoutHeader:(NSData *)data; + +#pragma mark - 语音消息设置 + +/// 语音消息类型,默认 RCVoiceMessageTypeHighQuality +/// +/// 老版本 SDK 不兼容新版本语音消息 +/// 2.9.19 之前的版本无法播放高音质语音消息; +/// 2.9.19 及之后的版本可以同时兼容普通音质语音消息和高音质语音消息; +/// 客服会话类型 (ConversationType_CUSTOMERSERVICE) 不支持高音质语音消息。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +@property (nonatomic, assign) RCVoiceMessageType voiceMsgType; + +#pragma mark - 搜索 + +/// 搜索本地消息。 +/// +/// - Parameters: +/// - params: 搜索参数。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.22.0 +- (void)searchMessagesWithParams:(RCSearchMessageParams *)params + completionHandler:(RCSearchMessageListCompletion)completionHandler; + +/// 根据关键字异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间),单位:毫秒 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据时间,偏移量和个数异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 +/// - Parameter startTime: 查询 startTime 之后的消息,startTime >= 0,单位:毫秒 +/// - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime,单位:毫秒 +/// - Parameter offset: 查询的消息的偏移量,offset >= 0 +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 按用户 ID 异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter userId: 搜索用户 ID +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间),单位:毫秒 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据关键字搜索指定会话中,指定消息类型的本地历史消息 +/// +/// - Parameter conversationIdentifier: 会话类型、会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值),非空 +/// - Parameter limit: 最大的查询数量 [最大 100,超过则使用 100] +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索),单位:毫秒 +/// - Parameter success: 异步成功回调 [匹配的消息列表] +/// - Parameter error: 异步失败回调 [错误码] +/// +/// 超级群会话类型只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.8.1 +- (void)searchMessages:(RCConversationIdentifier *)conversationIdentifier + keyword:(NSString *)keyword + objectNameList:(NSArray *)objectNameList + limit:(int)limit + startTime:(long long)startTime + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 根据关键字异步搜索会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值) +/// - Parameter keyword: 关键字,非空 +/// - Parameter completion: 异步回调 [匹配的会话搜索结果列表] +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchConversations:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + completion:(nullable void (^)(NSArray *_Nullable results))completion; +#pragma mark - 日志 + +/// 设置日志级别 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +@property (nonatomic, assign) RCLogLevel logLevel; + +/// 设置 IMLibCore 日志的监听器 +/// +/// - Parameter delegate: IMLibCore 日志的监听器 +/// +/// 您可以通过 logLevel 来控制日志的级别。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCLogInfoDelegate:(nullable id)delegate; + +#pragma mark - File Storage + +/// 文件消息下载路径 +/// +/// 默认值为沙盒下的 Documents/MyFile 目录。您可以通过修改 RCConfig.plist 中的 RelativePath 来修改该路径。 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +@property (nonatomic, strong, readonly) NSString *fileStoragePath; + +#pragma mark - 第三方平台厂商接口 +/// 获取 Vendor token. 仅供融云第三方服务厂家使用。 +/// +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (void)getVendorToken:(nullable void (^)(NSString *vendorToken))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 远程推送相关设置 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +@property (nonatomic, strong, readonly) RCPushProfile *pushProfile; + +#pragma mark - 历史消息 + +/// 设置离线消息在服务端的存储时间(以天为单位) +/// +/// - Parameter duration: 存储时间,范围【1~7 天】 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setOfflineMessageDuration:(int)duration + success:(nullable void (^)(void))successBlock + failure:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 获取离线消息时间(以天为单位) +/// +/// - Returns: 离线消息存储时间 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (int)getOfflineMessageDuration; + +/// 异步获取离线消息时间(以天为单位) +/// - Parameter completion: 异步回调 [离线消息存储时间] +/// +/// - Remark: 数据获取 +/// - Since: 5.3.0 +- (void)getOfflineMessageDuration:(nullable void (^)(int duration))completion; + +/// 上报客户 App 版本信息。服务端支持按上报的 App 版本处理自定义消息的推送内容。 +/// +/// setAppVer 接口需要在 connect 接口前调用 +/// - Parameter appVer: 用户 APP 的版本信息,String 类型,非空,长度小于 20,示例如 "1.1.0"。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setAppVer:(NSString *)appVer; + +/// GIF 消息大小限制,以 KB 为单位,超过这个大小的 GIF 消息不能被发送 +/// +/// - Returns: GIF 消息大小,以 KB 为单位 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (NSInteger)getGIFLimitSize; + +/// 小视频消息时长限制,以 秒 为单位,超过这个时长的小视频消息不能在相册中被选择发送 +/// +/// - Returns: 小视频消息时长,以 秒 为单位 +/// - Since: 5.1.0 +- (NSTimeInterval)getVideoDurationLimit; + +#pragma mark - 会话状态同步,免打扰,置顶 + +/// 设置会话状态(包含置顶,消息免打扰)同步的监听器 +/// +/// - Parameter delegate: 会话状态同步的监听器 +/// +/// 可以设置并实现此 delegate 来进行会话状态同步。SDK 会在回调的 conversationStatusChange:方法中通知您会话状态的改变。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCConversationStatusChangeDelegate:(nullable id)delegate; + +/// 添加会话状态(包含置顶,消息免打扰)同步的监听器。 +/// +/// - Parameter delegate: 会话状态同步的监听器。 +/// +/// - Since: 5.24.0 +- (void)addConversationStatusChangeDelegate:(nullable id)delegate + NS_SWIFT_NAME(addConversationStatusChangeDelegate(_:)); + +/// 移除会话状态(包含置顶,消息免打扰)同步的监听器。 +/// +/// - Parameter delegate: 会话状态同步的监听器。 +/// +/// - Since: 5.24.0 +- (void)removeConversationStatusChangeDelegate:(nullable id)delegate + NS_SWIFT_NAME(removeConversationStatusChangeDelegate(_:)); + +#pragma mark - 消息扩展 + +/// 更新消息扩展信息 +/// +/// - Parameter expansionDic: 要更新的消息扩展信息键值对 +/// - Parameter messageUId: 消息 messageUId +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Warning: 调用更新扩展的一方必须通过 successBlock 来处理本端的数据刷新。仅被动接收扩展变更的用户(包含本用户的其他端)通过监听方法 [RCMessageExpansionDelegate messageExpansionDidUpdate:message:] 获取通知。 +/// +/// 消息扩展信息是以字典形式存在。设置的时候从 expansionDic 中读取 key,如果原有的扩展信息中 key 不存在则添加新的 KV 对,如果 key 存在则替换成新的 value。 +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +/// 扩展信息字典中的 Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 32;Value 最长长度,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)updateMessageExpansion:(NSDictionary *)expansionDic + messageUId:(NSString *)messageUId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除消息扩展信息中特定的键值对 +/// +/// - Parameter keyArray: 消息扩展信息中待删除的 key 的列表 +/// - Parameter messageUId: 消息 messageUId +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Warning: 调用删除扩展的一方必须通过 successBlock 来处理本端的数据刷新。仅被动接收扩展变更的用户(包含本用户的其他端)通过监听方法 [RCMessageExpansionDelegate messageExpansionDidRemove:message:] 通知的 +/// +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)removeMessageExpansionForKey:(NSArray *)keyArray + messageUId:(NSString *)messageUId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置 IMLibCore 的消息扩展监听器 +/// +/// 代理回调在非主线程 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +@property (nonatomic, weak, nullable) id messageExpansionDelegate; + +#pragma mark - 标签 +/// 添加标签 +/// +/// - Parameter tagInfo: 标签信息。只需要设置标签信息的 tagId 和 tagName。 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 最多支持添加 20 个标签 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)addTag:(RCTagInfo *)tagInfo + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 移除标签 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)removeTag:(NSString *)tagId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 更新标签信息 +/// +/// - Parameter tagInfo: 标签信息。只支持修改标签信息的 tagName +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)updateTag:(RCTagInfo *)tagInfo + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取标签列表 +/// - Parameter completion: 异步回调 [标签列表] +/// +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getTags:(nullable void (^)(NSArray *))completion; + +/// 标签变化监听器 +/// +/// 标签添加移除更新会触发此监听器,用于多端同步 +/// 本端添加删除更新标签,不会触发此监听器,在相关调用方法的 block 块直接回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +@property (nonatomic, weak, nullable) id tagDelegate; + +/// 添加会话到指定标签 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter conversationIdentifiers: 会话信息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 每次添加会话个数最大为 1000。最多支持添加 1000 个会话,如果标签添加的会话总数已超过 1000,会自动覆盖早期添加的会话 +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)addConversationsToTag:(NSString *)tagId + conversationIdentifiers:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 从指定标签移除会话 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter conversationIdentifiers: 会话信息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 每次移除会话个数最大为 1000 +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)removeConversationsFromTag:(NSString *)tagId + conversationIdentifiers:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 从指定会话中移除标签 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter tagIds: 标签 ID 列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)removeTagsFromConversation:(RCConversationIdentifier *)conversationIdentifier + tagIds:(NSArray *)tagIds + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 异步获取会话的所有标签 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter completion: 异步回调 [会话所属的标签列表] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getTagsFromConversation:(RCConversationIdentifier *)conversationIdentifier + completion:(nullable void (^)(NSArray *_Nullable results))completion; + +/// 异步分页获取标签中会话列表 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter timestamp: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒) +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getConversationsFromTagByPage:(NSString *)tagId + timestamp:(long long)timestamp + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable results))completion; + +/// 异步分页获取未打标签的会话列表。 +/// +/// - Parameter timestamp: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒)。 +/// - Parameter count: 获取的数量,有效值 [1, 100]。(当实际取回的会话数量小于 count 值时,表明已取完数据)。 +/// - Parameter topPriority: 查询结果的排序方式,是否置顶优先,传 YES 表示置顶会话优先返回,否则结果只以会话时间排序。 +/// - Parameter completion: 异步回调 [ 会话 RCConversation 的列表 ]。 +/// +/// - Note: `count` 小于 1 时,取 20,大于 100 时,取 100。 +/// +/// - Remark: 高级功能 +/// +/// - Since: 5.7.8 +- (void)getUntaggedConversationListByPage:(long long)timestamp + count:(NSInteger)count + topPriority:(BOOL)topPriority + completionHandler: + (void (^)(NSArray *conversations, RCErrorCode code))completionHandler; + +/// 异步获取标签中会话消息未读数 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter isContain: 是否包含免打扰会话 +/// - Parameter completion: 异步回调 [会话消息未读数] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getUnreadCountByTag:(NSString *)tagId + containBlocked:(BOOL)isContain + completion:(nullable void (^)(int count))completion; + +/// 设置标签中的会话置顶 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter top: 是否置顶 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)setConversationToTopInTag:(NSString *)tagId + conversationIdentifier:(RCConversationIdentifier *)conversationIdentifier + isTop:(BOOL)top + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 异步获取标签中的会话置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter tagId: 标签 ID +/// - Parameter completion: 异步回调 [置顶状态] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getConversationTopStatusInTag:(RCConversationIdentifier *)conversationIdentifier + tagId:(NSString *)tagId + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步清除标签对应会话的未读消息数 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatusByTag:(NSString *)tagId completion:(nullable void (^)(BOOL ret))completion; + + +/// 删除标签对应的会话 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter option: 可配置的参数 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.5 +- (void)clearConversationsByTag:(NSString *)tagId + option:(RCClearConversationOption *)option + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 会话标签变化监听器 +/// +/// 会话标签添加移除更新会触发此监听器,用于多端同步 +/// 本端操作会话标签,不会触发此监听器,在相关调用方法的 block 块直接回调 +/// +/// 此监听器仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +@property (nonatomic, weak, nullable) id conversationTagDelegate; + +/// 缩略图压缩配置 +/// +/// - Remark: 缩略图压缩配置,如果此处设置了配置就按照这个配置进行压缩。如果此处没有设置,会按照 RCConfig.plist 中的配置进行压缩。 +/// - Since: 5.1.1 +@property (nonatomic, strong, nullable) RCImageCompressConfig *imageCompressConfig; + +/// 子模块是否正在使用声音通道,特指 RTCLib +/// - Since: 5.1.2 +- (BOOL)isAudioHolding; + +/// 子模块是否正在使用摄像头,特指 RTCLib +/// - Since: 5.1.2 +- (BOOL)isCameraHolding; + +#pragma mark - socks proxy +/// 在初始化之前设置代理,目前仅支持 socks5 代理 +/// 设置 socks 代理 +/// - Returns: 代理设置是否成功 +/// - Parameter proxy: RCIMProxy 具体的代理配置,为空或者无效则代表为取消代理设置 +/// +/// 不需认证的代理,只需要设置代理信息的 host 和 port;如需认证还需设置 userName 和 password。 +/// 如果需要再次设置代理,那么 app 先要 disconnect 将上次连接给断掉再设置 并且需要设置代理后需要重新调用 connect 接口,SDK 使用新代理连接 +/// +/// - Warning: 建议开发者在 testProxy 成功后再调用该接口设置代理,以此来保证用户手动输入的代理是正确的 +/// // 如果开发者设置错误的 proxy,SDK 也会直接使用,出现问题就是 SDK 连接不上 +/// // SDK 的代理设置只保存在内存中,杀死 app 重打开代理就失效了,需要 app 每次启动后重新设置 +/// - Remark: 高级功能 +/// - Since: 5.3.0 + +- (BOOL)setProxy:(nullable RCIMProxy *)proxy; + +/// 获取当前 socks 代理配置 +/// +/// - Returns: getCurrentProxy RCIMProxy 具体的代理配置 +/// - Remark: 高级功能 +/// - Since: 5.3.0 + +- (nullable RCIMProxy *)getCurrentProxy; + +/// 检测代理是否可用,SDK 使用代理参数连接 testHost,检测代理配置是否可用 +/// 检测 http 协议的可用性,不支持验证 tcp udp 的有效性验证 +/// +/// - Parameter proxy: RCIMProxy 具体的代理配置,proxy 必须为有效值,否则返回失败回调 +/// - Parameter testHost: NSString 建议设置为 AppServer 的域名,需要 http 头或者 https 头,否则 SDK 会为其拼接 https:// 前缀 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// callback 测试结果,超时时间 5 秒,callback 在非 UI 线程返回 +/// - Remark: 高级功能 +/// - Since: 5.3.0 + +- (void)testProxy:(RCIMProxy *)proxy + testHost:(NSString *)testHost + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode code))errorBlock; + +/// 配置 AppGroupId 与代理 +/// +/// - Parameter identifier: AppGroupId +/// - Parameter isMainApp: 是否为宿主 app +/// +/// 保存 AppGroupId,并设置 APP & NotificationService 的跨进程监听 +/// 该方法仅限于推送统计,若无统计需求无需调用 +/// 当做推送到达统计时需要同时做到两点 +/// 1. 在 push extension 中初始化后先调用该接口,再调用 recordReceivedRemoteNotificationEvent 方法 +/// 2. 在主进程中在初始化后调用该接口 +/// +/// - Since: 5.3.0 +- (void)configApplicationGroupIdentifier:(NSString *)identifier isMainApp:(BOOL)isMainApp API_AVAILABLE(ios(10.0)); + +#pragma mark - 已读回执V4 + + +/// 获取某条消息的已读回执信息 +/// - Parameters: +/// - targetId: 会话 ID +/// - channelId: 业务 ID +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 +- (void)getMessageReadReceiptV4:(nonnull NSString *)targetId + messageUID:(nonnull NSString *)messageUID + successBlock:(nullable void (^)(NSInteger readCount, NSInteger totalCount, + NSArray *list))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 发送消息的已读回执,会将区间内的消息在服务端全部添加已读状态,本地不进行处理。需要 lib 自己调用清除未读等相关接口处理其他业务。 +/// - Parameters: +/// - conversationType: 会话类型 +/// - targetId: 会话 ID +/// - startMessageUID: 开始的消息 UID +/// - endMessageUID: 结束的消息 UID +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 +- (void)sendReadReceiptMessageV4:(RCConversationType)conversationType + targetId:(nonnull NSString *)targetId + startMessageUID:(nullable NSString *)startMessageUID + endMessageUID:(nonnull NSString *)endMessageUID + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/// v4 已读回执代理 +/// - Parameter delegate: 代理 +/// - Since: 5.6.7 +- (void)setReadReceiptV4Delegate:(nullable id)delegate; + +/// 已读状态代理 (设置该代理可忽略 RCLibDispatchReadReceiptNotification) +/// - Parameter delegate: 代理 +/// - Since: 5.6.7 +- (void)setConversationReadStatusDelegate: + (nullable id)delegate; + +#pragma mark - 订阅事件相关 + +/// 订阅事件。 +/// 当订阅事件的状态发生变化时,将通过回调接口通知调用者。 +/// 订阅接口 一次最多订阅 200 个订阅对象,订阅上限查看开发文档 +/// +/// - Parameter request: 订阅请求对象,包含了需要订阅事件状态的必要信息。 +/// request 必须包含(subscribeType、expiry、userIds) +/// - Parameter completion: 结果回调,用于接收订阅操作的结果或状态更新通知。 +/// - Since: 5.8.1 +- (void)subscribeEvent:(RCSubscribeEventRequest *)request + completion:(void (^)(RCErrorCode status, NSArray *_Nullable failedUserIds))completion; + + +/// 取消订阅事件。 +/// +/// - Parameter request: 取消订阅的请求对象,包含了需要取消订阅事件状态的必要信息。 +/// request 必须包含(subscribeType、userIds) +/// - Parameter completion: 结果回调,用于接收取消订阅操作的结果。 +/// - Since: 5.8.1 +- (void)unSubscribeEvent:(RCSubscribeEventRequest *)request + completion:(void (^)(RCErrorCode status, NSArray *_Nullable failedUserIds))completion; + +/// 查询已订阅事件状态数据。 +/// 此方法用于获取指定对象,指定订阅类型的订阅事件状态信息。 +/// +/// - Parameter request: 查询请求对象,可按订阅类型、指定对象,查询具体订阅事件状态信息。 +/// request 必须包含(subscribeType、userIds) +/// - Parameter completion: 查询操作完成后,订阅事件状态的列表通过此回调返回。 +/// - Since: 5.8.1 +- (void)querySubscribeEvent:(RCSubscribeEventRequest *)request + completion:(void (^)(RCErrorCode status, + NSArray *_Nullable subscribeEvents))completion; + +/// 分页查询已订阅的所有事件状态数据。 +/// 此方法用于分页获取指定订阅类型的所有订阅事件状态信息。 +/// +/// - Parameter request: 查询请求对象,可按订阅类型,查询所有具体订阅事件状态信息。 +/// request 必须包含(subscribeType) +/// - Parameter pageSize: 分页大小 [1~200]。 +/// - Parameter startIndex: 第一页传 0,下一页取返回所有数据的数组数量(比如 pageSize = 20,第二页传 20,第三页传 40)。 +/// - Parameter completion: 查询操作完成后,订阅事件状态的列表通过此回调返回。 +/// +/// ```objc +///@property (nonatomic, strong) NSMutableArray *subscribeEventList; +///- (void)queryAllSubscribeEventWithStartIndex:(NSInteger)index { +/// RCSubscribeEventRequest *request = [[RCSubscribeEventRequest alloc] init]; +/// request.subscribeType = RCSubscribeTypeOnlineStatus; +/// [[RCCoreClient sharedCoreClient] querySubscribeEvent:request pageSize:20 startIndex:index completion:^(RCErrorCode status, NSArray * _Nullable subscribeEvents) { +/// if (RC_SUCCESS == status && subscribeEvents.count > 0) { +/// [self.subscribeEventList addObjectsFromArray:subscribeEvents]; +/// [self queryAllSubscribeEventWithStartIndex:self.subscribeEventList.count]; +/// } +/// }]; +///} +/// +/// ``` +/// +/// - Since: 5.8.1 +- (void)querySubscribeEvent:(RCSubscribeEventRequest *)request + pageSize:(NSInteger)pageSize + startIndex:(NSInteger)startIndex + completion:(nullable void (^)(RCErrorCode status, + NSArray *_Nullable subscribeEvents))completion; + +/// 添加订阅事件监听器。 +/// 用于添加一个监听器来接收所有订阅的用户状态变化事件。 +/// +/// - Parameter delegate: 订阅事件监听器。 +/// - Since: 5.8.1 +- (void)addSubscribeEventDelegate:(id)delegate NS_SWIFT_NAME(addSubscribeEventDelegate(_:)); + +/// 移除订阅事件监听器。 +/// +/// - Parameter delegate: 订阅事件监听器。 +/// - Since: 5.8.1 +- (void)removeSubscribeEventDelegate:(id)delegate + NS_SWIFT_NAME(removeSubscribeEventDelegate(_:)); + +/// 查询已订阅用户的在线状态 +/// - Parameters: +/// - userIds: 用户id集合,限制范围在 [0 ~ 200] 超出限制或者长度为0 会报错 34215 +/// - completion: 结果回调 +/// - Since: 5.28.0 +- (void)getSubscribeUsersOnlineStatus:(NSArray *)userIds + completion:(void(^)(RCErrorCode code, + NSArray *status))completion; +#pragma mark - 用户信息托管 + +/// 设置自己的信息访问权限 +/// +/// - Parameter visibility: 用户信息的访问权限 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)updateMyUserProfileVisibility:(RCUserProfileVisibility)visibility + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取自己的信息访问权限 +/// +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)getMyUserProfileVisibility:(nullable void (^)(RCUserProfileVisibility visibility))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 修改自己的用户信息 +/// +/// - Parameter profile: 用户信息 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.16.0 +- (void)updateMyUserProfile:(RCUserProfile *)profile + successBlock:(nullable void (^)(void))successBlock + errorBlock: + (nullable void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + +/// 查询自己的用户信息 +/// +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)getMyUserProfile:(nullable void (^)(RCUserProfile *userProfile))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 批量获取用户信息 +/// +/// - Parameter userIds: 用户 ID 列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)getUserProfiles:(NSArray *)userIds + success:(nullable void (^)(NSArray *userProfiles))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + + +/// 按用户应用号精确搜索 +/// +/// - Parameter uniqueId: 用户应用号 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调,如果搜不到用户,会返回错误码 RC_USER_PROFILE_USER_NOT_EXIST (24366) +/// +/// - Since: 5.10.0 +- (void)searchUserProfileByUniqueId:(NSString *)uniqueId + success:(nullable void (^)(RCUserProfile *userProfile))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +#pragma mark - 数据库 + +/// 添加数据库状态监听器(连接前调用) +/// +/// - Parameter delegate: 添加数据库状态监听器。 +/// - Since: 5.10.4 +- (void)addDatabaseStatusDelegate:(id)delegate NS_SWIFT_NAME(addDatabaseStatusDelegate(_:)); + +/// 移除数据库状态监听器 +/// +/// - Parameter delegate: 数据库状态监听器。 +/// - Since: 5.10.4 +- (void)removeDatabaseStatusDelegate:(id)delegate + NS_SWIFT_NAME(removeDatabaseStatusDelegate(_:)); + +#pragma mark - Group + +/// 添加群组事件回调代理 +/// - Since: 5.12.0 +- (void)addGroupEventDelegate:(id)delegate NS_SWIFT_NAME(addGroupEventDelegate(_:)); + +/// 移除群组事件回调代理 +/// - Since: 5.12.0 +- (void)removeGroupEventDelegate:(id)delegate NS_SWIFT_NAME(removeGroupEventDelegate(_:)); + +/// 创建群组 +/// - Parameter groupInfo: 群组信息及权限,groupId、groupName 必填,否则创建失败 +/// - Parameter inviteeUserIds: 被邀请的用户 Id 列表,可以为空,一次最多允许 30 个用户加入。 +/// - Parameter success: 成功回调。 +/// - Parameter error: 失败回调 +/// +/// - Note: +/// +/// **`groupInfo` 参数说明** +/// - `groupId` 最大长度 64 个字符。支持大小写英文字母与数字的组合 +/// - `groupName` 最长不超过 64 个字符,群名称可以重复创建 +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `inviteHandlePermission` 为被邀请人需要同意才能进群时,`processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` ( 25427 ),表示需要被邀请人同意后才能进入群组。 +/// - 当群组的 `inviteHandlePermission` 为不需被邀请人同意时,`processCode` 返回 RC_SUCCESS ( 0 ),被邀请人会直接加入群组。 +/// - Since: 5.16.0 +- (void)createGroup:(RCGroupInfo *)groupInfo + inviteeUserIds:(nullable NSArray *)inviteeUserIds + successBlock:(void (^)(RCErrorCode processCode))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + + +/// 更新群组信息 +/// - Parameter groupInfo: 群组信息,groupId 必填,否则更新失败 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.16.0 +- (void)updateGroupInfo:(RCGroupInfo *)groupInfo + successBlock:(void (^)(void))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock + NS_SWIFT_NAME(updateGroupInfo(_:successBlock:errorBlock:)); + +/// 批量获取群组资料 +/// - Parameter groupIds: 群组 ID 列表,一次最多允许 20 个群组 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Note: 每秒钟最多查询 5 次 +/// - Since: 5.12.0 +- (void)getGroupsInfo:(NSArray *)groupIds + success:(void (^)(NSArray *groupInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 踢出群成员 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,一次最多允许 100 个用户 +/// - Parameter config: 移除成员配置 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)kickGroupMembers:(NSString *)groupId + userIds:(NSArray *)userIds + config:(nullable RCQuitGroupConfig *)config + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 主动退出群组 +/// 用户退出后,群会话信息仍然保留,但不再能接收此群的消息,本地历史消息不删除 +/// - Parameter groupId: 群组 ID +/// - Parameter config: 退出群组配置 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)quitGroup:(NSString *)groupId + config:(nullable RCQuitGroupConfig *)config + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 解散群组 +/// 只有群主,可以解散自已创建的群组 +/// - Parameter groupId: 群组 ID,必填项 +/// - Parameter success: 成功回调,无参数 +/// - Parameter error: 失败回调,包含错误信息 +/// +/// - Since: 5.12.0 +- (void)dismissGroup:(NSString *)groupId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 转让群组 +/// - Parameter groupId: 群组 ID +/// - Parameter newOwnerId: 新群主用户 ID +/// - Parameter quitGroup: 是否退出群组 +/// - Parameter config: 转让群组配置 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)transferGroupOwner:(NSString *)groupId + newOwnerId:(NSString *)newOwnerId + quitGroup:(BOOL)quitGroup + config:(nullable RCQuitGroupConfig *)config + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 添加群管理员 +/// - Parameter groupId: 群组 ID,必填项 +/// - Parameter userIds: 用户 ID 数组,必填项。用户 ID 必须为群成员,一次最多设置 10 个群成员为管理员,管理员上限为 10 个。群主不支持设置为管理员 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调,包含错误信息 +/// +/// - Since: 5.12.0 +- (void)addGroupManagers:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 移除群管理员 +/// - Parameter groupId: 群组 ID,必填项 +/// - Parameter userIds: 用户 ID 数组,必填项。一次最多操作 10 个管理员 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调,包含错误信息 +/// +/// - Since: 5.12.0 +- (void)removeGroupManagers:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 分页获取群成员信息 +/// - Parameter groupId: 群组 ID +/// - Parameter role: 群成员角色 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 100 条)、是否正序查询(默认按加入群组时间倒序) +/// - Parameter successBlock: 成功回调,此接口不返回分页数据的总条数 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupMembersByRole:(NSString *)groupId + role:(RCGroupMemberRole)role + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock + NS_SWIFT_NAME(getGroupMembersByRole(_:role:option:success:error:)); + + +/// 获取已加入指定群成员信息 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,一次最多不超过 100 个 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupMembers:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(NSArray *groupMembers))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置群成员资料 +/// - Parameter groupId: 群组 ID +/// - Parameter userId: 用户 ID,必填项,支持传入当前登录用户 ID +/// - Parameter nickname: 用户昵称,非必填项,长度不超过 64 个字符,传 nil 或 空字符串表示移除用户昵称 +/// - Parameter extra: 附加信息,非必填项,长度不超过 128 个字符 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.16.0 +- (void)setGroupMemberInfo:(NSString *)groupId + userId:(NSString *)userId + nickname:(nullable NSString *)nickname + extra:(nullable NSString *)extra + successBlock:(void (^)(void))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + +/// 根据群成员昵称查询群成员 +/// - Parameter groupId: 群组 ID +/// - Parameter name: 群成员昵称,必填,不能为空最长不超过 64 个字符。 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 200 条)、是否正序查询(默认倒序) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: 优先匹配群成员昵称 nickname,再匹配群成员用户名 name。只要其中一个字段匹配成功,即返回搜索结果。 +/// - Since: 5.12.0 +- (void)searchGroupMembers:(NSString *)groupId + name:(NSString *)name + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + + +/// 主动加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter successBlock: 成功回调。 +/// - Parameter errorBlock: 失败回调 +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `joinPermission` 为需要群主或管理员审批时,`processCode` 返回 `RC_GROUP_JOIN_GROUP_NEED_MANAGER_ACCEPT` ( 25424 ),表示需要等待群主或管理员的审批。 +/// - 当群组的 `joinPermission` 为不用验证时,`processCode` 返回 RC_SUCCESS ( 0 ),表示加入群组成功。 +/// - Since: 5.12.0 +- (void)joinGroup:(NSString *)groupId + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 邀请用户加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,一次最多不超过 30 个 +/// - Parameter successBlock: 邀请成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `joinPermission` 为需要群主或管理员审批时,`processCode` 返回 `RC_GROUP_JOIN_GROUP_NEED_MANAGER_ACCEPT` ( 25424 ),表示需要等待群主或管理员审批。 +/// - 当群组的 `joinPermission` 为不用验证,同时 `inviteHandlePermission` 为需要被邀请人同意时,`processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` ( 25427 ),表示需要被邀请人同意后才能进入群组。 +/// - Since: 5.12.0 +- (void)inviteUsersToGroup:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 用户同意加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请者 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)acceptGroupInvite:(NSString *)groupId + inviterId:(NSString *)inviterId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 用户拒绝加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请者 ID +/// - Parameter reason: 拒绝原因,非必填项,拒绝时可选择是否输入拒绝原因,内容不超过 128 个字符。 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)refuseGroupInvite:(NSString *)groupId + inviterId:(NSString *)inviterId + reason:(nullable NSString *)reason + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + + +/// 群主或管理员同意用户加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请人用户 ID,非必填,如果是邀请入群,则传邀请人 ID;如果是用户主动加群,可以为空。 +/// - Parameter applicantId: 申请入群用户 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// +/// - 当群组的 `inviteHandlePermission` 为需要被邀请人同意时,若 `processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` (25427),表示需等待被邀请人同意方可加入群组。 +/// - 当群组的 `inviteHandlePermission` 为无需被邀请人同意时,若 `processCode` 返回 `RC_SUCCESS` (0),表示被邀请人已成功加入群组。 +/// +/// 以上仅适用于邀请加入群组的情况,当用户主动申请加入群组时,`processCode` 始终为 `RC_SUCCESS` (0)。 +/// - Since: 5.12.0 +- (void)acceptGroupApplication:(NSString *)groupId + inviterId:(nullable NSString *)inviterId + applicantId:(NSString *)applicantId + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 群主或管理员拒绝用户加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请人用户 ID,非必填,如果是邀请入群,则传邀请人 ID;如果是主动加群,可以为空。 +/// - Parameter applicantId: 申请者 ID +/// - Parameter reason: 拒绝原因,内容不超过 128 个字符。 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)refuseGroupApplication:(NSString *)groupId + inviterId:(nullable NSString *)inviterId + applicantId:(NSString *)applicantId + reason:(nullable NSString *)reason + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 分页获取群组申请列表 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 200 条)、是否正序查询(默认倒序) +/// - Parameter directions: 申请方向 `RCGroupApplicationDirection` 数组 +/// - Parameter status: 状态类型 `RCGroupApplicationStatus` 数组 +/// - Parameter successBlock: 成功回调,此接口不支持返回请求总数。 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupApplications:(RCPagingQueryOption *)option + directions:(NSArray *)directions + status:(NSArray *)status + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 按角色获取已加入群组的资料 +/// - Parameter role: 群成员角色 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 100 条)、是否正序查询(默认倒序) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getJoinedGroupsByRole:(RCGroupMemberRole)role + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 按群名称搜索已加入群组的资料 +/// - Parameter groupName: 群名称,不能为空最长不超过 64 个字符 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 200 条)、是否正序查询(默认倒序) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)searchJoinedGroups:(NSString *)groupName + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取指定已加入群组的资料 +/// - Parameter groupIds: 群 ID 列表,一次最多查询 20 个群组 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getJoinedGroups:(NSArray *)groupIds + success:(void (^)(NSArray *groupInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置群组备注名 +/// - Parameter groupId: 群组 ID +/// - Parameter remark: 群备注,字符串长度不超过 64 个字符。传 nil 或 空字符串 表示移除群备注 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setGroupRemark:(NSString *)groupId + remark:(nullable NSString *)remark + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 添加群组特别关注用户 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,单次最多关注 100 个用户 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)addGroupFollows:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 删除群组特别关注用户 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,单次取消关注 100 个用户 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)removeGroupFollows:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取群组特别关注用户 +/// - Parameter groupId: 群组 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupFollows:(NSString *)groupId + success:(void (^)(NSArray *followInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + + +#pragma mark - Friend + +/// 添加好友事件监听 +/// - Since: 5.12.0 +- (void)addFriendEventDelegate:(id)delegate NS_SWIFT_NAME(addFriendEventDelegate(_:)); + +/// 移除好友事件监听 +/// - Since: 5.12.0 +- (void)removeFriendEventDelegate:(id)delegate NS_SWIFT_NAME(removeFriendEventDelegate(_:)); + +/// 添加好友 +/// - Parameter userId: 用户 ID +/// - Parameter directionType: 好友方向类型 +/// - Parameter extra: 发送好友请求时的附加信息,长度不超过 128 个字符。 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当对方添加好友权限为需要同意才能添加好友时,`processCode` 返回 `RC_FRIEND_NEED_ACCEPT` ( 25461 ),表示对方需要同意之后才能添加为好友。 +/// - 当对方添加好友权限为不需要同意时,`processCode` 返回 `RC_SUCCESS` ( 0 ),好友直接添加成功。 +/// - Since: 5.12.0 +- (void)addFriend:(NSString *)userId + directionType:(RCDirectionType)directionType + extra:(nullable NSString *)extra + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 删除好友 +/// - Parameter userIds: 用户 ID 列表,一次最多解除 100 个用户 +/// - Parameter directionType: 好友方向类型 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)deleteFriends:(NSArray *)userIds + directionType:(RCDirectionType)directionType + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 同意加为好友 +/// - Parameter userId: 用户 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)acceptFriendApplication:(NSString *)userId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 拒绝加为好友 +/// - Parameter userId: 用户 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)refuseFriendApplication:(NSString *)userId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 好友信息设置 +/// - Parameter userId: 用户 ID +/// - Parameter remark: 好友备注,最多为 64 个字符,不传或为空时清除备注名。 +/// - Parameter extProfile: 扩展信息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.16.0 +- (void)setFriendInfo:(NSString *)userId + remark:(nullable NSString *)remark + extProfile:(nullable NSDictionary *)extProfile + successBlock:(void (^)(void))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + +/// 检查好友关系 +/// - Parameter userIds: 用户 ID 列表,一次最多查询 100 个用户 +/// - Parameter directionType: 好友方向类型,目前只支持双向检查 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)checkFriends:(NSArray *)userIds + directionType:(RCDirectionType)directionType + success:(void (^)(NSArray *friendRelations))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取好友列表 +/// - Parameter directionType: 好友方向类型 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriends:(RCQueryFriendsDirectionType)directionType + success:(void (^)(NSArray *friendInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 分页获取好友请求列表 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 100 条)、是否正序查询(默认倒序) +/// - Parameter types: 请求类型数组 RCFriendApplicationType +/// - Parameter status: 申请状态数组 RCFriendApplicationStatus +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriendApplications:(RCPagingQueryOption *)option + types:(NSArray *)types + status:(NSArray *)status + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据用户 ID 获取好友信息 +/// - Parameter userIds: 用户 ID 列表,一次最多获取 100 个好友信息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriendsInfo:(NSArray *)userIds + success:(void (^)(NSArray *friendInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据好友昵称搜索好友信息 +/// - Parameter name: 用户昵称,不能为空最长不超过 64 个字符 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: 默认先匹配好友备注名 remark,再匹配好友名称 name。只要其中一个字段匹配成功,即返回搜索结果。 +/// - Since: 5.12.0 +- (void)searchFriendsInfo:(NSString *)name + success:(void (^)(NSArray *friendInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置加好友权限 +/// - Parameter permission: 加好友权限 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setFriendAddPermission:(RCFriendAddPermission)permission + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取加好友权限 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriendAddPermission:(void (^)(RCFriendAddPermission permission))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +#pragma mark - Stream + +/// 添加流式消息请求事件监听。 +/// - Since: 5.16.0 +- (void)addStreamMessageRequestEventDelegate:(id)delegate + NS_SWIFT_NAME(addStreamMessageRequestEventDelegate(_:)); + +/// 移除流式消息请求事件监听。 +/// - Since: 5.16.0 +- (void)removeStreamMessageRequestEventDelegate:(id)delegate + NS_SWIFT_NAME(removeStreamMessageRequestEventDelegate(_:)); + +/// 请求流式消息。 +/// 请求事件会在 RCStreamMessageRequestEventDelegate 代理中回调。 +/// +/// - Parameters: +/// - params: 请求参数对象。 +/// - completionHandler: 发起请求结果回调。流式消息的接收回调在 `RCStreamMessageRequestEventDelegate` 中。 +/// +/// - Since: 5.16.0 +- (void)requestStreamMessageWithParams:(RCStreamMessageRequestParams *)params + completionHandler:(void (^)(RCErrorCode code))completionHandler; + + + +/// 保存撤回消息编辑草稿 +/// @param draft 详见 RCEditedMessageDraft 定义 +/// @param identifier - identifier.type 只允许单聊,群聊,超级群,identifier.targetId 必填参数,identifier.channeld 非必填 +/// @param completion 结果回调 +/// +/// - Since 5.28.0 +- (void)saveEditedMessageDraft:(nullable RCEditedMessageDraft *)draft + identifier:(RCConversationIdentifier *)identifier + completion:(void(^)(RCErrorCode code))completion; + +/// 获取撤回消息编辑草稿 +/// @param identifier identifier.type 只允许单聊,群聊,超级群,identifier.targetId 必填参数,identifier.channeld 非必填 +/// @param completion 结果回调 +/// +/// - Since 5.28.0 +- (void)getEditedMessageDraft:(RCConversationIdentifier *)identifier + completion:(void(^)(RCErrorCode code, RCEditedMessageDraft * _Nullable draft))completion; + +/// 清除撤回消息编辑草稿 +/// @param identifier identifier.type 只允许单聊,群聊,超级群,identifier.targetId 必填参数,identifier.channeld 非必填 +/// @param completion 结果回调 +/// +/// - Since 5.28.0 +- (void)clearEditedMessageDraft:(RCConversationIdentifier *)identifier + completion:(void(^)(RCErrorCode code))completion; +@end + +@protocol RCReadReceiptV5Delegate; + +@interface RCCoreClient (ReadReceiptV5) + +/// 发送已读回执(V5)。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUIds: 消息唯一 Id 列表,最多 100 条。 +/// - completion: 结果回调。 +/// +/// - Note: +/// 消息中 `needReceipt` 为 YES 时,接收方调用本接口,通知消息发送方已读。 +/// 消息发送方会收到 `didReceiveMessageReadReceiptInfo:` 回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUIds` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)sendReadReceiptResponseV5:(RCConversationIdentifier *)identifier + messageUIds:(NSArray *)messageUIds + completion:(nullable void (^)(RCErrorCode code))completion; + +/// 批量获取已发送消息回执信息。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUIds: 消息唯一 ID 数组,最多 100 条。 +/// - completion: 结果回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUIds` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)getMessageReadReceiptInfoV5:(RCConversationIdentifier *)identifier + messageUIds:(NSArray *)messageUIds + completion:(RCReadReceiptInfoListCompletion)completion; + +/// 批量获取已发送消息回执信息。 +/// +/// - Parameters: +/// - identifiers: 消息标识数组,最多 100 个。 +/// - completion: 结果回调。 +/// +/// - Since: 5.20.2 +- (void)getMessageReadReceiptInfoV5ByIdentifiers:(NSArray *)identifiers + completion:(RCReadReceiptInfoListCompletion)completion; + +/// 分页查询已读回执用户列表。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUId: 消息唯一 ID。 +/// - option: 查询条件。 +/// - completion: 结果回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUId` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)getMessagesReadReceiptUsersByPageV5:(RCConversationIdentifier *)identifier + messageUId:(NSString *)messageUId + option:(RCReadReceiptUsersOption *)option + completion:(RCMessageReadDetailCompletion)completion; + +/// 查询指定的用户列表已读回执状态。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUId: 消息唯一 ID。 +/// - userIds: 用户 Id 数组,最多 100 个用户。 +/// - completion: 结果回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUId` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)getMessagesReadReceiptByUsersV5:(RCConversationIdentifier *)identifier + messageUId:(NSString *)messageUId + userIds:(NSArray *)userIds + completion:(RCMessageReadDetailCompletion)completion; + +/// 添加已读回执 V5 事件监听。 +/// +/// - Parameter delegate: 事件代理。 +/// +/// - Since: 5.20.0 +- (void)addReadReceiptV5Delegate:(id)delegate NS_SWIFT_NAME(addReadReceiptV5Delegate(_:)); + +/// 移除已读回执 V5 事件监听。 +/// +/// - Parameter delegate: 事件代理。 +/// +/// - Since: 5.20.0 +- (void)removeReadReceiptV5Delegate:(id)delegate + NS_SWIFT_NAME(removeReadReceiptV5Delegate(_:)); + +@end + +@protocol RCSpeechToTextDelegate; + +/// 语音转文字。 +/// +/// - Since: 5.22.0 +@interface RCCoreClient (STT) + +/// 发起语音转换文本请求。 +/// +/// - Parameter messageUId: 消息唯一 ID。 +/// - Parameter completionHandler: 结果回调。 +/// +/// - Note: `completionHandler` 是发起请求的结果回调,转换完成的结果会通过全局代理 `RCSpeechToTextDelegate` 回调。 +/// +/// - Since: 5.22.0 +- (void)requestSpeechToTextForMessage:(NSString *)messageUId + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 设置语音转换文本功能的可见性。 +/// +/// - Parameters: +/// - messageId: 消息本地 ID。 +/// - isVisible: 是否可见。 +/// - completionHandler: 结果回调。 +/// +/// - Note: 可见状态会同步到本地数据库。 +/// +/// - Since: 5.20.0 +- (void)setMessageSpeechToTextVisible:(NSUInteger)messageId + isVisible:(BOOL)isVisible + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 添加语音转文本代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.20.0 +- (void)addSpeechToTextDelegate:(id)delegate NS_SWIFT_NAME(addSpeechToTextDelegate(_:)); + +/// 移除语音转文本代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.20.0 +- (void)removeSpeechToTextDelegate:(id)delegate NS_SWIFT_NAME(removeSpeechToTextDelegate(_:)); + +@end + +@class RCTranslateMessagesParams; +@class RCTranslateTextsParams; +@protocol RCTranslationDelegate; + +@interface RCCoreClient (Translate) + +/// 批量翻译文本消息。 +/// +/// - Parameters: +/// - params: 翻译的消息参数。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)translateMessagesWithParams:(RCTranslateMessagesParams *)params + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 批量翻译文本内容。 +/// +/// - Parameters: +/// - params: 翻译的文本参数。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)translateTextsWithParams:(RCTranslateTextsParams *)params + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 设置用户级别的翻译语言。 +/// +/// - Parameters: +/// - language: 语言。 +/// - completionHandler: 结果回调。 +/// +/// - Note: 设置的 `language`,请使用开发者文档中支持的语言设置。 +/// +/// - Since: 5.24.0 +- (void)setTranslationLanguage:(NSString *)language completionHandler:(void (^)(RCErrorCode code))completionHandler; + +/// 获取用户级别的翻译语言。 +/// +/// - Parameters: +/// - successBlock: 成功回调。 +/// - errorBlock: 失败回调。 +/// +/// - Since: 5.24.0 +- (void)getTranslationLanguage:(nullable void (^)(NSString *language))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置用户级别的自动翻译是否开启。 +/// +/// - Parameters: +/// - isEnable: 是否自动翻译。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)setAutoTranslateState:(BOOL)isEnable completionHandler:(void (^)(RCErrorCode code))completionHandler; + +/// 获取用户级别的自动翻译是否开启。 +/// +/// - Parameters: +/// - successBlock: 成功回调。 +/// - errorBlock: 失败回调。 +/// +/// - Since: 5.24.0 +- (void)getAutoTranslateEnabled:(nullable void (^)(BOOL isEnable))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 批量设置会话翻译策略。 +/// +/// - Parameters: +/// - identifiers: 会话列表。 +/// - strategy: 翻译策略。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)batchSetConversationTranslateStrategy:(NSArray *)identifiers + strategy:(RCTranslateStrategy)strategy + completionHandler:(void (^)(RCErrorCode code))completionHandler; + +/// 添加翻译事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.24.0 +- (void)addTranslationDelegate:(id)delegate NS_SWIFT_NAME(addTranslationDelegate(_:)); + +/// 移除翻译事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.24.0 +- (void)removeTranslationDelegate:(id)delegate NS_SWIFT_NAME(removeTranslationDelegate(_:)); + +@end + +#pragma mark - Settings - + +@class RCAppSettings; + +/// 设置相关。 +@interface RCCoreClient (Settings) + +/// 连接成功后,AppKey 对应的配置。 +/// +/// - Since: 5.22.0 +- (nullable RCAppSettings *)getAppSettings; + +/// 添加用户配置事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.7.8 +- (void)addUserSettingsDelegate:(id)delegate NS_SWIFT_NAME(addUserSettingsDelegate(_:)); + +/// 移除用户配置事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.7.8 +- (void)removeUserSettingsDelegate:(id)delegate NS_SWIFT_NAME(removeUserSettingsDelegate(_:)); + +@end + +@class RCMessageResult; +@class RCModifyMessageParams; +@class RCRefreshReferenceMessageParams; + +/// 消息编辑。 +/// +/// - Since: 5.26.0 +@interface RCCoreClient (RCMessageModify) + +/// 消息修改。 +/// +/// - Parameters: +/// - params: 消息修改参数对象。 +/// - completionHandler: 回调结果。 +- (void)modifyMessageWithParams:(RCModifyMessageParams *)params + completionHandler:(void (^)(RCMessage *message, RCErrorCode code))completionHandler; + +/// 批量查询需要刷新的引用消息。 +/// +/// - Parameter params: 刷新引用消息参数对象。 +/// - Parameter localMessageBlock: 获取到的本地消息回调。 +/// - Parameter remoteMessageBlock: 获取到的远端消息回调。 +/// - Parameter errorBlock: 错误回调。 +/// +/// - Note: +/// 通过 `params.messageUIds` 获取的消息分为两部分: +/// 1. 先从本地查找消息,查询到之后,将结果通过 `localMessageBlock` 回调返回。 +/// 2. 本地没有查到的消息,会从服务器查询,并将结果通过 `remoteMessageBlock` 回调返回。 +- (void)refreshReferenceMessageWithParams:(RCRefreshReferenceMessageParams *)params + localMessageBlock:(void (^)(NSArray *results))localMessageBlock + remoteMessageBlock:(void (^)(NSArray *results))remoteMessageBlock + errorBlock:(void (^)(RCErrorCode code))errorBlock; + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCDownloadInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCDownloadInfo.h new file mode 100644 index 0000000..568fc7b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCDownloadInfo.h @@ -0,0 +1,27 @@ +// +// RCDownloadInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/1/30. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 文件下载信息 +@interface RCDownloadInfo : NSObject + +/// 文件总大小 +@property (nonatomic, assign) long totalLength; + +/// 文件当前下载的大小 +@property (nonatomic, assign) long currentLength; + +/// 文档当前的下载进度 0 - 100 +@property (nonatomic, assign) int currentProgress; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCDownloadItem.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCDownloadItem.h new file mode 100644 index 0000000..9e72bec --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCDownloadItem.h @@ -0,0 +1,115 @@ +// +// RCEDownloadItem.h +// RongEnterpriseApp +// +// Created by zhaobingdong on 2018/5/15. +// Copyright © 2018 年 rongcloud. All rights reserved. +// +/// +/// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] +/// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] +/// + +#import + +/** + 下载状态枚举 + + - RCDownloadItemStateWaiting: 等待 + - RCDownloadItemStateChecking: 正在检测是否支持 Range + - RCDownloadItemStateRunning: 正在下载 + - RCDownloadItemStateSuspended: 暂停 + - RCDownloadItemStateCanceled: 已取消 + - RCDownloadItemStateCompleted: 完成 + - RCDownloadItemStateFailed: 失败 + */ +typedef NS_ENUM(NSInteger, RCDownloadItemState) { + RCDownloadItemStateWaiting = 0, + RCDownloadItemStateChecking, + RCDownloadItemStateRunning, + RCDownloadItemStateSuspended, + RCDownloadItemStateCanceled, + RCDownloadItemStateCompleted, + RCDownloadItemStateFailed +}; + +NS_ASSUME_NONNULL_BEGIN +@class RCDownloadItem; +@protocol RCDownloadItemDelegate + +/** + 下载任务状态变化时调用 + + - Parameter item: 下载任务对象 + - Parameter state: 状态 + */ +- (void)downloadItem:(RCDownloadItem *)item state:(RCDownloadItemState)state; + +/** + 下载进度上报时调用 + + - Parameter item: 下载任务 + - Parameter progress: 下载进度 + */ +- (void)downloadItem:(RCDownloadItem *)item progress:(float)progress; + +/** + 任务结束时调用 + + - Parameter item: 下载任务 + - Parameter error: 错误信息对象,成功时为 nil + - Parameter path: 下载完成后文件的路径,此路径为相对路径,相对于沙盒根目录 NSHomeDirectory + */ +- (void)downloadItem:(RCDownloadItem *)item + didCompleteWithError:(nullable NSError *)error + filePath:(nullable NSString *)path; +@end + +__deprecated_msg("Use [RCCoreClient getDownloadInfo:] instead") + /// + /// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] + /// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] + /// + @interface RCDownloadItem : NSObject + +/// 下载状态 +@property (nonatomic, assign, readonly) + RCDownloadItemState state __deprecated_msg("Use [RCDownloadInfo getDownloadInfo:] instead"); + +/// 文件总大小 单位字节 +@property (nonatomic, assign, readonly) + long long totalLength __deprecated_msg("Use [RCDownloadInfo totalLength] instead"); + +/// 文件当前的大小 +@property (nonatomic, assign, readonly) + long long currentLength __deprecated_msg("Use [RCDownloadInfo totalLength] currentLength"); + +/// 文件对应的网络 URL +@property (nonatomic, strong, readonly, nullable) NSURL *URL; + +/// 标识是否可恢复下载。YES 表示可恢复,支持 Range。NO 表示不支持 Range。 +@property (nonatomic, assign, readonly) BOOL resumable; + +/// 下载任务的标识符 +@property (nonatomic, copy, readonly, nullable) NSString *identify; + +/// 下载任务的代理对象 +@property (nonatomic, weak, nullable) id delegate; + ++ (instancetype)new NS_UNAVAILABLE; + +/// 开始下载 +- (void) + downLoad __deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead"); + +/// 暂停下载 +- (void)suspend __deprecated_msg("Use [RCCoreClient pauseDownloadMediaUrl:successBlock:errorBlock:] instead"); + +/// 恢复下载 +- (void)resume __deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead"); + +/// 取消下载 +- (void)cancel __deprecated_msg("Use [RCCoreClient cancelDownloadMediaUrl:successBlock:errorBlock:] instead"); + +@end +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCEditedMessageDraft.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCEditedMessageDraft.h new file mode 100644 index 0000000..5aeae6e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCEditedMessageDraft.h @@ -0,0 +1,20 @@ +// +// RCEditedMessageDraft.h +// RongIMLibCore +// +// Created by huan xu on 2025/9/8. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +/// - Since 5.28.0 +@interface RCEditedMessageDraft : NSObject +/// 消息唯一标识(必填参数) +@property (nonatomic, copy) NSString *messageUId; +/// 草稿内容(可选参数) +@property (nonatomic, copy, nullable) NSString *content; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCErrorCode.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCErrorCode.h new file mode 100644 index 0000000..e487462 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCErrorCode.h @@ -0,0 +1,1923 @@ +/** + * Copyright (c) 2014-2023, RongCloud. + * All rights reserved. + */ + +// RCErrorCode.h +// 融云 IM 错误码 +// 本文件由 ErrorCodeGenerator 自动生成,请勿擅自修改 + +#import + +#ifndef RCErrorCode_h +#define RCErrorCode_h + +typedef NS_ENUM(NSInteger, RCErrorCode) { + /// 成功 + /// + RC_SUCCESS = 0, + + /// 已被对方加入黑名单,消息发送失败 + /// + REJECTED_BY_BLACKLIST = 405, + + /// 对方开启了只接收白名单的信息,但己方不在白名单中,发送消息失败 + /// + NOT_IN_WHITELIST = 407, + + /// 鉴权错误 + /// + RC_SERVICE_REQUEST_UNAUTHORIZED = 1004, + + /// 系统会话不支持发送该消息 + /// + /// - Since: 5.6.2 + RC_CONVERSATION_NOT_SUPPORT_MESSAGE = 20109, + + /// 消息内容存在敏感词 + /// + /// - Since: 5.26.0 + RC_DANGEROUS_CONTENT = 20112, + + /// 消息内容未通过审核 + /// + /// - Since: 5.26.0 + RC_CONTENT_REVIEW_REJECTED = 20113, + + /// 消息超过可修改时间 + /// + /// - Since: 5.26.0 + MESSAGE_OVER_MODIFY_TIME_FAIL = 20114, + + /// 消息尺寸超出限制 + /// + /// - Since: 5.26.0 + RC_MESSAGE_SIZE_EXCEEDED = 20115, + + /// 消息不支持修改 + /// + /// - Since: 5.26.0 + MESSAGE_UNSUPPORTED_MODIFY = 20116, + + /// appkey的数据中心与请求云控的数据中心不匹配 + /// + /// - Since: 5.6.6 + CLOUD_DATA_CENTER_INVALID = 20512, + + /// 发送消息频率过高,1 秒钟最多只允许发送 5 条消息 + /// + SEND_MSG_FREQUENCY_OVERRUN = 20604, + + /// 操作被禁止,此错误码已被弃用 + /// + RC_OPERATION_BLOCKED = 20605, + + /// 操作不支持,仅私有云有效,服务端禁用了该操作 + /// + RC_OPERATION_NOT_SUPPORT = 20606, + + /// 请求超出了调用频率限制,请稍后再试 + /// + RC_REQUEST_OVERFREQUENCY = 20607, + + /// 不在讨论组 + /// + NOT_IN_DISCUSSION = 21406, + + /// 发送的消息中包含敏感词 (发送方发送失败,接收方不会收到消息) + /// + RC_MSG_BLOCKED_SENSITIVE_WORD = 21501, + + /// 消息中敏感词已经被替换 (接收方可以收到被替换之后的消息) + /// + RC_MSG_REPLACED_SENSITIVE_WORD = 21502, + + /// 原始消息不存在。 + /// + /// - Since: 5.2.0 + RC_ORIGINAL_MESSAGE_NOT_EXIST = 22201, + + /// 超级群扩展消息,但是原始消息不支持扩展 + /// + /// - Since: 5.2.0 + RC_ORIGINAL_MESSAGE_CANT_EXPAND = 22202, + + /// 超级群扩展消息,扩展内容格式错误 + /// + /// - Since: 5.2.0 + RC_MESSAGE_EXPAND_FORMAT_ERROR = 22203, + + /// 超级群扩展消息,无操作权限 + /// + /// - Since: 5.2.0 + RC_MESSAGE_EXPAND_NOT_AUTHORIZED = 22204, + + /// 不在该群组中 + /// + NOT_IN_GROUP = 22406, + + /// 在群组中已被禁言。 + /// + FORBIDDEN_IN_GROUP = 22408, + + /// 不在该聊天室中。 + /// + NOT_IN_CHATROOM = 23406, + + /// 聊天室禁言白名单人数超限(最多5个) + /// 创建聊天室时,禁言白名单用户列表,支持批量设置,最多不超过 20 个 + /// + RC_GET_USER_INFO_ERROR = 23407, + + /// 在该聊天室中已被禁言 + /// + FORBIDDEN_IN_CHATROOM = 23408, + + /// 已被踢出并禁止加入聊天室。被禁止的时间取决于服务端调用踢出接口时传入的时间。 + /// + KICKED_FROM_CHATROOM = 23409, + + /// 聊天室不存在 + /// + RC_CHATROOM_NOT_EXIST = 23410, + + /// 聊天室成员超限,开发者可以提交工单申请聊天室人数限制变更。 + /// + RC_CHATROOM_IS_FULL = 23411, + + /// 聊天室接口参数无效。请确认参数是否为空或者有效。 + /// + RC_PARAMETER_INVALID_CHATROOM = 23412, + + /// 聊天室云存储业务未开通 + /// + RC_ROAMING_SERVICE_UNAVAILABLE_CHATROOM = 23414, + + /// 聊天室的 KV 属性个数超限,单个聊天室默认上限为 100 个 + /// + RC_EXCCED_MAX_KV_SIZE = 23423, + + /// 没有权限修改聊天室中已存在的属性值 + /// + RC_TRY_OVERWRITE_INVALID_KEY = 23424, + + /// 超过聊天室中状态设置频率,1 个聊天室 1 秒钟最多设置和删除状态 100 次 + /// + RC_EXCCED_MAX_CALL_API_SIZE = 23425, + + /// 聊天室属性自定义设置,您可以在开发者后台免费基础功能页面中开启该功能。 + /// + RC_KV_STORE_NOT_AVAILABLE = 23426, + + /// 聊天室属性不存在 + /// + RC_KEY_NOT_EXIST = 23427, + + /// 聊天室批量设置或删除KV部分不成功 + /// + RC_KV_STORE_NOT_ALL_SUCCESS = 23428, + + /// 聊天室批量设置或删除KV数量超限(最多一次10条) + /// + RC_KV_STORE_OUT_OF_LIMIT = 23429, + + /// 聊天室设置 KV 失败,出现在两人或者多端同时操作一个 KV。 如果出现该错误,为避免和其他端同时操作,请延时一定时间再试 + /// + RC_KV_CONCURRENT_SET_ERROR = 23431, + + /// 加入聊天室附加信息长度超限,默认最大长度为 128 个字符,服务可配置 + /// + /// - Since: 5.10.3 + RC_CHATROOM_EXTRA_SIZE_LIMIT_EXCEED = 23437, + + /// 没有设置该用户托管属性的权限 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_KEY_NOT_ALLOW_SDK_SET = 24360, + + /// 用户托管基本属性的key列表中没有此key + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_KEY_NOT_EXIST = 24361, + + /// 用户托管扩展属性的 key 列表中没有此 key + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_EXT_KEY_NOT_EXIST = 24362, + + /// 超过了可以设置的用户托管扩展属性的最大上限 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_EXT_KV_COUNT_EXCEED_LIMIT = 24363, + + /// 用户托管基本属性或扩展属性的Value,字符超过最大上限 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_VALUE_LENGTH_EXCEED_LIMIT = 24364, + + /// 批量查询用户托管资料的数量超过了可以查询的上限 100 个 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_QUERY_COUNT_EXCEED_LIMIT = 24365, + + /// 没有此用户 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_USER_NOT_EXIST = 24366, + + /// 用户托管此属性 Value 只能是数字 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_VALUE_CAN_ONLY_BE_NUMBERS = 24367, + + /// 用户托管此属性 Value 值超过设置取值范围 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_VALUE_EXCEED_RANGE = 24368, + + /// 未开启用户信息托管功能 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_SERVICE_UNAVAILABLE = 24369, + + /// 超级群功能未开通 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_DISABLED = 24401, + + /// 超级群服务异常 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_SERVICE_ABNORMAL = 24402, + + /// 超级群参数错误 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_PARAMETER_ERROR = 24403, + + /// 超级群未知异常 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_UNKNOWN_ERROR = 24404, + + /// 非超级群成员 + /// + /// - Since: 5.2.0 + RC_NOT_IN_ULTRA_GROUP = 24406, + + /// 超级群成员禁言 + /// + /// - Since: 5.2.0 + RC_FORBIDDEN_IN_ULTRA_GROUP = 24408, + + /// 超级群不存在 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_NOT_EXIST = 24410, + + /// 超级群成员超限制 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_MEMBERS_EXCEED_LIMIT = 24411, + + /// 用户加入超级群数量超限 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_NUMBER_EXCEED_LIMIT = 24412, + + /// 创建超级群频道,频道数超限 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_CHANNELS_EXCEED_LIMIT = 24413, + + /// 超级群频道 ID 不存在 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_CHANNEL_ID_NOT_EXIST = 24414, + + /// 超级群频道发送消息超限:超级群下每个频道有消息发送频率限制,默认每秒 30 条 频道内每秒发送消息总量超过限制会收到该错误码,建议延时发送或重试发送 + /// + /// - Since: 5.2.1 + RC_ULTRA_GROUP_CHANNEL_MESSAGE_EXCEED_LIMIT = 24415, + + /// 用户不在超级群私有频道中 + /// + /// - Since: 5.2.4 + RC_ULTRA_GROUP_USER_NOT_IN_PRIVATE_CHANNEL = 24416, + + /// 撤回消息参数无效,请确认撤回消息参数是否正确的填写 + /// + RC_RECALLMESSAGE_PARAMETER_INVALID = 25101, + + /// 未开通单群聊云存储服务 + /// + RC_MESSAGE_STORAGE_SERVICE_UNAVAILABLE = 25102, + + /// 未知异常 + /// + /// - Since: 5.6.7 + RC_SERVER_UNKNOWN_ERROR = 25104, + + /// IMLib 撤回消息可以撤回自己发送的消息和别人发送的消息,IM 服务有开关,控制只可以撤回自己发送的消息,当服务该开关打开时,撤回别人的消息会报这个错误。 + /// + /// - Since: 5.2.4 + RC_RECALL_MESSAGE_USER_INVALID = 25107, + + /// 托管服务异常 + /// + /// - Since: 5.12.0 + RC_ENTRUST_SERVER_ERROR = 25402, + + /// 托管服务参数错误 + /// + /// - Since: 5.12.0 + RC_ENTRUST_SERVER_PARAMETER_ERROR = 25403, + + /// 非法操作,非群主修改群权限相关,msg中返回传的对应的key + /// + /// - Since: 5.12.0 + RC_GROUP_ILLEGAL_ERROR = 25404, + + /// 没有权限操作 + /// + /// - Since: 5.12.0 + RC_GROUP_AUTHORITY_ERROR = 25405, + + /// 参数异常,存在长度超限 + /// + /// - Since: 5.12.0 + RC_GROUP_PARAMETER_LENGTH_EXCEED_LIMIT = 25406, + + /// 参数异常,非法字符 + /// + /// - Since: 5.12.0 + RC_GROUP_PARAMETER_FORMAT_ERROR = 25407, + + /// 参数值必须是数字 + /// + /// - Since: 5.12.0 + RC_GROUP_PARAMETER_VALUE_CAN_ONLY_BE_NUMBERS = 25408, + + /// 群组 ID 已存在 + /// + /// - Since: 5.12.0 + RC_GROUP_ID_ALREADY_EXIST = 25409, + + /// 群 ID 不存在 + /// + /// - Since: 5.12.0 + RC_GROUP_ID_NOT_EXIST = 25410, + + /// 群成员超限 + /// + /// - Since: 5.12.0 + RC_GROUP_MEMBERS_COUNT_EXCEED_LIMIT = 25411, + + /// 群成员 ID 已在当前群组中 + /// + /// - Since: 5.12.0 + RC_GROUP_MEMBERS_ALREADY_IN_GROUP = 25412, + + /// 不允许通过 SDK 进行此操作 + /// + /// - Since: 5.12.0 + RC_GROUP_NOT_ALLOW_SDK_OPERATION = 25413, + + /// 不允许任何人加入,无法加入群组 + /// + /// - Since: 5.12.0 + RC_GROUP_NOT_ALLOW_JOIN = 25414, + + /// 扩展信息 Key 值不存在 + /// + /// - Since: 5.12.0 + RC_GROUP_EXT_KEY_NOT_EXIST = 25415, + + /// 查询频率超限 + /// + /// - Since: 5.12.0 + RC_GROUP_REQUEST_OVERFREQUENCY = 25416, + + /// 群主不能被踢出/退出群组 + /// + /// - Since: 5.12.0 + RC_GROUP_OWNER_NOT_ALLOW_QUIT_OR_KICK = 25417, + + /// 用户ID不在群组中 + /// + /// - Since: 5.12.0 + RC_GROUP_USER_NOT_IN_GROUP = 25418, + + /// 管理员/关注 人数超过上限 + /// + /// - Since: 5.12.0 + RC_GROUP_MANAGER_OR_FOLLOW_COUNT_EXCEED_LIMIT = 25419, + + /// 用户 ID 不在当前群管理员 + /// + /// - Since: 5.12.0 + RC_GROUP_USER_IS_NOT_MANAGER_IN_GROUP = 25420, + + /// 无对应群 ID 和用户 ID 的邀请请求 + /// + /// - Since: 5.12.0 + RC_GROUP_APPLICATION_NOT_EXIST = 25421, + + /// 查询群信息个数超限 + /// + /// - Since: 5.12.0 + RC_GROUP_QUERY_GROUP_COUNT_EXCEED_LIMIT = 25422, + + /// 群名称不能为空 + /// + /// - Since: 5.12.0 + RC_GROUP_NAME_INVALID = 25423, + + /// 申请进群需要等待管理员审批 + /// + /// - Since: 5.12.0 + RC_GROUP_JOIN_GROUP_NEED_MANAGER_ACCEPT = 25424, + + /// 群主不支持设置为管理员 + /// + /// - Since: 5.12.0 + RC_GROUP_OWNER_NOT_ALLOW_BE_MANAGER = 25425, + + /// 邀请人进群时没有权限 + /// + /// - Since: 5.12.0 + RC_GROUP_NO_INVITE_PERMISSION = 25426, + + /// 邀请进群需要被邀请人同意 + /// + /// - Since: 5.12.0 + RC_GROUP_NEED_INVITEE_ACCEPT = 25427, + + /// 管理员或群主处理请求时,别的管理员已处理 + /// + /// - Since: 5.12.0 + RC_GROUP_APPLICATION_ALREADY_HANDLE = 25428, + + /// 老的群不支持调用托管接口,需要导入后才能调用 + /// + /// - Since: 5.12.0 + RC_GROUP_OLD_GROUP_NOT_ENTRUST = 25429, + + /// 群ID不合法,包含特殊字符 + /// + /// - Since: 5.12.0 + RC_GROUP_ID_INVALID = 25430, + + /// pagetoken解析失败 + /// + /// - Since: 5.12.0 + RC_PAGE_TOKEN_PARSING_FAILED = 25432, + + /// 已经互为好友,操作无效 + /// + /// - Since: 5.12.0 + RC_FRIEND_ALREADY_FRIEND = 25460, + + /// 待对方同意后才能加为好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NEED_ACCEPT = 25461, + + /// 在目标用户黑名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_IN_OTHER_BLACK_LIST = 25462, + + /// 不在目标用户白名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_IN_OTHER_WHITE_LIST = 25463, + + /// 目标用户在当前用户黑名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_IN_MY_BLACK_LIST = 25464, + + /// 不在当前用户白名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_IN_MY_WHITE_LIST = 25465, + + /// 操作无效,该好友请求不存在或已经过期 + /// + /// - Since: 5.12.0 + RC_FRIEND_APPLICATION_NOT_EXIST = 25466, + + /// 当前用户好友数超出上限 + /// + /// - Since: 5.12.0 + RC_FRIEND_MY_FRIEND_COUNT_EXCEED_LIMIT = 25467, + + /// 目标用户好友数超出上限 + /// + /// - Since: 5.12.0 + RC_FRIEND_OTHER_FRIEND_COUNT_EXCEED_LIMIT = 25468, + + /// 非好友关系,不能执行此操作 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_FRIEND = 25469, + + /// 好友自定义属性超出上限 + /// + /// - Since: 5.12.0 + RC_FRIEND_FIELDS_LENGTH_EXCEED_LIMIT = 25470, + + /// 对方设置了不允许加为好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_OTHER_NOT_ALLOW_ADD_FRIEND = 25471, + + /// 好友不存在 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_EXIST = 25472, + + /// 不能添加自己为好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_ALLOW_ADD_SELF = 25473, + + /// 不支持添加机器人为好友 + /// + RCErrorCodeRc_friend_not_support_robot = 25474, + + /// 托管资料信息审核不通过 + /// + /// - Since: 5.16.0 + RC_SERVICE_INFORMATION_AUDIT_FAILED = 25480, + + /// 用户级设置服务 请求参数不合法 + /// + RC_PUSHSETTING_PARAMETER_INVALID = 26001, + + /// 表示客户端版本号低,需要同步版本号,可以提交工单申请打开用户级别配置开关 + /// + RC_SETTING_SYNC_FAILED = 26002, + + /// 服务内部错误 + /// + RC_SERVICE_INTERNAL_ERROR = 26003, + + /// 用户会话标签个数超限,最多支持添加 20 个标签 + /// + RC_TAG_LIMIT_EXCEED = 26004, + + /// 未开通v4已读回执 + /// + /// - Since: 5.6.7 + RC_READ_RECEIPT_V4_INVALID = 26005, + + /// 未开通会话驱动 + /// + /// - Since: 5.6.7 + RC_SERVER_DRIVE_UNREAD_COUNT_INVALID = 26006, + + /// 消息 id 顺序错误 + /// + /// - Since: 5.6.7 + RC_SERVER_PARAMETER_MESSAGEUIDS_CONFUSED = 26007, + + /// 上报时间不支持同步 + /// + /// - Since: 5.6.9 + RC_SERVER_PARAMETER_TIMESTAMP_NOT_SUPPORT_SYNC = 26008, + + /// 消息id不合法 + /// + /// - Since: 5.6.7 + RC_SERVER_PARAMETER_MESSAGEUID_INVALID = 26009, + + /// 参数有误 + /// + /// - Since: 5.6.7 + RC_SERVER_PARAMETER_INVALID = 26010, + + /// 未开启在线状态订阅功能 + /// + RC_SUBSCRIBE_ONLINE_SERVICE_UNAVAILABLE = 26020, + + /// 用户被订阅量达到上限, 详细查看开发文档。 + /// + /// - Solution 比如A/B/C等很多用户都订阅了用户X, 如果再有a/b/c等继续订阅X, 用户X的被订阅量超过上限 + RC_BESUBSCRIBED_USERIDS_COUNT_EXCEED_LIMIT = 26021, + + /// 订阅用户数达到上限, 详细查看开发文档。 + /// + RC_SUBSCRIBED_USERIDS_EXCEED_LIMIT = 26022, + + /// 小视频服务未开通。可以在融云开发者后台中开启该服务。 + /// (已经不需要开通) + /// + RC_SIGHT_SERVICE_UNAVAILABLE = 26101, + + /// 上传文件超过最大限制 + /// + RC_FILE_SIZE_EXCEED_LIMIT = 26106, + + /// 开启限制未传 size 参数 + /// + INVALID_PARAMETER_SIZE_NOT_FOUND = 26107, + + /// 未开通v5 + /// + /// + RC_SERVICE_RRSV5_UNAVAILABLE = 26314, + + /// 不支持的已读回执方式 + /// + RC_SERVICE_RRSV5_READ_RECEIPT_NOT_SUPPORT = 26315, + + /// 参数长度超限 + /// + RC_SERVICE_RRSV5_PARAM_LENGTH_EXCEED = 26316, + + /// 不支持的会话类型 + /// + RC_SERVICE_RRSV5_CONVERSATION_NOT_SUPPORT = 26317, + + /// 不支持的已读查询类型 + /// + RC_SERVICE_RRSV5_QUERY_NOT_SUPPORT = 26318, + + /// 非消息发送者 + /// + RC_SERVICE_RRSV5_MESSAGE_SENDER_MISMATCH = 26320, + + /// 消息为不需要回执类型 + /// + RC_SERVICE_RRSV5_MESSAGE_RECEIPT_NEEDLESS = 26321, + + /// 消息不存在(私有云在用,公有云没用) + /// + RC_SERVICE_RRSV5_MESSAGE_NOT_EXIST = 26322, + + /// 语音转换服务未开启 + /// + RC_SERVICE_STT_UNAVAILABLE = 28300, + + /// stt转换失败 + /// + RC_SERVICE_STT_CONVERTED_FAILED = 28304, + + /// 语音转文本服务异常 + /// + RC_SERVICE_STT_INTERNAL_ERROR = 28305, + + /// 语音转文本参数缺失 + /// + RC_SERVICE_STT_PARAM_MISS = 28306, + + /// 用量超过限制 + /// + RC_SERVICE_STT_USAGE_EXCEED = 28307, + + /// Translation service not open + /// + /// - Since: 5.24.0 + RC_TRANS_SERVICE_NOT_OPEN = 28400, + + /// Translation failed + /// + /// - Since: 5.24.0 + RC_TRANS_FAILED = 28401, + + /// Translation Server error. + /// + /// - Since: 5.24.0 + RC_TRANS_INTERNAL_ERROR = 28402, + + /// Missing required parameters. Please review and retry. + /// + /// - Since: 5.24.0 + RC_TRANS_PARAM_MISSING = 28403, + + /// Invalid parameter format + /// + /// - Since: 5.24.0 + RC_TRANS_PARAM_ERROR = 28404, + + /// Over the usage quota. + /// + /// - Since: 5.24.0 + RC_TRANS_QUOTA_LIMIT = 28405, + + /// Text length exceeds limit + /// + /// - Since: 5.24.0 + RC_TRANS_TEXT_LENGTH_EXCEEDS_LIMIT = 28406, + + /// Language not support + /// + /// - Since: 5.24.0 + RC_TRANS_LANGUAGE_NOT_SUPPORT = 28407, + + /// 消息的流不存在。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_NO_STREAM = 29002, + + /// 超时30秒无数据结束。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DELTA_TIME_OVER = 29003, + + /// 流超出30分钟截断。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DELTA_TIME_LIMIT = 29004, + + /// 审核不过,流数据被删除。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REVIEW_FAILED = 29005, + + /// 流数据大于 128 k 截断 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DATA_TRUNCATED = 29006, + + /// 流消息服务内部异常 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_SERVER_INTERNAL_ERROR = 29007, + + /// (MP)公众号默认已关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_DEFFOLLOWED = 29102, + + /// (MP)公众号已关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_FOLLOWED = 29103, + + /// 公众号默认已取消关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// (错误码已废弃) + /// + RC_APP_PUBLICSERVICE_DEFUNFOLLOWED = 29104, + + /// (MP)公众号已经取消关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_UNFOLLOWED = 29105, + + /// (MP)未关注此公众号,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_UNFOLLOW = 29106, + + /// 无效的公众号。(由会话类型和 Id 所标识的公众号会话是无效的) + /// 针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_ERROR_TYPE = 29201, + + /// 公众号默认已关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_DEFFOLLOWED = 29202, + + /// 公众号已关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_FOLLOWED = 29203, + + /// 公众号默认已取消关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// (错误码已废弃) + /// + RC_PUBLICSERVICE_DEFUNFOLLOWED = 29204, + + /// 公众号已经取消关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_UNFOLLOWED = 29205, + + /// 公众号未关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_UNFOLLOW = 29206, + + /// 请求大模型失败 + /// + RC_SERVICE_LLM_REQUEST_FAIL = 29301, + + /// 大模型响应错误 + /// + RC_SERVICE_LLM_RESPONSE_ERROR = 29302, + + /// 大模型响应超时 + /// + RC_SERVICE_LLM_RESPONSE_TIMEOUT = 29303, + + /// 请求中的 agentId 不存在 + /// + RC_SERVICE_ASSISTANT_NOT_FOUND = 29310, + + /// 不支持的大模型服务商 + /// + RC_SERVICE_LLM_CHAT_CLIENT_NOT_FOUND = 29311, + + /// 请求参数的格式不对,json 反序列化失败或者空 json + /// + RC_SERVICE_INVALID_PARAMETER_FORMAT = 29320, + + /// channelType 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_CHANNELTYPE = 29321, + + /// channelId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_CHANNELID = 29322, + + /// targetId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_TARGETID = 29323, + + /// message 中 userId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_USERID = 29324, + + /// message 中 messageId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_MESSAGEID = 29325, + + /// message 中 username 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_USERNAME = 29326, + + /// message 中 type 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_TYPE = 29327, + + /// message 中 content 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_CONTENT = 29328, + + /// message 中 timestamp 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_TIMESTAMP = 29329, + + /// agentId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_AGENTID = 29330, + + /// customInfo 请求参数错误中 key 的数量超限 + /// + RC_SERVICE_INVALID_PARAMETER_CUSTOMEINFO_KEY_EXCEED = 29331, + + /// customInfo 请求参数错误中 key/value 的长度超限 + /// + RC_SERVICE_INVALID_PARAMETER_CUSTOMEINFO_LENGTH_EXCEED = 29332, + + /// 未知的错误,http 状态码会是 500未知的错误,http 状态码会是 500 + /// + RC_SERVICE_UNKOWN_ERROR = 29399, + + /// 当前连接已经被释放 + /// + RC_CHANNEL_INVALID = 30001, + + /// 当前连接不可用 + /// + RC_NETWORK_UNAVAILABLE = 30002, + + /// 客户端发送消息请求,融云服务端响应超时 + /// + RC_MSG_RESPONSE_TIMEOUT = 30003, + + /// 请求连接导航地址失败 + /// + RC_NAVIGATION_REQUEST_TIMEOUT = 30005, + + /// 导航操作时,HTTP 接收失败 + /// + RC_NAVIGATION_RESPONSE_ERROR = 30006, + + /// 导航数据解析后,其中不存在有效 IP 地址 + /// + RC_DOMAIN_NOT_FOUND = 30009, + + /// 连接过于频繁 + /// + RC_CONNECT_OVER_FREQUENCY = 30015, + + /// 消息大小超限,消息体(序列化成 json 格式之后的内容)最大 128k bytes + /// + RC_MSG_SIZE_OUT_OF_LIMIT = 30016, + + /// 消息类型不支持发送。 + /// + /// - Since: 5.16.0 + MESSAGE_NOT_SUPPORT_SENDING = 30017, + + /// 网络连接不可用 + /// + RC_NETWORK_IS_DOWN_OR_UNREACHABLE = 30019, + + /// tcp 连接成功,rmtp 连接失败 + /// + RC_RMTP_CONNECTED_ERROR = 30021, + + /// 客户端 info 字段格式错误,正确格式:{平台类型}-{设备信息}-{sdk版本}。 其中设备信息:{手机类型}|{手机型号}|{网络类型,4G/WIFI}|{运营商标识, 移动/电信/联通} + /// + RC_CONN_ID_REJECT = 31002, + + /// Token 无效;AppKey 和 Token 不匹配;Token 过期 + /// + RC_CONN_TOKEN_INCORRECT = 31004, + + /// App 校验未通过(开通了 App 校验功能,但是校验未通过) + /// + RC_CONN_NOT_AUTHRORIZED = 31005, + + /// 包名与后台注册信息不匹配 + /// + RC_CONN_PACKAGE_NAME_INVALID = 31007, + + /// AppKey 被封禁或已删除 + /// + RC_CONN_APP_BLOCKED_OR_DELETED = 31008, + + /// 连接失败,用户被封禁(客户端主动连接失败返回) + /// + RC_CONN_USER_BLOCKED = 31009, + + /// 用户被踢下线 + /// + RC_DISCONN_KICK = 31010, + + /// Token 已过期 + /// + RC_CONN_TOKEN_EXPIRE = 31020, + + /// 开启禁止把已在线客户端踢下线开关后,该错误码标识已有同类型端在线 + /// + RC_CONN_OTHER_DEVICE_LOGIN = 31023, + + /// 连接总数量超过服务设定的并发限定值(私有云专属) + /// + CONCURRENT_LIMIT_ERROR = 31024, + + /// 客户端连错环境,引发连接拒绝;如使用开发环境 Appkey 连接到生产环境 + /// + RC_CONN_CLUSTER_ERROR = 31025, + + /// 开启AppServer联合鉴权功能后,到AppServer认证失败 + /// + RC_CONN_APP_AUTH_FAILED = 31026, + + /// 该 token 已经被使用过,无法进行连接 一次性 token 只能连接一次,之后再使用会上报此错误 + /// + RC_CONN_DISPOSABLE_TOKEN_USED = 31027, + + /// 用户已销户 + /// + /// - Since: 5.3.0 + RC_CONN_USER_ABANDON = 31029, + + /// 私有云 License 检查不通过;APP License 过期 + /// + /// - Since: 5.3.0 + RC_CONN_APP_LICENSE_EXPIRED = 31030, + + /// channelType 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_CHANNELTYPE = 31031, + + /// 无效的agent 提示词类型 + /// + RC_AGENT_INVALID_PARAMETER_CUSTOMINFO = 31032, + + /// Agent 服务不可用 + /// + RC_AGENT_SERVICE_UNAVAILABLE = 31033, + + /// message 中 userId 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_USERID = 31034, + + /// message 中 messageId 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_MESSAGEID = 31035, + + /// message 中 username 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_USERNAME = 31036, + + /// message 中 type 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_TYPE = 31037, + + /// message 中 content 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_CONTENT = 31038, + + /// message 中 timestamp 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_TIMESTAMP = 31039, + + /// agentId 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_AGENTID = 31040, + + /// 请求agent api 的参数 recommendationParams 类型错误 + /// + /// + RC_AGENT_INVALID_PARAMETER_RECOMMENDATIONPARAMS = 31041, + + /// 请求 agent api 的上下文消息列表类型错误 + /// + RC_AGENT_INVALID_CONTEXT_MESSAGE_LIST = 31042, + + /// 请求agent api 的上下文消息类型错误 + /// + RC_AGENT_INVALID_CONTEXT_MESSAGE = 31043, + + /// 请求agent api 的上下文消息数量超过最大值 + /// + RC_AGENT_CONTEXT_MESSAGE_LIST_EXCEED_MAX = 31044, + + /// 协议层内部错误,查询,上传,下载过程中数据错误 + /// + RC_QUERY_ACK_NO_DATA = 32001, + + /// 协议层内部错误 + /// + RC_MESSAGE_DATA_INCOMPLETE = 32002, + + /// 服务器主动断开连接(仅 quic 协议下触发) + /// + RC_UDP_DISCONNECTED = 32011, + + /// 链接被服务器中断,可能原因是运营商认为此链接非法或无效,直接断开 出现此错误码后,SDK 会自动触发重连,App 无需处理 + /// + RC_CONNECTION_RESET_BY_PEER = 32054, + + /// 将消息存储到本地数据时失败。 发送或插入消息时,消息需要存储到本地数据库,当存库失败时,会回调此错误码 + /// + BIZ_SAVE_MESSAGE_ERROR = 33000, + + /// 协议栈未初始化(可能原因:1,没有调用SDK初始化接口;2,SDK的so未正常加载) + /// + CLIENT_NOT_INIT = 33001, + + /// 数据库错误 + /// + DATABASE_ERROR = 33002, + + /// 开发者接口调用时传入的参数错误 + /// + INVALID_PARAMETER = 33003, + + /// 历史消息云存储业务未开通 + /// + MSG_ROAMING_SERVICE_UNAVAILABLE = 33007, + + /// 消息存入本地数据库失败 + /// + RC_PROTOCOL_MESSAGE_INSERTED_ERROR = 33008, + + /// 聊天室被回收 + /// + RC_CHATROOM_RESET = 33009, + + /// 标签不存在 + /// + RC_TAG_NOT_EXIST = 33100, + + /// 标签已存在 + /// + RC_TAG_ALREADY_EXISTS = 33101, + + /// 标签不在会话中 + /// + RC_TAG_INVALID_FOR_CONVERSATION = 33102, + + /// 被编辑消息是接收的或者没有发送成功的 + /// + /// - Since: 5.26.0 + RC_MODIFIED_MESSAGE_IS_NOT_SENT = 33401, + + /// 被编辑的消息超过修改时限 + /// + /// - Since: 5.26.0 + RC_MODIFIED_MESSAGE_TIMEOUT = 33402, + + /// 连接已存在 + /// + RC_CONNECTION_EXIST = 34001, + + /// 小视频时间长度超出限制,默认小视频时长上限为 2 分钟 + /// + RC_SIGHT_MSG_DURATION_LIMIT_EXCEED = 34002, + + /// GIF 消息文件大小超出限制 + /// + RC_GIF_MSG_SIZE_LIMIT_EXCEED = 34003, + + /// 聊天室状态未同步完成,刚加入聊天室时调用获取 KV 接口,极限情况下会存在本地数据和服务器未同步完成的情况,建议延时一段时间再获取 + /// + RC_KV_STORE_NOT_SYNC = 34004, + + /// 连接环境不正确 + /// + RC_ENVIRONMENT_ERROR = 34005, + + /// 连接超时 + /// + RC_CONNECT_TIMEOUT = 34006, + + /// 查询的公共服务信息不存在,请确认查询的公共服务的类型和公共服务 id 是否匹配 + /// + RC_PUBLIC_SERVICE_PROFILE_NOT_EXIST = 34007, + + /// 消息不能被扩展,只支持单群聊,其他类型消息会返回此错误,消息在发送时,Message 对象的属性 canIncludeExpansion 置为 true 才能进行扩展 + /// + RC_MESSAGE_CANT_EXPAND = 34008, + + /// 消息扩展失败,一般是网络原因导致的,请确保网络状态良好,并且融云 SDK 连接正常 + /// + RC_MESSAGE_EXPAND_FAIL = 34009, + + /// 消息扩展大小超出限制, 默认消息扩展字典 key 长度不超过 32 个字符,value 长度不超过 4096 个字符,设置的 Expansion 键值对不超过 300 个 + /// + RC_MSG_EXPANSION_SIZE_LIMIT_EXCEED = 34010, + + /// 媒体消息媒体文件 http 上传失败 + /// + RC_FILE_UPLOAD_FAILED = 34011, + + /// 指定的会话类型不支持标签功能,会话标签仅支持单群聊会话、系统会话 + /// + RC_CONVERSATION_TAG_INVALID_CONVERSATION_TYPE = 34012, + + /// 标签中添加/删除的会话数量超限,最多支持添加/删除 1000 个会话 + /// + RC_CONVERSATION_TAG_LIMIT_EXCEED = 34013, + + /// 群已读回执版本不支持 + /// + RC_Group_Read_Receipt_Version_Not_Support = 34014, + + /// 视频压缩失败 + /// + RC_SIGHT_COMPRESS_FAILED = 34015, + + /// 用户级别设置未开通 + /// + RC_USER_SETTING_DISABLED = 34016, + + /// 消息拦截器处理接口返回的消息为空 + /// + RC_MESSAGE_NULL_EXCEPTION = 34017, + + /// 媒体文件上传异常,媒体文件不存在或文件大小为 0 + /// + RC_MEDIA_EXCEPTION = 34018, + + /// 上传媒体文件格式不支持 + /// + RC_MEDIA_FILETYPE_INVALID = 34019, + + /// 文件已过期或被清理 小视频文件默认存储 7 天,其它文件默认存储 6个月。到期后自动清理 + /// + RC_FILE_EXPIRED = 34020, + + /// 消息未被注册 + /// + RC_MESSAGE_NOT_REGISTERED = 34021, + + /// 该接口不支持超级群会话 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_NOT_SUPPORT = 34022, + + /// 超级群频道不存在 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_CHANNEL_NOT_EXIST = 34024, + + /// 扩展消息失败,因为消息中的会话类别与接口支持的会话类别不一致 + /// + /// - Since: 5.4.4 + RC_MESSAGE_EXPAND_CONVERSATION_TYPE_NOT_MATCH = 34025, + + /// 此请求不允许重定向,请使用文件真实地址 + /// + RC_NO_REDIRECT_ALLOWED = 34028, + + /// 消息不支持发送已读回执。 + /// + /// - Since: 5.20.0 + MESSAGE_READ_RECEIPT_NOT_SUPPORT = 34029, + + /// 在下载文件时遇到了 403 禁止访问的错误 + /// + /// - Solution encountered a 403 Forbidden error while downloading the file! + RC_MEDIA_DOWNLOAD_FORBIDDEN = 34030, + + /// 连接时connection option 为空 + /// + INVALID_PARAMETER_CONNECTOPTIONNULL = 34129, + + /// 开发者接口调用时传入的语言非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_LAUGUAGE = 34200, + + /// 开发者调用的接口不支持传入的会话类型 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CONVERSATIONTYPENOTSUPPORT = 34201, + + /// 开发者接口调用时传入的时间戳非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TIMESTAMP = 34202, + + /// 开发者接口调用时传入的 uid (服务器消息唯一 id)非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGEUID = 34203, + + /// 开发者接口调用时传入的 messageId 非法或者找不到对应的 Message + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGEID = 34204, + + /// 开发者接口调用时传入的 Message 非法,或者 MessageContent 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGECONTENT = 34205, + + /// 开发者接口调用时传入的 messageList 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGELIST = 34206, + + /// 开发者接口调用时传入的 mediaType 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MEDIATYPE = 34207, + + /// 开发者接口调用时传入的 requestUrl 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_REQUESTURL = 34208, + + /// 开发者接口调用时传入的 ConversationType 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CONVERSATIONTYPE = 34209, + + /// 开发者接口调用时传入的 targetId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TARGETID = 34210, + + /// 开发者调用频道相关接口时传入的 channelId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CHANNELID = 34211, + + /// 开发者接口调用时传入的 tagId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TAGID = 34212, + + /// 开发者接口调用时传入的 tagName 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TAGNAME = 34213, + + /// 开发者接口调用时传入的 userId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_USERID = 34214, + + /// 开发者接口调用时传入的 userIdList 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_USERIDLIST = 34215, + + /// 开发者接口调用时传入的 UserOnlineStatus 非法。 可能原因: 用户自定义的在线状态(1 < customerStatus <= 255), 设置自定义的在线状态,默认的在线状态值为 1,若离线则为 0 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_USERONLINESTATUS = 34216, + + /// 开发者接口调用时传入的 downloadMediaFileName 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_DOWNLOADMEDIAFILENAME = 34217, + + /// 开发者调用接口 setOfflineMessageDuration 传入的参数非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_SETOFFLINEMESSAGEDURATION = 34218, + + /// 开发者接口调用时传入的 HistoryMessageOption 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_RCHISTORYMESSAGEOPTION_COUNT = 34219, + + /// 开发者接口调用时传入的 MessageExpansion 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGEEXPANSION = 34220, + + /// 开发者接口调用时传入的UltraGroupMessageExpansion keyArray 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_ULTRAGROUPMESSAGEEXPANSION_KEYARRAY = 34221, + + /// uploadVoIPDeviceToken 接口检测到无效的 VoIP DeviceToken + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_UPLOADVOIPDEVICETOKEN = 34222, + + /// 开发者sendMediaMessage 传入的 Message.content 不是多媒体消息 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_NOTMEDIAMESSAGE = 34223, + + /// 开发者调用接口传入的时间(字符串)参数非法。可能原因:开发者调用接口传入的时间(字符串)参数类型不是字符串或者字符串为空。 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TIMESTRING = 34224, + + /// RCConversationIdentifier 参数非法。 可能原因:开发者调用接口传入的 RCConversationIdentifier 参数类型不对或者参数为空 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CONVERSATIONIDENTIFIER = 34225, + + /// 开发者调用接口 GetBlockPush 接口获取失败 + /// + /// - Since: 5.2.2 + RC_GETBLOCKPUSH_FAILED = 34226, + + /// 开发者调用数据库查询接口,查询失败 + /// + /// - Since: 5.2.2 + RC_DB_QUERY_ERROR = 34227, + + /// PushNotificationLevel 无效 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_NOTIFICATION_LEVEL = 34228, + + /// 无效的超级群频道类型 + /// + /// - Since: 5.2.4 + INVALID_PARAMETER_CHANNEL_TYPE = 34231, + + /// 开发者接口调用时传入的 count 非法 + /// + /// - Since: 5.2.5 + INVALID_PARAMETER_COUNT = 34232, + + /// 开发者接口调用时传入的 sendTime 非法 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_SEND_TIME = 34233, + + /// 开发者调用接口传入的 local path 地址不存在 + /// + INVALID_PARAMETER_LOCAL_PATH = 34234, + + /// 开发者调用接口传入的 mediaUrl 地址为空 + /// + INVALID_PARAMETER_MEDIA_URL = 34235, + + /// 开发者调用接口传入的 uniqueId 为空或者"" + /// + INVALID_PARAMETER_UNIQUE_ID = 34236, + + /// 开发者调用接口传入的 MessageTag 为空 或者MessageTag.value()为空或者 "" + /// + INVALID_PARAMETER_MSG_TAG = 34237, + + /// 非法的代理配置,RongIMProxy 为空或者非法 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_PROXY = 34238, + + /// 开发者接口调用 testProxy 时传入的代理测试服务非法 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_TESTHOST = 34239, + + /// 开发者接口调用 testProxy 接口时无法联通 + /// + /// - Since: 5.3.0 + INVALID_CONNECT_TESTHOST_FAILED = 34240, + + /// 开发者接口调用recallUltraGroupMessage时,撤回了不支持的消息类型 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_ULTRA_GROUP_MESSAGE_OBJECT_NAME = 34241, + + /// 开发者调用接口传入的 conversations 参数为 null 或者 conversations 数组包含 null 对象 + /// + INVALID_PARAMETER_CONVERSATIONS = 34242, + + /// 开发者调用接口传入的 message 参数为空 + /// + INVALID_PARAMETER_MESSAGE = 34243, + + /// 开发者调用接口传入的 Message.SentStatus 参数为 null + /// + INVALID_PARAMETER_SENT_STATUS = 34244, + + /// 设置的代理地址不可用 + /// + RC_CONN_PROXY_UNAVAILABLE = 34245, + + /// 文件保存失败 + /// + FILE_SAVED_FAILED = 34251, + + /// 文件不存在 + /// + FILE_NOT_EXIST = 34252, + + /// 文件长度错误 + /// + FILE_SIZE_ERROR = 34253, + + /// 下载链接无效 + /// + DOWNLOAD_URL_INVALID = 34254, + + /// 分片索引错误 + /// + SLICE_INDEX_ERROR = 34255, + + /// 上传ID无效 + /// + UPLOAD_ID_INVALID = 34256, + + /// App Key 无效 + /// + INVALID_APP_KEY = 34257, + + /// 参数 JoinMode 非法 + /// + INVALID_PARAMETER_JOIN_MODE = 34258, + + /// 参数 rtcRoomID 非法 + /// + INVALID_PARAMETER_RTCROOMID = 34259, + + /// 参数 key 非法 + /// + INVALID_PARAMETER_KEY = 34260, + + /// 参数keys 非法 + /// + INVALID_PARAMETER_KEYS = 34261, + + /// 参数 value 非法 + /// + INVALID_PARAMETER_VALUE = 34262, + + /// 参数 entries 非法 + /// + INVALID_PARAMETER_ENTRIES = 34263, + + /// 参数 notificationExtra 非法 + /// + INVALID_PARAMETER_NOTIFICATION_EXTRA = 34264, + + /// 参数 ChatRoomMemberOrder 非法 + /// + INVALID_PARAMETER_CHATROOM_MEMBER_ORDER = 34265, + + /// 参数 TimestampOrder 非法 + /// + INVALID_PARAMETER_TIMESTAMP_ORDER = 34266, + + /// 参数 status 非法 + /// + INVALID_PARAMETER_STATUS = 34268, + + /// 参数 title 非法 + /// + INVALID_PARAMETER_TITLE = 34269, + + /// 参数 portrait 非法 + /// + INVALID_PARAMETER_PORTRAIT = 34270, + + /// 参数 objectName 非法 + /// + MESSAGE_OBJECT_NAME_INVALID = 34271, + + /// 参数 keyword 非法 + /// + INVALID_PARAMETER_KEYWORD = 34274, + + /// 参数 objectName 列表非法 + /// + /// - Solution message object name list invalid + INVALID_PARAMETER_OBJECTNAMELIST = 34275, + + /// 参数 offset 非法 + /// + /// - Solution offset invalid + RC_INVALID_PARAMETER_OFFSET = 34276, + + /// 参数 start time 非法 + /// + /// - Since: 5.24.0 + RC_INVALID_PARAMETER_START_TIME = 34277, + + /// 参数 limit 非法 + /// + INVALID_PARAMETER_LIMIT = 34279, + + /// MessageDirection错误 + /// + INVALID_MESSAGE_DIRECTION = 34280, + + /// SentStatus错误 + /// + INVALID_MESSAGE_SENT_STATUS = 34281, + + /// 参数 target id 列表非法 + /// + INVALID_PARAMETER_TARGETID_LIST = 34282, + + /// 参数 span minutes 非法 + /// + INVALID_PARAMETER_SPAN_MINUTES = 34283, + + /// 参数 ConversationType 列表非法 + /// + /// - Solution conversation type list invalid + RC_INVALID_PARAMETER_CONVERSATION_TYPE_LIST = 34284, + + /// 请求导航时的url 为空 + /// + RC_INVALID_ARGUMENT = 34286, + + /// 开发者调用接口传入的 ConversationIdentifier 数组参数为空、数组长度为 0或超过限制、包含 null 或非法对象 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_CONVERSATION_IDENTIFIER_LIST = 34287, + + /// 开发者调用接口传入的 ClearMessageOption 数组参数为空、数组长度为 0或超过限制、包含 null 或非法对象 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_CLEAR_MESSAGE_OPTION_LIST = 34288, + + /// 参数 startMessageUID 无效 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_START_MESSAGEUID = 34289, + + /// 参数 endMessageUID 无效 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_END_MESSAGEUID = 34290, + + /// 不支持V4已读回执功能 + /// + /// - Since: 5.6.7 + RC_READ_RECEIPT_V4_NOT_SUPPORT = 34291, + + /// 不支持更新v4已读回执信息 + /// + /// - Since: 5.6.7 + RC_READ_RECEIPT_V4_UPDATE_NOT_SUPPORT = 34292, + + /// invalid parameter hours + /// + /// - Since: 5.4.5.107 + INVALID_PARAMETER_HOURS = 34293, + + /// fetch message changed info unavailable + /// + /// - Since: 5.4.5.107 + RC_ACTIVE_FETCH_MESSAGE_CHANGED_INFO_UNAVAILABLE = 34294, + + /// message changed info have fetched + /// + /// - Since: 5.4.5.107 + RC_MESSAGE_CHANGED_INFO_HAVE_FETCHED = 34295, + + /// 发送定向消息时,传入的会话类型不支持 + /// + /// - Solution 发送定向消息时,传入的会话类型不支持 + /// - Since: 5.6.9 + RC_DIRECTIONAL_MESSAGE_INVALID_CONVERSATION_TYPE = 34296, + + /// 多媒体上传&下载拦截器,处理接口返回的 conn 为空 + /// + /// - Since: 5.8.0 + RC_REQUEST_INTERCEPTOR_NULL_EXCEPTION = 34300, + + /// 数据库未初始化 + /// + RC_DB_NOT_INIT = 34301, + + /// 数据库错误 + /// + RC_DB_CORRUPT = 34302, + + /// 数据库 SQL 执行异常 + /// + RC_DB_SQL_ERROR = 34303, + + /// 查询数据不存在 + /// + RC_DB_DATA_NOT_FOUND = 34304, + + /// 网络数据解析失败 + /// + RC_NET_DATA_ERROR = 34305, + + /// 订阅事件传入的订阅类型非法 + /// + /// - Solution 订阅相关接口传入的订阅类型不支持 + INVALID_PARAMETER_SUBSCRIBE_TYPE = 34306, + + /// 订阅事件传入的订阅时长非法[60s ~ 30天] + /// + /// - Solution 订阅相关接口传入的订阅时长非法 + INVALID_PARAMETER_SUBSCRIBE_EXPIRY = 34307, + + /// 订阅事件传入的订阅用户列表空或者数据类型非法 + /// + /// - Solution 订阅相关接口传入的订阅用户列表非法 + INVALID_PARAMETER_SUBSCRIBE_PUBLISHER_USERIDS = 34308, + + /// 订阅事件传入的分页大小非法 + /// + /// - Solution 订阅相关接口传入的分页大小非法[1~200] + INVALID_PARAMETER_SUBSCRIBE_PAGESIZE = 34309, + + /// 参数 userProfile 非法 + /// + /// - Since: 5.10.0 + INVALID_PARAMETER_USER_PROFILE = 34312, + + /// 参数 userProfileVisibility 非法 + /// + /// - Since: 5.10.0 + INVALID_PARAMETER_USER_PROFILE_VISIBILITY = 34313, + + /// 参数 extra 无效 + /// + /// - Since: 5.10.2 + INVALID_PARAMETER_EXTRA = 34314, + + /// 数据库升级失败 + /// + /// - Since: 5.10.4 + RC_DB_UPGRADE_FAILED = 34315, + + /// 开发者接口调用时传入的参数 GroupInfo 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_INFO = 34318, + + /// 开发者接口调用时传入的参数 groupId 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_ID = 34319, + + /// 开发者接口调用时传入的参数 groupName 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_NAME = 34320, + + /// 开发者接口调用时传入的参数 groupIds 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_IDS = 34321, + + /// 开发者接口调用时传入的参数 GroupMemberRole 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_MEMBER_ROLE = 34322, + + /// 开发者接口调用时传入的参数 GroupApplicationStatus 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_APPLICATION_STATUS = 34323, + + /// 开发者接口调用时传入的参数 GroupApplicationDirection 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_APPLICATION_DIRECTION = 34324, + + /// 开发者接口调用时传入的参数 nickname 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_NICK_NAME = 34325, + + /// 开发者接口调用时传入的参数 reason 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_REASON = 34326, + + /// 开发者接口调用时传入的参数 remark 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_REMARK = 34327, + + /// 开发者接口调用时传入的参数 PagingQueryOption 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_PAGING_QUERY_OPTION = 34328, + + /// 数据正在同步中 + /// + /// - Since: 5.12.0 + NET_DATA_IS_SYNCHRONIZING = 34329, + + /// 开发者接口调用时传入的参数 QueryFriendsDirectionType 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_QUERY_FRIENDS_DIRECTION_TYPE = 34330, + + /// 开发者接口调用时传入的参数 DirectionType 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_DIRECTION_TYPE = 34331, + + /// 开发者接口调用时传入的参数 FriendApplicationType 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_APPLICATION_TYPE = 34332, + + /// 开发者接口调用时传入的参数 FriendApplicationStatus 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_APPLICATION_STATUS = 34333, + + /// 开发者接口调用时传入的参数 FriendAddPermission 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_ADD_PERMISSION = 34334, + + /// 开发者接口调用时传入的参数 extProfile 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_INFO_EXT_FIELDS = 34335, + + /// 实时会话未开启 + /// + /// - Since: 5.12.3 + RC_REAL_TIME_CONVERSATION_UNAVAILABLE = 34336, + + /// 客户主动上传日志功能未打开 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_DISABLED = 34337, + + /// 客户主动上传日志时间间隔超出限制 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_TIME_INTERVAL_EXCEED_LIMIT = 34338, + + /// 客户主动上传日志时间重复,请勿重复调用 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_TIME_DUPLICATE = 34339, + + /// 客户主动上传日志失败 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_FAILED = 34340, + + /// 开发者调用接口时传入的 pushServer 无效 + /// + /// - Since: 5.20.0 + INVALID_PARAMETER_PUSH_SERVER = 34341, + + /// 开发者调用接口时传入的统计地址无效 + /// + /// - Since: 5.20.0 + INVALID_PARAMETER_STATISTIC_SERVER = 34342, + + /// 开发者传入的 pushToken 参数无效,iOS 端使用 + /// + /// - Since: 5.20.0 + INVALID_PARAMETER_PUSH_TOKEN = 34343, + + /// 服务器数据解析失败 + /// + /// - Since: 5.26.0 + RC_SERVER_DATA_ERROR = 34344, + + /// 开发者调用时传入的消息类型无效 + /// + RC_INVALID_PARAMETER_MESSAGE_TYPE = 35024, + + /// 开发者调用时传入的 order 无效 + /// + /// - Solution order invalid + RC_INVALID_PARAMETER_ORDER = 35025, + + /// 传入的 disableUpdateLastMessage 参数无效。在会话类型为 ULTRA GROUP 时,该字段不允许设置为 true + /// + /// - Since: 5.12.2 + INVALID_DISABLE_UPDATE_LAST_MESSAGE = 35054, + + /// 超级群类型会话仅允许置顶默认频道 + /// + /// - Since: 5.20.0 + ONLY_DEFAULT_CHANNEL_SUPPORTS_PINNING = 35055, + + /// 发送消息时配置 needReceipt 错误,相关参数仅限单群聊会话内非状态消息、非群定向消息可配置,且需要开启已读回执 v5 功能 + /// + /// - Since: 5.20.0 + RC_SEND_READ_RECEIPT_CONF_ERROR = 35056, + + /// 语音转文字功能未开启 + /// + /// - Since: 5.22.0 + RC_SPEECH_TO_TEXT_DISABLE = 35057, + + /// 语音转文字请求进行中,请勿重复请求 + /// + /// - Since: 5.22.0 + RC_SPEECH_TO_TEXT_REQUEST_IN_PROCESS = 35058, + + /// 语音内容不可转换,参数无效 + /// + /// - Since: 5.22.0 + RC_SPEECH_TO_TEXT_MESSAGE_CONTENT_UNSUPPORTED = 35059, + + /// 翻译功能输入参数类型错误 + /// + /// - Since: 5.24 + RC_TRANSLATION_PARAMS_TYPE_INVALID = 35060, + + /// 翻译接口入参列表长度无效 + /// + /// - Since: 5.24 + RC_TRANSLATION_PARAMS_LIST_INVALID = 35061, + + /// 会话翻译策略值无效 + /// + /// - Since: 5.24 + RC_INVALID_PARAMETER_TRANSLATE_STRATEGY = 35062, + + /// 翻译设置的源语言与目标语言一致 + /// + /// - Since: 5.24 + RC_TRANSLATION_LANGUAGE_SAME = 35063, + + /// 调用翻译接口时传入的翻译模式值非法 + /// + /// - Since: 5.24 + RC_INVALID_PARAMETER_TRANSLATE_MODE = 35064, + + /// 调用翻译接口时,指定待翻译内容无效。 + /// + /// - Since: 5.24 + RC_TRANSLATION_TEXT_INVALID = 35065, + + /// 流式消息不可用 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DISABLE = 39001, + + /// 流式消息并发个数限制,最多 3 个。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_COUNT_LIMIT_EXCEEDED = 39002, + + /// 流式消息的摘要扩展 Key 不支持修改或删除。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_EXPANSION_KEY_ERROR = 39003, + + /// 拉取流式消息时被重置。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_RESET = 39004, + + /// 拉取流式消息请求失败。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_FAIL = 39005, + + /// 消息内容正在拉取中,请勿重复请求 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_IN_PROCESS = 39006, + + /// 流式消息已同步完成,不需要重新拉取 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_SYNCED = 39007, + + /// 取消暂停失败 + /// + /// - Solution 取消 / 暂停下载失败, 失败的原因现在为下载任务已经结束 + /// - Since: 5.6.6 + OPERATION_MEDIA_NOT_FOUND = -3, + + /// 未知错误 + /// + ERRORCODE_UNKNOWN = -1 + +}; + +#endif /* RCErrorCode_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFileMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFileMessage.h new file mode 100644 index 0000000..195f2de --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFileMessage.h @@ -0,0 +1,40 @@ +// +// RCFileMessage.h +// RongIMLib +// +// Created by 珏王 on 16/5/23. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +/// 文件消息的类型名 +#define RCFileMessageTypeIdentifier @"RC:FileMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 文件消息类 +/// +/// 文件消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCFileMessage : RCMediaMessageContent + +/// 文件大小,单位为 Byte +@property (nonatomic, assign) long long size; + +/// 文件类型 +@property (nonatomic, copy, nullable) NSString *type; + +/// 文件的网络地址 +@property (nonatomic, copy, nullable) NSString *fileUrl; + +/// 初始化文件消息 +/// +/// - Parameter localPath: 文件的本地路径 +/// - Returns: 文件消息对象 ++ (instancetype)messageWithFile:(NSString *)localPath; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFileUtility.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFileUtility.h new file mode 100644 index 0000000..6ce19a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFileUtility.h @@ -0,0 +1,127 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCFileUtility.h + +#ifndef __RCFileUtility +#define __RCFileUtility + +#import "RCStatusDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCFileUtility : NSObject + +/*! + 设置文件媒体类型 + + - Returns: 文件类型 + */ ++ (NSString *)getMimeType:(RCMediaType)fileType; + +/*! + 获取上传文件名称 + + - Returns: 文件媒体类型 + */ ++ (NSString *)generateKey:(NSString *)mimeType; + +/*! + 生成下载的文件路径 + + - Returns: 文件名称 + */ ++ (NSString *)getFileName:(NSString *)imgUrl + conversationType:(RCConversationType)conversationType + mediaType:(RCMediaType)mediaType + targetId:(NSString *)targetId; + +/*! + 根据文件 URL 获取 MD5 key + + - Returns: key + */ ++ (NSString *)getFileKey:(NSString *)fileUri; + +/*! + 根据文件类型获取文件夹名称 + + - Returns: 文件夹名称 + */ ++ (NSString *)getMediaDir:(RCMediaType)fileType; + +/*! + 根据会话类型获取存储的文件夹名称 + + - Returns: 文件夹名称 + */ ++ (NSString *)getCateDir:(RCConversationType)categoryId; + +/*! + 文件是否存在 + + - Returns: 是否存在 +*/ ++ (BOOL)isFileExist:(NSString *)fileName; + +/*! + 存储数据到指定路径 + + - Parameter filePath: 文件存储路径 + - Parameter content: 存储数据 + - Returns: 存储成功与否的结果 + */ ++ (BOOL)saveFile:(NSString *)filePath content:(NSData *)content; + +/// 文件唯一存储地址,用于解决文件重命名冲突处理。 +/// 如果 filePath 对应的本地文件不存在,则返回 filePath。 +/// 如果 filePath 对应的本地文件存在,则在 filePath 的名字后面增加 (1),数字会累加,直到找到文件不存在的路径。 ++ (NSString *)uniqueFilePath:(NSString *)filePath; + +/*! + 根据文件名获取文件类型 + + - Parameter fileName: 文件名,需要带扩展名 + */ ++ (NSString *)getTypeName:(NSString *)fileName; + +/*! + 根据文件 URL 获取文件本地存储路径 + + - Returns: 文件本地存储路径 + */ ++ (nullable NSString *)getFileLocalPath:(NSString *)fileUri; + +/// 关联文件远端 URL 和本地路径 ++ (void)setFileLocalPath:(NSString *)localPath fileUri:(NSString *)fileUri; +/// 获取小视频文件缓存路径 ++ (NSString *)getSightCachePath:(NSString *)sightUrl; + +/// 移除非法字符(../name.txt, ../..name.txt => name.txt) ++ (NSString *)recheckFileName:(NSString *)fileName; + +/// 媒体消息文件名字生成规则,主要用于文件下载。 +/// 1. 获取 remoteUrl 属性中的 attname 字段对应的文件名。 +/// 2. 获取 remoteUrl 链接中最后一段作为文件名。 +/// 3. 对 remoteUrl 做 md5 作为文件名。 +/// 将上面取到的文件名做 urlDecode。 ++ (NSString *)getFileNameFromRemoteURL:(NSString *)remoteURL; + +@end + +@interface RCFileUtility (Deprecated) + +/// 文件唯一存储地址 ++ (NSString *)getUniqueFileName:(NSString *)baseFileName __deprecated_msg("Use uniqueFilePath: instead."); + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFollowInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFollowInfo.h new file mode 100644 index 0000000..5c18786 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFollowInfo.h @@ -0,0 +1,24 @@ +// +// RCFollowInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/14. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCFollowInfo : NSObject + +/// 用户 Id +@property (nonatomic, copy) NSString *userId; + +/// 关注时间戳 +/// 当前用户关注此用户的时间戳 +@property (nonatomic, assign) long long time; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendApplicationInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendApplicationInfo.h new file mode 100644 index 0000000..5ffb2f8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendApplicationInfo.h @@ -0,0 +1,40 @@ +// +// RCFriendApplicationInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 好友申请信息 +@interface RCFriendApplicationInfo : NSObject + +/// 申请用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 申请用户名 +@property (nonatomic, copy) NSString *name; + +/// 申请用户头像 +@property (nonatomic, copy) NSString *portraitUri; + +/// 请求类型:发送的好友请求、接收的好友请求 +@property (nonatomic, assign) RCFriendApplicationType applicationType; + +/// 状态类型:申请添加好友、已同意、已拒绝、已过期 +@property (nonatomic, assign) RCFriendApplicationStatus applicationStatus; + +/// 操作时间 +@property (nonatomic, assign) long long operationTime; + +/// 备注内容 +@property (nonatomic, copy) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendEnum.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendEnum.h new file mode 100644 index 0000000..4227c31 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendEnum.h @@ -0,0 +1,67 @@ +// +// RCFriendEnum.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#ifndef RCFriendEnum_h +#define RCFriendEnum_h + +/// 添加好友权限 +typedef NS_ENUM(NSInteger, RCFriendAddPermission) { + /// 不需本人同意,任何人直接添加好友 + RCFriendAddPermissionFree = 1, + /// 需要用户同意添加好友 + RCFriendAddPermissionNeedVerify = 2, + /// 不允许任何人添加好友 + RCFriendAddPermissionNoOneAllowed = 3, +}; + +/// - 好友方向类型:双向好友(目前只支持双向好友) +typedef NS_ENUM(NSInteger, RCDirectionType) { + /// 双向好友 + RCDirectionTypeBoth = 2, +}; + +/// 好友关系类型 +typedef NS_ENUM(NSInteger, RCFriendRelationType) { + /// 不在双方的好友列表中 + RCFriendRelationTypeNone = 0, + /// 在我的好友列表中 + RCFriendRelationTypeInMyFriendList = 1, + /// 仅在对方的好友列表中 + RCFriendRelationTypeInOtherFriendList = 2, + /// 在双方的好友列表中 + RCFriendRelationTypeBothWay = 3, +}; + +/// 好友申请类型 +typedef NS_ENUM(NSInteger, RCFriendApplicationType) { + /// 发送的好友请求 + RCFriendApplicationTypeSent = 1, + /// 接收的好友请求 + RCFriendApplicationTypeReceived = 2 +}; + +/// 好友申请状态 +typedef NS_ENUM(NSInteger, RCFriendApplicationStatus) { + /// 未处理 + RCFriendApplicationStatusUnHandled = 0, + /// 已同意 + RCFriendApplicationStatusAccepted = 1, + /// 已拒绝 + RCFriendApplicationStatusRefused = 2, + /// 已过期 + RCFriendApplicationStatusExpired = 3, +}; + +/// 好友列表查询方向 +typedef NS_ENUM(NSInteger, RCQueryFriendsDirectionType) { + /// 双向好友 + RCQueryFriendsDirectionTypeBoth = 2, +}; + + +#endif /* RCFriendEnum_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendEventDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendEventDelegate.h new file mode 100644 index 0000000..82722a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendEventDelegate.h @@ -0,0 +1,69 @@ +// +// RCFriendEventDelegate.h +// RongIMLibCore +// +// Created by Lang on 2024/8/23. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCFriendEventDelegate + +@optional + +/// 添加好友回调 +/// - Parameter userId: 用户 ID +/// - Parameter name: 用户名 +/// - Parameter portraitUri: 用户头像 +/// - Parameter directionType: 好友方向类型 +/// - Parameter operationTime: 操作时间 +- (void)onFriendAdd:(NSString *)userId + name:(NSString *)name + portraitUri:(NSString *)portraitUri + directionType:(RCDirectionType)directionType + operationTime:(long long)operationTime; + +/// 删除好友回调 +/// - Parameter userIds: 用户列表 +/// - Parameter directionType: 好友方向类型 +/// - Parameter operationTime: 操作时间 +- (void)onFriendDelete:(NSArray *)userIds + directionType:(RCDirectionType)directionType + operationTime:(long long)operationTime; + +/// 好友申请状态变更回调 +/// - Parameter userId: 用户 ID +/// - Parameter applicationType: 请求类型 +/// - Parameter applicationStatus: 状态类型 +/// - Parameter directionType: 好友方向类型 +/// - Parameter operationTime: 操作时间 +/// - Parameter extra: 备注内容 +- (void)onFriendApplicationStatusChanged:(NSString *)userId + applicationType:(RCFriendApplicationType)applicationType + applicationStatus:(RCFriendApplicationStatus)applicationStatus + directionType:(RCDirectionType)directionType + operationTime:(long long)operationTime + extra:(nullable NSString *)extra; + +/// 清空好友的回调 +/// 此操作只能由服务端发起 +/// - Parameter operationTime: 操作时间 +- (void)onFriendCleared:(long long)operationTime; + +/// 好友信息变更多端回调事件 +/// - Parameter userId: 用户 ID +/// - Parameter remark: 好友备注 +/// - Parameter extProfile: 扩展信息 +/// - Parameter operationTime: 操作时间 +- (void)onFriendInfoChangedSync:(NSString *)userId + remark:(nullable NSString *)remark + extProfile:(nullable NSDictionary *)extProfile + operationTime:(long long)operationTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendInfo.h new file mode 100644 index 0000000..0f74b1f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendInfo.h @@ -0,0 +1,40 @@ +// +// RCFriendInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 好友信息 +@interface RCFriendInfo : NSObject + +/// 用户 id +@property (nonatomic, copy) NSString *userId; + +/// 用户名 +@property (nonatomic, copy) NSString *name; + +/// 用户头像 +@property (nonatomic, copy) NSString *portraitUri; + +/// 好友备注 +@property (nonatomic, copy) NSString *remark; + +/// 好友扩展信息 +@property (nonatomic, copy) NSDictionary *extProfile; + +/// 好友添加时间 +@property (nonatomic, assign) long long addTime; + +/// 好友方向类型 +@property (nonatomic, assign) RCDirectionType directionType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendRelationInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendRelationInfo.h new file mode 100644 index 0000000..f43203f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFriendRelationInfo.h @@ -0,0 +1,25 @@ +// +// RCFriendRelationInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 好友关系结果 +@interface RCFriendRelationInfo : NSObject + +/// 用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 好友关系 +@property (nonatomic, assign) RCFriendRelationType relationType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFwLog.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFwLog.h new file mode 100644 index 0000000..dc93072 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCFwLog.h @@ -0,0 +1,96 @@ +// +// RCFwLog.h +// MacLogTest +// +// Created by ZhangLei on 26/02/2018. +// Copyright © 2018 RongCloud. All rights reserved. +// + +#import +#define __FILE_STRING__ [NSString stringWithUTF8String:__FILE__] +#define __GET_FILENAME__ \ + [__FILE_STRING__ substringFromIndex:[__FILE_STRING__ rangeOfString:@"/" options:NSBackwardsSearch].location + 1] +#define RCLogS(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_S type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogR(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_R type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogF(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_F type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogE(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_E type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogW(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_W type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogI(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_I type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogD(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_D type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogV(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_V type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] + +#define FwLogS(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_S type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogR(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_R type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogF(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_F type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogE(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_E type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogW(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_W type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogI(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_I type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogD(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_D type:p tag:t keys:k, ##__VA_ARGS__] + +typedef NS_ENUM(NSInteger, RCFwLogLevel) { + RC_Level_S = -2, //Statistics + RC_Level_R = -1, //Record + RC_Level_N = 0, //None + RC_Level_F = 1, //Fatal + RC_Level_E = 2, //Error + RC_Level_W = 3, //Warn + RC_Level_I = 4, //Info + RC_Level_D = 5, //Debug + RC_Level_V = 6 //Verbose +}; + +typedef NS_OPTIONS(NSUInteger, RCLogType) { + RC_Type_APP = 1 << 0, // User interface. + RC_Type_PTC = 1 << 1, // Protocol. + RC_Type_ENV = 1 << 2, + RC_Type_DET = 1 << 3, + RC_Type_CON = 1 << 4, + RC_Type_RCO = 1 << 5, + RC_Type_CRM = 1 << 6, + RC_Type_MSG = 1 << 7, // Message. + RC_Type_MED = 1 << 8, // Media file. + RC_Type_LOG = 1 << 9, + RC_Type_DEB = 1 << 10, // Debug log. + RC_Type_CRS = 1 << 11, // Crash stack. + RC_Type_RTC = 1 << 12 // RTC. +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCFwLog : NSObject + +// should be call init first, otherwise getInstance will return nil. ++ (void)init:(NSString *)appKey sdkVer:(NSString *)sdkVer; ++ (instancetype)getInstance; + ++ (void)setLogMonitor:(NSInteger)value; ++ (void)setToken:(NSString *)token; ++ (void)setUserId:(NSString *)userId; ++ (void)setLogListener:(void (^)(NSString *log))logBlock; ++ (void)setConsoleLogLevel:(RCFwLogLevel)level; +/// 网络状态 100% lost 时,此方法会阻塞 30s,切记不要在主线程直接调用 ++ (nullable NSString *)getIpWithHost:(NSString *)hostName; +/// 异步获取 ip 地址,内部有切线程处理,子线程执行,主线程回调 callback ++ (void)getIpWithHost:(NSString *)hostName callback:(void (^)(NSString *_Nullable ipString))callback; ++ (void)setRcDebugLogLevel:(NSInteger)rcDebugLogLevel; ++ (void)setRcDebugLogMaxSize:(long long)rcDebugLogMaxSize; ++ (void)startRealTimelog __deprecated_msg("has been deprecated"); +- (void)uploadLog:(nullable void (^)(int code))errorBlock __deprecated_msg("has been deprecated"); +- (void)uploadDebugLog __deprecated_msg("has been deprecated"); +- (void)write:(RCFwLogLevel)level + type:(RCLogType)type + tag:(NSString *)tag + keys:(NSString *)keys, ... NS_FORMAT_FUNCTION(4, 5); + +- (void)write:(RCFwLogLevel)level type:(RCLogType)type tag:(NSString *)tag keys:(NSArray *)keys values:(NSArray *)vals; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGIFMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGIFMessage.h new file mode 100644 index 0000000..69aa8a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGIFMessage.h @@ -0,0 +1,54 @@ +// +// RCGIFMessage.h +// RongIMLib +// +// Created by liyan on 2018/12/20. +// Copyright © 2018 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// GIF 消息的类型名 +/// +/// 仅支持 gif 类型的图片;jpg、png 等其他格式的图片请使用 RCImageMessage +#define RCGIFMessageTypeIdentifier @"RC:GIFMsg" + +/// GIF 消息 +/// +/// GIF 消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCGIFMessage : RCMediaMessageContent + +/// GIF 图的大小,单位字节 +@property (nonatomic, assign) long long gifDataSize; + +/// GIF 图的宽 +@property (nonatomic, assign) long width; + +/// GIF 图的高 +@property (nonatomic, assign) long height; + +/// 初始化 GIF 消息 +/// +/// - Parameter gifImageData: GIF 图的数据 +/// - Parameter width: GIF 的宽 +/// - Parameter height: GIF 的高 +/// +/// - Returns: GIF 消息对象 ++ (instancetype)messageWithGIFImageData:(NSData *)gifImageData width:(long)width height:(long)height; + +/// 初始化 GIF 消息 +/// +/// - Parameter gifURI: GIF 的本地路径 +/// - Parameter width: GIF 的宽 +/// - Parameter height: GIF 的高 +/// +/// - Returns: GIF 消息对象 ++ (instancetype)messageWithGIFURI:(NSString *)gifURI width:(long)width height:(long)height; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGetUnreadMentionMeConversationListParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGetUnreadMentionMeConversationListParams.h new file mode 100644 index 0000000..f76c058 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGetUnreadMentionMeConversationListParams.h @@ -0,0 +1,31 @@ +// +// RCGetUnreadMentionMeConversationListParams.h +// RongIMLibCore +// +// Created by RongCloud on 2025/9/5. +// Copyright © 2025 RongCloud. All rights reserved. +// +/// - Since: 5.28.0 +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCGetUnreadMentionMeConversationListParams : NSObject +/// 支持的会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// 支持单聊、群聊、系统、超级群会话类型 +/// 非上述类型或者空数组,查询返回错误码 34284 +@property (nonatomic, copy)NSArray *conversationTypes; + +/// 是否置顶优先,传 YES 表示置顶会话优先返回,否则结果只以会话时间排序 +/// 默认值为 YES +@property (nonatomic, assign)BOOL topPriority; + +/// 查询的开始时间, 传 0 表示查询最新时间的会话,后续查询可传入 conversations 的最后一个元素的 conversation time 单位:毫秒 +/// 默认值为 0,小于 0 则查询返回错误码 34202 +@property (nonatomic, assign)long long timestamp; + +/// 获取的数量,有效值范围 [1, 100] 默认值为 0,超过范围则查询返回错误码 34232 +@property (nonatomic, assign)NSUInteger count; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroup.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroup.h new file mode 100644 index 0000000..17de912 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroup.h @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCGroup.h +// Created by Heq.Shinoda on 14-9-6. + +#import + +NS_ASSUME_NONNULL_BEGIN +/// 群组信息类 +@interface RCGroup : NSObject + +/// 群组 ID +@property (nonatomic, copy) NSString *groupId; + +/// 群组名称 +@property (nonatomic, copy) NSString *groupName; + +/// 群组头像的 URL +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 群组信息附加字段 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 群组信息的初始化方法 +/// +/// - Parameter groupId: 群组 ID +/// - Parameter groupName: 群组名称 +/// - Parameter portraitUri: 群组头像的 URL +/// +/// - Returns: 群组信息对象 +- (instancetype)initWithGroupId:(NSString *)groupId + groupName:(NSString *)groupName + portraitUri:(nullable NSString *)portraitUri; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupApplicationInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupApplicationInfo.h new file mode 100644 index 0000000..a1e68e0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupApplicationInfo.h @@ -0,0 +1,48 @@ +// +// RCGroupApplicationInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import +@class RCGroupMemberInfo; + + +NS_ASSUME_NONNULL_BEGIN + +/// 群申请事件 +@interface RCGroupApplicationInfo : NSObject + +/// 群组 ID +@property (nonatomic, copy) NSString *groupId; + +/// 入群者信息 +@property (nonatomic, strong) RCGroupMemberInfo *joinMemberInfo; + +/// 邀请者信息 +@property (nonatomic, strong, nullable) RCGroupMemberInfo *inviterInfo; + +/// 操作人信息 +@property (nonatomic, strong, nullable) RCGroupMemberInfo *operatorInfo; + +/// 群申请状态 +@property (nonatomic, assign) RCGroupApplicationStatus status; + +/// 群申请方向 +@property (nonatomic, assign) RCGroupApplicationDirection direction; + +/// 群申请类型 +@property (nonatomic, assign) RCGroupApplicationType type; + +/// 操作时间 +@property (nonatomic, assign) long long operationTime; + +/// 原因 +@property (nonatomic, copy, nullable) NSString *reason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupEnum.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupEnum.h new file mode 100644 index 0000000..82c0361 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupEnum.h @@ -0,0 +1,136 @@ +// +// RCGroupEnum.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#ifndef RCGroupEnum_h +#define RCGroupEnum_h + +/// 加入群权限 +typedef NS_ENUM(NSInteger, RCGroupJoinPermission) { + /// 需要群主验证(默认) + RCGroupJoinPermissionOwnerVerify = 0, + /// 不用验证 + RCGroupJoinPermissionFree = 1, + /// 群主或群管理员 + RCGroupJoinPermissionOwnerOrManagerVerify = 2, + /// 不允许任何人加入 + RCGroupJoinPermissionNoOneAllowed = 3, +}; + +/// 群操作权限 +typedef NS_ENUM(NSInteger, RCGroupOperationPermission) { + /// 群主(默认) + RCGroupOperationPermissionOwner = 0, + /// 群主或群管理员 + RCGroupOperationPermissionOwnerOrManager = 1, + /// 所有人 + RCGroupOperationPermissionEveryone = 2 +}; + +/// 邀请加入群组处理权限 +typedef NS_ENUM(NSInteger, RCGroupInviteHandlePermission) { + /// 不需要被邀请人同意(默认) + RCGroupInviteHandlePermissionFree = 0, + /// 需要被邀请人同意 + RCGroupInviteHandlePermissionInviteeVerify = 1, +}; + +/// 群成员资料编辑权限 +typedef NS_ENUM(NSInteger, RCGroupMemberInfoEditPermission) { + /// 群主、群管理员和自己(默认) + RCGroupMemberInfoEditPermissionOwnerOrManagerOrSelf = 0, + /// 群主和自己 + RCGroupMemberInfoEditPermissionOwnerOrSelf = 1, + /// 仅自己 + RCGroupMemberInfoEditPermissionSelf = 2, +}; + +/// 群成员身份 +typedef NS_ENUM(NSInteger, RCGroupMemberRole) { + /// 不区分角色(未加群时无角色) + RCGroupMemberRoleUndef = 0, + /// 普通群成员 + RCGroupMemberRoleNormal = 1, + /// 管理员 + RCGroupMemberRoleManager = 2, + /// 群主 + RCGroupMemberRoleOwner = 3, +}; + +/// 操作类型枚举 +typedef NS_ENUM(NSInteger, RCGroupOperation) { + /// 创建群 + RCGroupOperationCreate = 0, + + /// 加入 + RCGroupOperationJoin = 1, + + /// 踢出 + RCGroupOperationKick = 2, + + /// 退出 + RCGroupOperationQuit = 3, + + /// 解散 + RCGroupOperationDismiss = 4, + + /// 添加管理员 + RCGroupOperationAddManager = 5, + + /// 移除管理员 + RCGroupOperationRemoveManager = 6, + + /// 转让群主 + RCGroupOperationTransferGroupOwner = 7, +}; + +/// 群申请状态 +typedef NS_ENUM(NSInteger, RCGroupApplicationStatus) { + /// 管理员待处理 + RCGroupApplicationStatusManagerUnHandled = 0, + /// 管理员已拒绝 + RCGroupApplicationStatusManagerRefused = 1, + /// 被邀请人待处理 + RCGroupApplicationStatusInviteeUnHandled = 2, + /// 被邀请人拒绝 + RCGroupApplicationStatusInviteeRefused = 3, + /// 已加入 + RCGroupApplicationStatusJoined = 4, + /// 已过期 + RCGroupApplicationStatusExpired = 5, +}; + +/// 操作类型 +typedef NS_ENUM(NSInteger, RCGroupOperationType) { + /// 添加 + RCGroupOperationTypeAdd = 1, + /// 删除 + RCGroupOperationTypeRemove = 2 +}; + +/// 群申请方向 +typedef NS_ENUM(NSInteger, RCGroupApplicationDirection) { + /// 发出的申请 + RCGroupApplicationDirectionApplicationSent = 0, + /// 发出的邀请 + RCGroupApplicationDirectionInvitationSent = 1, + /// 收到的邀请 + RCGroupApplicationDirectionInvitationReceived = 2, + /// 收到的申请 + RCGroupApplicationDirectionApplicationReceived = 3 +}; + +/// 群申请类型 +typedef NS_ENUM(NSInteger, RCGroupApplicationType) { + /// 主动加入群组 + RCGroupApplicationTypeApplication = 0, + /// 被邀请加入群组 + RCGroupApplicationTypeInvitation = 1, +}; + + +#endif /* RCGroupEnum_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupEventDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupEventDelegate.h new file mode 100644 index 0000000..a363090 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupEventDelegate.h @@ -0,0 +1,114 @@ +// +// RCGroupEventDelegate.h +// RongIMLibCore +// +// Created by Lang on 2024/7/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +#import +#import +@class RCGroupMemberInfo; +@class RCGroupApplicationInfo; + + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCGroupEventDelegate + +@optional + +/// 群组操作回调 +/// - Parameter groupId: 群组 ID +/// - Parameter operatorInfo: 操作者信息。服务端 api 操作踢出时为空。 +/// - Parameter groupInfo: 群组信息,仅在操作类型为创建群组时有效。 +/// - Parameter operation: 操作类型 +/// - Parameter memberInfos: 目标用户信息列表 +/// - Parameter operationTime: 操作时间 +/// - Warning 在该回调中,`groupInfo` 的 `remark`、`role`、`joinedTime` 字段不会返回有效值,它们可能为空或为默认值。 +/// 如需获取这些字段,请通过` -[RCCoreClient getGroupsInfo:success:error:]` 接口查询。 +- (void)onGroupOperation:(NSString *)groupId + operatorInfo:(nullable RCGroupMemberInfo *)operatorInfo + groupInfo:(nullable RCGroupInfo *)groupInfo + operation:(RCGroupOperation)operation + memberInfos:(NSArray *)memberInfos + operationTime:(long long)operationTime; + +/// 群组资料变更回调 +/// - Parameter operatorInfo: 操作者信息 +/// - Parameter groupInfo: 群组信息,只有包含在 updateKeys 中的属性值有效 +/// - Parameter updateKeys: 群组信息内容有变更的属性 +/// - Parameter operationTime: 操作时间 +- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo + groupInfo:(RCGroupInfo *)groupInfo + updateKeys:(NSArray *)updateKeys + operationTime:(long long)operationTime + __deprecated_msg( + "Use [RCGroupEventDelegate onGroupInfoChanged:fullGroupInfo:changedGroupInfo:operationTime:] instead"); + +/// 群组资料变更回调 +/// - Parameter operatorInfo: 操作者信息 +/// - Parameter fullGroupInfo: 全量群组信息 +/// - Parameter changedGroupInfo: 内容有变更的群组信息 +/// - Parameter operationTime: 操作时间 +- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo + fullGroupInfo:(RCGroupInfo *)fullGroupInfo + changedGroupInfo:(RCGroupInfo *)changedGroupInfo + operationTime:(long long)operationTime + __deprecated_msg( + "Use [RCGroupEventDelegate onGroupInfoChanged:fullGroupInfo:changedProperties:operationTime:] instead"); + +/// 群组资料变更回调 +/// - Parameter operatorInfo: 操作者信息 +/// - Parameter fullGroupInfo: 全量群组信息 +/// - Parameter properties: 群组信息有变更的属性 +/// - Parameter operationTime: 操作时间 +/// - Since: 5.22.0 +/// - Warning 在该回调中,`fullGroupInfo` 的 `remark`、`role`、`joinedTime` 字段不会返回有效值,它们可能为空或为默认值。 +/// 如需获取这些字段,请通过` -[RCCoreClient getGroupsInfo:success:error:]` 接口查询。 +- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo + fullGroupInfo:(RCGroupInfo *)fullGroupInfo + changedProperties:(NSArray *)properties + operationTime:(long long)operationTime; + +/// 群成员资料变更回调 +/// - Parameter groupId: 群组 ID +/// - Parameter operatorInfo: 操作人成员资料 +/// - Parameter memberInfo: 有变更的群成员资料 +/// - Parameter operationTime: 操作时间 +- (void)onGroupMemberInfoChanged:(NSString *)groupId + operatorInfo:(RCGroupMemberInfo *)operatorInfo + memberInfo:(RCGroupMemberInfo *)memberInfo + operationTime:(long long)operationTime; + +/// 群申请事件回调 +/// 包含以下事件: +/// - 用户申请加入群组的**申请**或**结果** +/// - 邀请加入群组的**申请**或**结果** +- (void)onGroupApplicationEvent:(RCGroupApplicationInfo *)event; + +/// 群备注名更新多端同步回调事件 +/// - Parameter groupId: 群组 ID +/// - Parameter operationType: 操作类型,添加或移除 +/// - Parameter groupRemark: 群备注名 +/// - Parameter operationTime: 操作时间 +- (void)onGroupRemarkChangedSync:(NSString *)groupId + operationType:(RCGroupOperationType)operationType + groupRemark:(NSString *)groupRemark + operationTime:(long long)operationTime; + +/// 群成员特别关注变更多端同步回调事件 +/// - Parameter groupId: 群组 ID +/// - Parameter operationType: 操作类型,添加或移除 +/// - Parameter userIds: 用户 ID 列表 +/// - Parameter operationTime: 操作时间 +- (void)onGroupFollowsChangedSync:(NSString *)groupId + operationType:(RCGroupOperationType)operationType + userIds:(NSArray *)userIds + operationTime:(long long)operationTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupInfo.h new file mode 100644 index 0000000..fe44fc0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupInfo.h @@ -0,0 +1,113 @@ +// +// RCGroupInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/// 群组信息属性 key 值 +typedef NSString *RCGroupInfoKeys NS_STRING_ENUM; + +/// 群名称 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysName; +/// 群头像 URL 地址 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysPortraitUri; +/// 群简介 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysIntroduction; +/// 群公告 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysNotice; +/// 主动加入群权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysJoinPermission; +/// 将群成员移出群组设置 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysRemoveMemberPerm; +/// 谁可以邀请他人入群 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysInvitePermission; +/// 被邀请加入群组权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysInviteHandlePermission; +/// 修改群资料权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysGroupInfoEditPermission; +/// 修改群成员资料权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysMemberInfoEditPermission; +/// 群扩展信息 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysExtProfile; + +@interface RCGroupInfo : NSObject + +/// 群组 ID +@property (nonatomic, copy) NSString *groupId; + +/// 群名称 +@property (nonatomic, copy) NSString *groupName; + +/// 群头像 URL 地址,长度不超过 1024 个字符 +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 群简介,长度不超过 512 个字符 +@property (nonatomic, copy, nullable) NSString *introduction; + +/// 群公告,长度不超过 1024 个字符 +@property (nonatomic, copy, nullable) NSString *notice; + +/// 扩展信息, +/// 自定义属性需要通过开发者后台或 服务端 API 设置后才能使用,否则返回设置失败 +@property (nonatomic, strong) NSDictionary *extProfile; + +/// 主动加入群权限 +/// 默认需要群主验证 +@property (nonatomic, assign) RCGroupJoinPermission joinPermission; + +/// 移除群成员权限 +/// 默认群主 +@property (nonatomic, assign) RCGroupOperationPermission removeMemberPermission; + +/// 邀请他人入群权限 +/// 默认群主 +@property (nonatomic, assign) RCGroupOperationPermission invitePermission; + +/// 被邀请加入群组权限 +/// 默认不需要被邀请人同意 +@property (nonatomic, assign) RCGroupInviteHandlePermission inviteHandlePermission; + +/// 修改群资料权限 +/// 默认群主 +@property (nonatomic, assign) RCGroupOperationPermission groupInfoEditPermission; + +/// 修改群成员资料权限 +/// 默认群主、群管理员、自已都可以 +@property (nonatomic, assign) RCGroupMemberInfoEditPermission memberInfoEditPermission; + +#pragma mark - 只读属性 + +/// 创建者 userId +@property (nonatomic, copy, readonly) NSString *creatorId; + +/// 群主 userId +@property (nonatomic, copy, readonly) NSString *ownerId; + +/// 群备注 +/// 自己设置备注名,其他人看不到 +@property (nonatomic, copy, readonly, nullable) NSString *remark; + +/// 群组创建时间。 +@property (nonatomic, assign, readonly) long long createTime; + +/// 群当前成员人数。 +@property (nonatomic, assign, readonly) NSUInteger membersCount; + +/// 当前用户加入时间:用户多次加入群组时,以最后一次加入时间为准 +@property (nonatomic, assign, readonly) long long joinedTime; + +/// 我的群身份 +@property (nonatomic, assign, readonly) RCGroupMemberRole role; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupMemberInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupMemberInfo.h new file mode 100644 index 0000000..5a68e35 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupMemberInfo.h @@ -0,0 +1,39 @@ +// +// RCGroupMemberInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCGroupMemberInfo : NSObject + +/// 用户 Id +@property (nonatomic, copy) NSString *userId; + +/// 头像 URL +@property (nonatomic, copy) NSString *portraitUri; + +/// 用户名 +@property (nonatomic, copy) NSString *name; + +/// 在群中的昵称(别名),默认为用户名 +@property (nonatomic, copy, nullable) NSString *nickname; + +/// 附加信息 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 入群时间戳 +@property (nonatomic, assign) long long joinedTime; + +/// 我群身份 +@property (nonatomic, assign) RCGroupMemberRole role; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupMessageReaderV2.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupMessageReaderV2.h new file mode 100644 index 0000000..cc888b7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupMessageReaderV2.h @@ -0,0 +1,24 @@ +// +// RCMessageReadUser.h +// RongIMLibCore +// +// Created by 张改红 on 2021/2/22. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 已读用户对象 +@interface RCGroupMessageReaderV2 : NSObject + +/// 已读用户 id +@property (nonatomic, copy) NSString *userId; + +/// 已读时间 +@property (nonatomic, assign) long long readTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupNotificationMessage.h new file mode 100644 index 0000000..91f66bb --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupNotificationMessage.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCGroupNotificationMessage.h +// Created by xugang on 14/11/24. + +#import + +/// 群组通知消息的类型名 +#define RCGroupNotificationMessageIdentifier @"RC:GrpNtf" +/// 有成员加入群组的通知 +#define GroupNotificationMessage_GroupOperationAdd @"Add" +/// 有成员退出群组的通知 +#define GroupNotificationMessage_GroupOperationQuit @"Quit" +/// 有成员被踢出群组的通知 +#define GroupNotificationMessage_GroupOperationKicked @"Kicked" +/// 群组名称发生变更的通知 +#define GroupNotificationMessage_GroupOperationRename @"Rename" +/// 群组公告发生变更的通知 +#define GroupNotificationMessage_GroupOperationBulletin @"Bulletin" + +/// 群组通知消息类 +/// +/// 群组通知消息类,此消息会进行存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCGroupNotificationMessage : RCMessageContent + +/// 群组通知的当前操作名 +/// +/// 群组通知的当前操作名称,您可以使用预定义好的操作名,也可以是您自己定义的任何操作名。 +/// 预定义的操作名: +/// GroupNotificationMessage_GroupOperationAdd、GroupNotificationMessage_GroupOperationQuit、 +/// GroupNotificationMessage_GroupOperationKicked、GroupNotificationMessage_GroupOperationRename、 +/// GroupNotificationMessage_GroupOperationBulletin。 +@property (nonatomic, copy) NSString *operation; + +/// 当前操作发起用户的用户 ID +@property (nonatomic, copy) NSString *operatorUserId; + +/// 当前操作的目标对象 +/// +/// +/// 当前操作的目标对象,如被当前操作目标用户的用户 ID 或变更后的群主名称等。 +@property (nonatomic, copy) NSString *data; + +/// 当前操作的消息内容 +@property (nonatomic, copy) NSString *message; + +/// 初始化群组通知消息 +/// +/// - Parameter operation: 群组通知的当前操作名 +/// - Parameter operatorUserId: 当前操作发起用户的用户 ID +/// - Parameter data: 当前操作的目标对象 +/// - Parameter message: 当前操作的消息内容 +/// - Parameter extra: 当前操作的附加信息 +/// +/// - Returns: 群组通知消息对象 +/// +/// 群组关系由开发者维护,所有的群组操作都由您的服务器自己管理和维护。 +/// 所以群组通知的操作名和目标对象、消息内容、扩展信息您均可以自己定制,只要您发送方和接收方针对具体字段内容做好 UI 显示即可。 ++ (instancetype)notificationWithOperation:(NSString *)operation + operatorUserId:(NSString *)operatorUserId + data:(NSString *)data + message:(NSString *)message + extra:(NSString *)extra; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptInfoV2.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptInfoV2.h new file mode 100644 index 0000000..820f7ec --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptInfoV2.h @@ -0,0 +1,35 @@ +// +// RCGroupReadReceiptInfoV2.h +// RongIMLibCore +// +// Created by 张改红 on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCGroupMessageReaderV2; + + +@interface RCReadReceiptInfoV4 : NSObject + +/// 是否已经发送回执 +@property (nonatomic, assign) BOOL hasRespond; + +/// 发送回执的用户 ID 列表 +@property (nonatomic, strong, nullable) NSArray *readerList; + +/// 已读人数 +@property (nonatomic, assign) int readCount; + +/// 群内总人数 +@property (nonatomic, assign) int totalCount; + + +@end + +@interface RCGroupReadReceiptInfoV2 : RCReadReceiptInfoV4 +@end +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Manager.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Manager.h new file mode 100644 index 0000000..0e0e861 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Manager.h @@ -0,0 +1,61 @@ +// +// RCGroupReadReceiptV2Manager.h +// RongIMLibCore +// +// Created by 张改红 on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCGroupReadReceiptV2Manager : NSObject +/// 获取单例类 ++ (instancetype)sharedManager; + +/// 群已读回执代理 +@property (nonatomic, weak, nullable) id groupReadReceiptV2Delegate; + +/*! + 发送阅读回执 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter channelId: 所属会话的业务标识 + - Parameter messageList: 已经阅读了的消息列表 + - Parameter successBlock: 发送成功的回调 + - Parameter errorBlock: 发送失败的回调[nErrorCode: 失败的错误码] + + 当用户阅读了需要阅读回执的消息,可以通过此接口发送阅读回执,消息的发送方即可直接知道那些人已经阅读。 + + - Remark: 高级功能 + */ +- (void)sendReadReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageList:(NSArray *)messageList + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/*! + 获取群消息已读用户列表 + + - Parameter message: 消息体 + - Parameter successBlock: 同步成功的回调 + - Parameter errorBlock: 同步失败的回调[nErrorCode: 失败的错误码] + + 此方法不支持超级群的会话类型。 + + - Remark: 高级功能 + */ +- (void)getGroupMessageReaderList:(RCMessage *)message + success:(nullable void (^)(NSArray *_Nullable readerList, + int totalCount))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Protocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Protocol.h new file mode 100644 index 0000000..796ea13 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Protocol.h @@ -0,0 +1,109 @@ +// +// RCGroupReadReceiptV2Protocol.h +// RongIMLibCore +// +// Created by 张改红 on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#ifndef RCGroupReadReceiptV2Protocol_h +#define RCGroupReadReceiptV2Protocol_h + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage; + +@protocol RCGroupReadReceiptV2Delegate + +/*! + 消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数) + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + - Parameter messageUId: 请求已读回执的消息ID + - Parameter readCount: 已读用户数 + - Parameter totalCount: 群内总用户数 + */ +- (void)onMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId + readCount:(int)readCount + totalCount:(int)totalCount; + +@end + +@protocol RCReadReceiptV4Delegate + +/// 私聊已读回执 +/// - Parameters: +/// - conversationType: conversationType +/// - targetId: targetId +/// - channelId: 所属会话的业务标识 +/// - readTime: 阅读时间 +- (void)onPrivateMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + readTime:(long long)readTime; + +/*! + 群组中消息发送方,当收到server的已读回执响应时,会回调此方法 + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + - Parameter messageUId: 请求已读回执的消息ID + - Parameter readCount: 已读用户数 + - Parameter totalCount: 群内总用户数 + */ +- (void)onGroupMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId + readCount:(int)readCount + totalCount:(int)totalCount; +@end + +@protocol RCConversationChannelSyncConversationReadStatusDelegate + + +/// 同步会话已读状态代理:(与 RCLibDispatchReadReceiptNotification 通知等同) +/// - Parameters: +/// - message: 消息 +/// - offline: 是否离线 +- (void)onSyncConversationReadStatus:(RCMessage *)message offline:(BOOL)offline; + + +/// V4 同步已读状态 +/// - Parameters: +/// - conversationType: 会话类型 +/// - targetId: targetId +/// - channelId: channelId +/// - readTime: readTime +- (void)onSyncConversationReadTime:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + readTime:(long long)readTime; + +@end + +@class RCReadReceiptResponseV5; + +/// 已读回执 V5 事件代理。 +@protocol RCReadReceiptV5Delegate + +@optional + +/// 已读回执变更通知。 +/// +/// - Parameter responses: 消息已读回执信息。 +/// +/// - Since: 5.20.0 +- (void)didReceiveMessageReadReceiptResponses:(NSArray *)responses; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCGroupReadReceiptV2Protocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHQVoiceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHQVoiceMessage.h new file mode 100644 index 0000000..cf1fbd2 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHQVoiceMessage.h @@ -0,0 +1,56 @@ +// +// RCHQVoiceMessage.h +// RongIMLib +// +// Created by Zhaoqianyu on 2019/5/16. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +/// 高清语音消息类型名 +#define RCHQVoiceMessageTypeIdentifier @"RC:HQVCMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 高清语音消息类 +/// +/// 高清语音消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCHQVoiceMessage : RCMediaMessageContent + +/// 语音消息的时长,以秒为单位 +@property (nonatomic, assign) long duration; + +/// 初始化高清语音消息 +/// +/// - Parameter localPath: 语音的本地路径 +/// - Parameter duration: 语音时长,以秒为单位 +/// - Returns: 语音消息对象 ++ (instancetype)messageWithPath:(NSString *)localPath duration:(long)duration; + +@end + +@class RCSpeechToTextInfo; + +/// 语音转文本。 +/// +/// - Since: 5.22.0 +@interface RCHQVoiceMessage (STT) + +/// 语音转文本信息。 +@property (nonatomic, readonly, strong, nullable) RCSpeechToTextInfo *sttInfo; + +/// 声道数量 [仅单声道支持 STT 功能]。 +@property (nonatomic, readonly, assign) NSUInteger numberOfChannels; + +/// 采样率 [仅 8000, 16000 支持 STT 功能]。 +@property (nonatomic, readonly, assign) NSUInteger sampleRate; + +/// 编码格式。 +@property (nonatomic, readonly, copy, nullable) NSString *format; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHarmonyOSConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHarmonyOSConfig.h new file mode 100644 index 0000000..9b9deff --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHarmonyOSConfig.h @@ -0,0 +1,29 @@ +// +// RCHarmonyOSConfig.h +// RongIMLibCore +// +// Created by RobinCui on 2024/7/4. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCHarmonyOSConfig : NSObject + +/// HarmonyOS 通知栏消息右侧大图标 URL +/// +///通知栏右侧图片,格式支持 png、jpg、jpeg、heif、gif、bmp,图片长*宽<25000 像素,图片不满足要求的情况下,终端不能显示通知消息。 +@property (nonatomic, copy, nullable) NSString *imageUrl; + +/// HarmonyOS 推送消息分类: +/// - 社交通讯:消息自分类标识,默认为空。category 取值必须为大写字母 +/// 参考:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/message-classification-0000001149358835 + +/// 默认值为 null,如果为 null,则以服务配置为准 +/// +@property (nonatomic, copy, nullable) NSString *category; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHistoryMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHistoryMessageOption.h new file mode 100644 index 0000000..80729db --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCHistoryMessageOption.h @@ -0,0 +1,35 @@ +// +// RCHistoryMessageOption.h +// RongIMLibCore +// +// Created by 张改红 on 2021/4/20. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +/// 拉取顺序 +typedef NS_ENUM(NSUInteger, RCHistoryMessageOrder) { + /// 降序 + RCHistoryMessageOrderDesc = 0, + /// 升序 + RCHistoryMessageOrderAsc, +}; + +@interface RCHistoryMessageOption : NSObject + +/// 起始的消息发送时间戳,毫秒。 +/// 默认 0 +@property (nonatomic, assign) long long recordTime; + +/// 需要获取的消息数量,1 < count <= 100 +/// 默认 0 +@property (nonatomic, assign) NSInteger count; + +/// 拉取顺序 +/// +/// - RCHistoryMessageOrderDesc:降序,结合传入的时间戳参数,获取 recordtime 之前的消息 +/// - RCHistoryMessageOrderAsc:升序,结合传入的时间戳参数,获取 recordtime 之后的消息 +/// 默认降序 +@property (nonatomic, assign) RCHistoryMessageOrder order; +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCIMClientProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCIMClientProtocol.h new file mode 100644 index 0000000..b267450 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCIMClientProtocol.h @@ -0,0 +1,515 @@ +// +// RCIMClientProtocol.h +// RongIMLib +// +// Created by LiFei on 2020/4/29. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#ifndef RCIMClientProtocol_h +#define RCIMClientProtocol_h + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage, RCUserTypingStatus; +@class RCConversationStatusInfo; +@class RCBlockedMessageInfo; +@class RCUltraGroupTypingStatusInfo; + +#pragma mark - 消息接收监听器 + +/*! + IMlib消息接收的监听器 + + + 设置IMLib的消息接收监听器请参考RCIMClient的setReceiveMessageDelegate:object:方法。 + + - Warning: 如果您使用IMlib,可以设置并实现此Delegate监听消息接收; + 如果您使用IMKit,请使用RCIM中的RCIMReceiveMessageDelegate监听消息接收,而不要使用此监听器,否则会导致IMKit中无法自动更新UI! + */ +@protocol RCIMClientReceiveMessageDelegate + +@optional + +/*! + 接收消息的回调方法 + + - Parameter message: 当前接收到的消息 + - Parameter nLeft: 还剩余的未接收的消息数,left>=0 + - Parameter object: 消息监听设置的key值 + + 如果您设置了IMlib消息监听之后,SDK在接收到消息时候会执行此方法。 + 其中,left为还剩余的、还未接收的消息数量。比如刚上线一口气收到多条消息时,通过此方法,您可以获取到每条消息,left会依次递减直到0。 + 您可以根据left数量来优化您的App体验和性能,比如收到大量消息时等待left为0再刷新UI。 + object为您在设置消息接收监听时的key值。 + */ +- (void)onReceived:(RCMessage *)message left:(int)nLeft object:(nullable id)object; + +/** + 接收消息的回调方法 + + - Parameter message: 当前接收到的消息 + - Parameter nLeft: 还剩余的未接收的消息数,left>=0 + - Parameter object: 消息监听设置的key值 + - Parameter offline: 是否是离线消息 + - Parameter hasPackage: SDK 拉取服务器的消息以包(package)的形式批量拉取,有 package 存在就意味着远端服务器还有消息尚未被 SDK + 拉取 + 和上面的 - (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)onReceived:(RCMessage *)message + left:(int)nLeft + object:(nullable id)object + offline:(BOOL)offline + hasPackage:(BOOL)hasPackage; + +/*! + 离线消息接收完成 +*/ +- (void)onOfflineMessageSyncCompleted; + +/*! + 消息被撤回的回调方法 + + - Parameter messageId: 被撤回的消息ID + + 被撤回的消息会变更为RCRecallNotificationMessage,App需要在UI上刷新这条消息。 + */ +- (void)onMessageRecalled:(long)messageId __deprecated_msg("Use messageDidRecall: instead"); + +/*! + 消息被撤回的回调方法 + + - Parameter message: 被撤回的消息 + + 如果不删除被撤回的消息,被撤回的原消息会变更为RCRecallNotificationMessage ,参数 message 就是变更后的消息,App需要在UI上刷新这条消息。 + 如果删除被撤回的消息,参数 message 就是被撤回的原消息,App需要在UI上找到删除这条消息。 + 和上面的 - (void)onMessageRecalled:(long)messageId 功能完全一致,只能选择其中一个使用。 + */ +- (void)messageDidRecall:(RCMessage *)message; + +/*! + 请求消息已读回执(收到需要阅读时发送回执的请求,收到此请求后在会话页面已经展示该 messageUId 对应的消息或者调用 + getHistoryMessages 获取消息的时候,包含此 messageUId 的消息,需要调用 sendMessageReadReceiptResponse + 接口发送消息阅读回执) + + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + */ +- (void)onMessageReceiptRequest:(RCConversationType)conversationType + targetId:(NSString *)targetId + messageUId:(NSString *)messageUId; + + +/*! + 消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数) + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter userIdList: 已读userId列表,字典类型 key:userId,value:readTime,例如:{"uid100001":1683708891523} + */ +- (void)onMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + messageUId:(NSString *)messageUId + readerList:(nullable NSMutableDictionary *)userIdList; + +/// 消息修改回调。 +/// +/// - Parameters: +/// - messages: 被修改的消息数组。 +/// +/// - Since: 5.26.0 +- (void)onMessagesModified:(NSArray *)messages; + +/// 离线的消息修改记录同步完成。 +/// +/// - Since: 5.26.0 +- (void)onModifiedMessageSyncCompleted; + +@end + +#pragma mark - 发送消息被拦截监听器 +@protocol RCMessageBlockDelegate + +/*! + 发送消息被拦截的回调方法 + - Parameter blockedMessageInfo: 被拦截消息的相关信息 + */ +- (void)messageDidBlock:(RCBlockedMessageInfo *)blockedMessageInfo; + +@end + +#pragma mark - 连接状态监听器 + +/*! + IMLib连接状态的的监听器 + + + 设置IMLib的连接状态监听器,请参考RCIMClient的setRCConnectionStatusChangeDelegate:方法。 + + - Warning: 如果您使用IMLib,可以设置并实现此Delegate监听连接状态变化; + 如果您使用IMKit,请使用RCIM中的RCIMConnectionStatusDelegate监听连接状态,而不要使用此监听器,否则会导致IMKit中无法自动更新UI! + */ +@protocol RCConnectionStatusChangeDelegate + +/*! + IMLib连接状态的的监听器 + + - Parameter status: SDK与融云服务器的连接状态 + + 如果您设置了IMLib连接监听之后,当SDK与融云服务器的连接状态发生变化时,会回调此方法。 + */ +- (void)onConnectionStatusChanged:(RCConnectionStatus)status; + +@end + +#pragma mark - 输入状态监听器 + +/*! + IMLib输入状态的的监听器 + + 设置IMLib的输入状态监听器,请参考RCIMClient的 setRCTypingStatusDelegate:方法。 + + - Warning: + 如果您使用IMLib,可以设置并实现此Delegate监听消息输入状态;如果您使用IMKit,请直接设置RCIM中的 + enableTypingStatus,而不要使用此监听器,否则会导致IMKit中无法自动更新UI! + */ +@protocol RCTypingStatusDelegate + +/*! + 用户输入状态变化的回调 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标ID + - Parameter userTypingStatusList: 正在输入的RCUserTypingStatus列表(nil表示当前没有用户正在输入) + + 当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUserTypingStatus列表。 + + - Warning: 目前仅支持单聊。 + */ +- (void)onTypingStatusChanged:(RCConversationType)conversationType + targetId:(NSString *)targetId + status:(nullable NSArray *)userTypingStatusList; + +@end + +#pragma mark - 日志监听器 +/*! + IMLib日志的监听器 + + + 设置IMLib日志的监听器,请参考RCIMClient的setRCLogInfoDelegate:方法。 + + 您可以通过logLevel来控制日志的级别。 + */ +@protocol RCLogInfoDelegate + +/*! + IMLib日志的回调 + + - Parameter logInfo: 日志信息 + */ +- (void)didOccurLog:(NSString *)logInfo; + +@end + +#pragma mark - 阅后即焚 + +/** + IMLib阅后即焚监听器 + 设置代理请参考 RCIMClient 的 setRCMessageDestructDelegate: 方法。 + */ +@protocol RCMessageDestructDelegate + +/** + 消息正在焚烧 + + - Parameter message: 消息对象 + - Parameter remainDuration: 剩余焚烧时间 + */ +- (void)onMessageDestructing:(RCMessage *)message remainDuration:(long long)remainDuration; + +@end + +#pragma mark - 会话监听 + +@protocol RCConversationDelegate +/** + 开了消息断档功能之后,sdk 会同步实时会话,实时会话同步完成的回调 + */ +- (void)conversationDidSync; + +@optional +/// 调用接口 -[RCCoreClient getRemoteConversationListWithSuccess:error:] 获取远端会话列表的回调 +/// - Parameter code: RC_SUCCESS 获取成功,其他值获取失败 +- (void)remoteConversationListDidSync:(RCErrorCode)code; + +@end + +#pragma mark - 会话状态同步 + +/** + IMLib 会话状态同步监听器 + 设置代理请参考 RCIMClient 的 setRCConversationStatusChangeDelegate: 方法。 + */ +@protocol RCConversationStatusChangeDelegate + +@optional + +/// 会话状态同步完成。 +/// +/// - Since: 5.7.8 +- (void)conversationStatusDidSync:(RCErrorCode)code; + +/** + IMLib 会话状态同步的回调 + + - Parameter conversationStatusInfos: 改变过的会话状态的数组 + */ +- (void)conversationStatusDidChange:(NSArray *)conversationStatusInfos; + +@end + +#pragma mark - 消息扩展监听 +/** + 消息扩展内容变化回调 + 设置代理请参考 RCIMClient 的 messageExpansionDelegate 方法 + 代理回调在非主线程 + */ +@protocol RCMessageExpansionDelegate +/** + 消息扩展信息更改的回调 + + - Parameter expansionDic: 消息扩展信息中更新的键值对 + - Parameter message: 消息 + + expansionDic 只包含更新的键值对,不是全部的数据。如果想获取全部的键值对,请使用 message 的 expansionDic 属性。 +*/ +- (void)messageExpansionDidUpdate:(NSDictionary *)expansionDic message:(RCMessage *)message; + +/** + 消息扩展信息删除的回调 + + - Parameter keyArray: 消息扩展信息中删除的键值对 key 列表 + - Parameter message: 消息 + +*/ +- (void)messageExpansionDidRemove:(NSArray *)keyArray message:(RCMessage *)message; + +@end + +#pragma mark - 消息拦截器 + +/** + 消息拦截器 + */ +@protocol RCMessageInterceptor + +@optional + +/** + 上传多媒体内容之前的回调 + + - Parameter message: 待上传的多媒体消息 + - Returns: 处理后的消息 + 如果返回的 message 或 message.content 为 nil,该条消息不会上传到服务,状态设置为 SentStatus_FAILED, 并回调失败 + */ +- (RCMessage *)mediaMessageWillUpload:(RCMessage *)message; + +/** + 消息保存到数据库,发送到服务前调用此回调 + + - Parameter message: 待发送的消息 + - Returns: 处理后的消息 + 如果返回的 message 或 message.content 为 nil,该条消息不会上传到服务,状态设置为 SentStatus_FAILED, 并回调失败 + */ +- (RCMessage *)messageWillSendAfterDB:(RCMessage *)message; + +/** + 接收到消息准备入库前的回调,开发者可以通过此回调对消息进行自定义处理。 + + - Parameter message: 待入库的消息 + - Returns: 处理后的消息,SDK 会将返回的消息入库并通过 RCIMClientReceiveMessageDelegate 的 onReceived 方法回调给上层 + 如果返回的 message 或 message.content 为 nil, RCIMClientReceiveMessageDelegate 的 onReceived 方法会将原消息回调给上层 + */ +- (RCMessage *)messageDidReceiveBeforeDB:(RCMessage *)message; + +@end + +#pragma mark - 媒体文件请求拦截器 + +/** + 媒体文件上传&下载拦截器 + */ +@protocol RCDownloadInterceptor + +/** + 下载前的同步回调 + - Remark: 推荐使用下载的异步回调接口 + + - Parameter request: request 请求 + - Returns: request 请求,返回值不能为 nil,否则无法正常下载 + - Since: 5.1.2 + */ +- (NSMutableURLRequest *)onDownloadRequest:(NSMutableURLRequest *)request; + +/** + 下载前的异步回调 + + - Parameter request request 请求 + - Parameter requestHandler 请求,返回值不能为 nil,否则无法正常下载 + - Remark: IMLib 不做线程切换,下载线程会使用当前回调的线程 + - Since: 5.8.0 + */ +- (void)onDownloadRequest:(nonnull NSMutableURLRequest *)request + withRequestHandler:(void (^)(NSMutableURLRequest *_Nonnull handledRequest))requestHandler; + +/** + 上传前的异步回调 + + - Parameter request request 请求 + - Parameter requestHandler 请求,返回值不能为 nil,否则无法正常上传 + - Remark: IMLib 不做线程切换,上传线程会使用当前回调的线程 + - Since: 5.8.0 + */ +- (void)onUploadRequest:(nonnull NSMutableURLRequest *)request + withRequestHandler:(void (^)(NSMutableURLRequest *_Nonnull handledRequest))requestHandler; + + +@end + +#pragma mark - 超级群 + +/** + 超级群已读时间同步代理 + */ +@protocol RCUltraGroupReadTimeDelegate + +/** + 超级群已读时间同步 + + - Parameter targetId: 会话 ID + - Parameter channelId: 频道 ID + - Parameter readTime: 已读时间 + */ +- (void)onUltraGroupReadTimeReceived:(NSString *)targetId channelId:(NSString *)channelId readTime:(long long)readTime; + +@end + +/** + 超级群输入状态代理 + */ +@protocol RCUltraGroupTypingStatusDelegate +/*! + 用户输入状态变化的回调 + + - Parameter infoArr: 正在输入的RCUltraGroupTypingStatusInfo列表(nil表示当前没有用户正在输入) + + 当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUltraGroupTypingStatusInfo列表。 + */ +- (void)onUltraGroupTypingStatusChanged:(NSArray *)infoArr; +@end + +/*! + 超级群消息变化回调 + */ +@protocol RCUltraGroupMessageChangeDelegate + +/*! + 消息扩展更新,删除 + + - Parameter messages: 消息集合 + */ +- (void)onUltraGroupMessageExpansionUpdated:(NSArray *)messages; + +/*! + 消息内容发生变更 + + - Parameter messages: 消息集合 + */ +- (void)onUltraGroupMessageModified:(NSArray *)messages; + +/*! + 消息撤回 + + - Parameter messages: 消息集合 + */ +- (void)onUltraGroupMessageRecalled:(NSArray *)messages; + +@end + +/*! + 数据库状态监听器 + + - Since: 5.10.4 + */ +@protocol RCDatabaseStatusDelegate + +/*! + 数据库开始升级 + + - Since: 5.10.4 + */ +- (void)databaseUpgradeWillStart; + +/*! + 数据库升级完成 + + - Since: 5.10.4 + */ +- (void)databaseUpgradeDidComplete:(RCErrorCode)code; + +/*! + 数据库升级中 + + - Parameter progress: 升级进度【0-100】 + - Since: 5.10.4 + */ +- (void)databaseIsUpgrading:(int)progress; +@end + +@class RCStreamMessageChunkInfo; + +/// 流式消息事件代理。 +/// - Since: 5.16.0 +@protocol RCStreamMessageRequestEventDelegate + +@optional + +/// 请求准备完成回调,如果该消息之前是异常中止的,会清理异常数据。 +- (void)didReceiveInitEventWithMessageUId:(NSString *)messageUId; + +/// 收到流式消息请求增量数据的回调。 +- (void)didReceiveDeltaEventWithMessage:(RCMessage *)message chunkInfo:(RCStreamMessageChunkInfo *)chunkInfo; + +/// 收到流式消息请求接收完成的回调。 +- (void)didReceiveCompleteEventWithMessageUId:(NSString *)messageUId code:(RCErrorCode)code; + +@end + +/// 用户级别事件代理。 +/// +/// - Warning: 需要开启用户级别设置。 +/// 可以用 `RCCoreClient` 的 `getAppSettings` 接口,查询相关配置 `isUserSettingsEnabled`。 +/// +/// - Since: 5.7.8 +@protocol RCUserSettingsDelegate + +@optional + +/// 用户级别的所有配置信息同步完成回调。 +/// +/// - Note: 在连接成功后,SDK 会同步当前用户的所有配置,同步完成后回调该方法。 +/// +/// - Parameter code: 错误码。 +- (void)userSettingsDidSync:(RCErrorCode)code; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCIMClientProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCIMProxy.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCIMProxy.h new file mode 100644 index 0000000..643d1cf --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCIMProxy.h @@ -0,0 +1,51 @@ +// +// RCIMProxy.h +// RongIMLibCore +// +// Created by chinaspx on 2022/9/7. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMProxy : NSObject + +// socks 代理地址 +@property (nonatomic, copy, readonly) NSString *host; + +// socks 代理端口号 +@property (nonatomic, assign, readonly) NSInteger port; + +/* + * 用户名和密码 + * + * - userName 和 password 均存在有效值,则使用认证方式,连接代理 + * - userName 和 password 有一个为空,则使用不认证的方式,连接代理 + * + */ +// 代理认证的用户名,默认为空字符串 +@property (nonatomic, copy, readonly) NSString *userName; +// 代理认证的密码,默认为空字符串 +@property (nonatomic, copy, readonly) NSString *password; + +// 合法性检测,自身为空则不合法、host 为空则不合法、port <=0 则不合法 +- (BOOL)isValid; + +// 默认构造,不带认证方式连接代理 +- (instancetype)initWithHost:(NSString *)host port:(NSInteger)port; + +// 默认构造,认证方式连接代理 +- (instancetype)initWithHost:(NSString *)host + port:(NSInteger)port + userName:(NSString *)userName + password:(NSString *)password; + + ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCImageCompressConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCImageCompressConfig.h new file mode 100644 index 0000000..3e0e158 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCImageCompressConfig.h @@ -0,0 +1,27 @@ +// +// RCImageCompressConfig.h +// RongIMLibCore +// +// Created by liyan on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCImageCompressConfig : NSObject + +/// 缩略图最大尺寸 +@property (nonatomic, assign) CGFloat maxSize; + +/// 缩略图最小尺寸 +@property (nonatomic, assign) CGFloat minSize; + +/// 缩略图质量压缩比 +@property (nonatomic, assign) CGFloat quality; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCImageMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCImageMessage.h new file mode 100644 index 0000000..7b097b0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCImageMessage.h @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCImageMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import +#import + +/// 图片消息的类型名 +#define RCImageMessageTypeIdentifier @"RC:ImgMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 图片消息类 +/// +/// 图片消息类,此消息会进行存储并计入未读消息数。 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Remark: 内容类消息 +@interface RCImageMessage : RCMediaMessageContent + +/// 图片消息的 URL 地址 +/// +/// 发送方此字段为图片的本地路径,接收方此字段为网络 URL 地址。 +/// +/// - Note: 不再允许外部赋值,为只读属性。本地地址使用 localPath,远端地址使用 remoteUrl +@property (nonatomic, copy, readonly, nullable) NSString *imageUrl; + +/// 图片消息的缩略图 +@property (nonatomic, strong, nullable) UIImage *thumbnailImage; + +/// 缩略图的 Base64 字符串。 +@property (nonatomic, copy, readonly, nullable) NSString *thumbnailBase64String; + +/// 缩略图的宽度。 +@property (nonatomic, assign, readonly) NSInteger thumWidth; + +/// 缩略图的高度。 +@property (nonatomic, assign, readonly) NSInteger thumHeight; + +/// 是否发送原图 +/// +/// 在发送图片的时候,是否发送原图,默认值为 NO。 +@property (nonatomic, getter=isFull) BOOL full; + +/// 图片消息的原始图片信息 +@property (nonatomic, strong, nullable) UIImage *originalImage; + +/// 图片消息的原始图片信息 +/// +/// 发送成功之前该字段是可用的 +/// 发送成功之后基于减少内存的考虑,该字段不再保存原始数据 +/// 发送成功之后请优先使用 localPath 与 remoteUrl 进行展示 +@property (nonatomic, strong, readonly, nullable) NSData *originalImageData; + +/// 初始化图片消息 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Parameter image: 原始图片 +/// +/// - Returns: 图片消息对象 ++ (instancetype)messageWithImage:(UIImage *)image; + +/// 初始化图片消息 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Parameter imageURI: 图片的本地路径 +/// - Warning: imageURI 必须为本地路径,否则构造失败 +/// +/// - Returns: 图片消息对象 ++ (instancetype)messageWithImageURI:(NSString *)imageURI; + +/// 初始化图片消息 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Parameter imageData: 图片的原始数据 +/// +/// - Returns: 图片消息对象 ++ (instancetype)messageWithImageData:(NSData *)imageData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCInformationNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCInformationNotificationMessage.h new file mode 100644 index 0000000..5e82ac3 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCInformationNotificationMessage.h @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCInformationNotificationMessage.h +// Created by xugang on 14/12/4. + +#import + +/// 通知消息的类型名 +#define RCInformationNotificationMessageIdentifier @"RC:InfoNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 通知消息类 +/// +/// 通知消息类,此消息会进行存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCInformationNotificationMessage : RCMessageContent + +/// 通知的内容 +@property (nonatomic, copy) NSString *message; + +/// 初始化通知消息 +/// +/// - Parameter message: 通知的内容 +/// - Parameter extra: 通知的附加信息 +/// +/// - Returns: 通知消息对象 ++ (instancetype)notificationWithMessage:(NSString *)message extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCInitOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCInitOption.h new file mode 100644 index 0000000..641dadc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCInitOption.h @@ -0,0 +1,126 @@ +// +// RCInitOption.h +// RongIMLibCore +// +// Created by shuai shao on 2023/3/16. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCAreaCode) { + /// 默认值,北京数据中心 + RCAreaCodeBJ = 1, + /// 新加坡数据中心 + RCAreaCodeSG = 2, + /// 北美数据中心 + RCAreaCodeNA = 3, + /// 新增的新加坡数据中心 + RCAreaCodeSG_B = 4, + /// 废弃枚举 + RCAreaCodeSG_A __deprecated_msg("Use RCAreaCodeSG_B instead") = RCAreaCodeSG_B, + /// 沙特数据中心 + RCAreaCodeSA = 5, + /// 无效枚举值,业务上不用 + RCAreaCodeInvalid +}; + +// 心跳级别 +typedef NS_ENUM(NSInteger, RCHeartbeatLevel) { + /// 紧急:2 次心跳超时后重连 IM + RCHeartbeatLevelUrgent = 2, + /// 优先:3 次心跳超时后重连 IM + RCHeartbeatLevelPriority = 3, + /// 立即:4 次心跳超时后重连 IM + RCHeartbeatLevelImmediate = 4, + /// 迫切:5 次心跳超时后重连 IM + RCHeartbeatLevelPressing = 5, + /// 常规:6 次心跳超时后重连 IM(默认值) + RCHeartbeatLevelNormal = 6 +}; +@interface RCInitOption : NSObject + +/// 导航服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 naviServer,必须为有效的服务器地址: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK ///默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com ///格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// 与 RCCoreClient 中 setServerInfo:fileServer: 效果一致,任一种设置都生效 +/// - Since: 5.4.1 +@property (nonatomic, copy, nullable) NSString *naviServer; + +/// 文件服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 fileServer,必须为有效的服务器地址: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK ///默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com ///格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// 与 RCCoreClient 中 setServerInfo:fileServer: 效果一致,任一种设置都生效 +/// - Since: 5.4.1 +@property (nonatomic, copy, nullable) NSString *fileServer; + +/// 统计服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 statisticServer,必须为有效的服务器地址: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK ///默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com ///格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// 与 RCCoreClient 中 setStatisticServer: 效果一致,任一种设置都生效 +/// - Since: 5.4.1 +@property (nonatomic, copy, nullable) NSString *statisticServer; + +/// 日志服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 logServer,必须为有效的服务器地址: +/// 1、如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK 默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2、如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// - Since: 5.4.2 +@property (nonatomic, copy, nullable) NSString *logServer; + +/// 云控服务器地址。 +/// +/// - Since: 5.24.0 +@property (nonatomic, copy, nullable) NSString *cloudControlServer; + +/// 区域码 +/// +/// 默认为北京数据中心,用户可以根据实际情况设置区域码,设置之后,SDK 将会使用特定区域的服务地址 +/// 每个数据中心都会有对应的 naviServer、statisticServer、logServer +/// 如果开发者手动设置了本类的 naviServer、statisticServer、logServer 将会覆盖对应区域的配置 +/// 例如:设置 areaCode 为北美数据中心,同时又设置了此处的 naviServer,那么最终会使用此处的 naviServer 而不是北美数据中心的 naviServer +/// - Since: 5.4.2 +@property (nonatomic, assign) RCAreaCode areaCode; + +/// crash 监控开关,默认开启 +/// +/// - Since: 5.6.5 +@property (nonatomic, assign) BOOL crashMonitorEnable; + +/// 心跳级别 (默认 RCHeartbeatLevelNormal) +/// +/// - Since: 5.6.7 +@property (nonatomic, assign) RCHeartbeatLevel heartbeatLevel; + +/// 网络环境标识 +/// 标志客户端所在当前网络环境,例如 intranet 内网,private 专网。如果不配置,使用对应于的默认环境配置 +/// +/// - Note: 私有云专用属性,公有云客户设置无效。 +@property (nonatomic, copy, nullable) NSString *environment; + +/// 是否开启同步空置顶会话能力 +/// +/// - Note: 如不设置,则默认为 NO,即不同步空置顶会话 +/// - Since: 5.10.0 +@property (nonatomic, assign) BOOL enableSyncEmptyTopConversation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCLocalConfiguration.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCLocalConfiguration.h new file mode 100644 index 0000000..6bcacc4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCLocalConfiguration.h @@ -0,0 +1,58 @@ +// +// RCLocalConfiguration.h +// RongIMLibCore +// +// Created by litao on 15/10/19. +// Copyright © 2015 年 RongCloud. All rights reserved. +// + +#import + +@interface RCLocalConfiguration : NSObject + ++ (instancetype)sharedInstance; + +/// 原图最大宽度,默认值:1080 +@property (nonatomic, assign) NSUInteger imageWidth; +/// 原图最大高度,默认值:1080 +@property (nonatomic, assign) NSUInteger imageHeight; +/// 原图质量压缩比例,默认值:0.85 +@property (nonatomic, assign) float imageQuality; +/// 原图大小限制,默认值:200(单位:KB)配置发送图片时,如果图片大小不超过则发送原图 +@property (nonatomic, assign) NSUInteger maxOriginalImageSize; + + +/// 缩略图最大边的长度,默认值:240 +@property (nonatomic, assign) NSUInteger thumbnailMaxSize; +/// 缩略图最小边的长度,默认值:100 +@property (nonatomic, assign) NSUInteger thumbnailMinSize; +/// 缩略图质量压缩比例,默认值:0.3 +@property (nonatomic, assign) float thumbnailQuality; + + +/// 位置消息缩略图的最大宽度,默认值:480 +@property (nonatomic, assign) float locationImageWidth; +/// 位置消息缩略图的最大高度,默认值:240 +@property (nonatomic, assign) float locationImageHeight; +/// 位置消息缩略图压缩比例,默认值:0.7 +@property (nonatomic, assign) float locationImageQuality; + + +/// 小视频压缩宽度,建议使用 16 的倍数,默认值:540 +@property (nonatomic, assign) NSUInteger sightCompressWidth; +/// 小视频压缩高度,建议使用 16 的倍数,默认值:960 +@property (nonatomic, assign) NSUInteger sightCompressHeight; + + +/// 文件下载的保存路径,默认值:Documents/MyFile +@property (nonatomic, copy) NSString *fileMessageRelativePath; + +// 分片下载大小限制,超限才会去分片下载,单位为字节,默认 20971520(20MB) +@property (nonatomic, assign) long downloadSliceSize; + +// 后台是否保活,默认值:NO +@property (nonatomic, assign) BOOL forceKeepAlive; + +// 心跳间隔,默认值:15(单位:秒) +@property (nonatomic, assign) NSInteger heartBeatInterval; +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMediaMessageContent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMediaMessageContent.h new file mode 100644 index 0000000..f855b64 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMediaMessageContent.h @@ -0,0 +1,34 @@ +// +// RCMediaMessageContent.h +// RongIMLib +// +// Created by lichenfeng on 2018/11/22. +// Copyright © 2018 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 媒体类型消息的父类 +/// +/// +/// SDK 中所有媒体类型消息(图片、文件等)均继承此类。 +/// 开发者如需将自定义的媒体类型消息上传到融云默认的服务器时必须继承此类 ( SDK 负责媒体消息的上传及上传成功后的发送,开发者自行处理消息接收后的展示) 。 +/// 以下属性需要子类在 encode、decode 方法中和扩展的属性一同进行处理 +@interface RCMediaMessageContent : RCMessageContent + +/// 媒体内容的本地路径(此属性必须有值) +@property (nonatomic, copy, nullable) NSString *localPath; + +/// 媒体内容上传服务器后的网络地址(上传成功后 SDK 会为该属性赋值) +@property (nonatomic, copy, nullable) NSString *remoteUrl; + +/// 媒体内容的文件名(如不传使用 SDK 中 downloadMediaMessage 方法下载后会默认生成一个名称) +@property (nonatomic, copy, nullable) NSString *name; + +/// 通过本地路径获取媒体文件名字,如果本地路径存在,就可以获取到有效值,否则获取为 nil +- (nullable NSString *)getNameFromLocalPath; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMentionedInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMentionedInfo.h new file mode 100644 index 0000000..ae29d3a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMentionedInfo.h @@ -0,0 +1,46 @@ +// +// RCMentionedInfo.h +// RongIMLib +// +// Created by 杜立召 on 16/7/6. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 消息中的 @ 提醒信息对象 +@interface RCMentionedInfo : NSObject + +/// @ 提醒的类型 +@property (nonatomic, assign) RCMentionedType type; + +/// @ 的用户 ID 列表 +/// +/// 如果 type 是 @ 所有人,则可以传 nil +@property (nonatomic, strong, nullable) NSArray *userIdList; + +/// 包含 @ 提醒的消息,本地通知和远程推送显示的内容 +/// +/// 如果是 nil , 则按默认格式显示 [有人 @ 你] +@property (nonatomic, copy, nullable) NSString *mentionedContent; + +/// 是否 @ 了我 +@property (nonatomic, readonly) BOOL isMentionedMe; + +/// 初始化 @ 提醒信息 +/// +/// - Parameter type: @ 提醒的类型 +/// - Parameter userIdList: @ 的用户 ID 列表 +/// - Parameter mentionedContent: @ Push 内容 +/// +/// - Returns: @ 提醒信息的对象 +- (instancetype)initWithMentionedType:(RCMentionedType)type + userIdList:(nullable NSArray *)userIdList + mentionedContent:(nullable NSString *)mentionedContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessage+RCDeprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessage+RCDeprecated.h new file mode 100644 index 0000000..b3fcb60 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessage+RCDeprecated.h @@ -0,0 +1,34 @@ +// +// RCMessage+RCDeprecated.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/17. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCMessage (RCDeprecated) + +/// 消息的接收状态 (针对接收的消息生效) +@property (nonatomic, assign) RCReceivedStatus receivedStatus __deprecated_msg("Use receivedStatusInfo instead"); + +/// RCMessage 初始化方法(已废弃,请不要使用该接口构造消息发送) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter messageDirection: 消息的方向 +/// - Parameter messageId: 消息的 ID(如果是发送该消息初始值请设置为 -1) +/// - Parameter content: 消息的内容 +- (instancetype)initWithType:(RCConversationType)conversationType + targetId:(NSString *)targetId + direction:(RCMessageDirection)messageDirection + messageId:(long)messageId + content:(RCMessageContent *)content + __deprecated_msg("Use initWithType:targetId:direction:content: instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessage.h new file mode 100644 index 0000000..5471b78 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessage.h @@ -0,0 +1,189 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#ifndef __RCMessage +#define __RCMessage + +#import + +#import +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReceivedStatusInfo; +@class RCMessageModifyInfo; + +/// 消息实体类 +/// +/// 包含消息的所有属性。 +@interface RCMessage : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 所属会话的业务标识,长度限制 20 字符 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 消息的 ID +/// +/// 本地存储的消息的唯一值(数据库索引唯一值) +@property (nonatomic, assign) long messageId; + +/// 消息的方向 +@property (nonatomic, assign) RCMessageDirection messageDirection; + +/// 消息的发送者 ID +@property (nonatomic, copy, nullable) NSString *senderUserId; + +/// 消息的接收状态类 (针对接收的消息生效) +/// - Since: 5.6.8 +@property (nonatomic, strong) RCReceivedStatusInfo *receivedStatusInfo; + +/// 消息的发送状态 (针对发送的消息生效) +@property (nonatomic, assign) RCSentStatus sentStatus; + +/// 消息的接收时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long receivedTime; + +/// 消息的发送时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long sentTime; + +/// 消息的类型名 +@property (nonatomic, copy, nullable) NSString *objectName; + +/// 消息的内容 +@property (nonatomic, strong, nullable) RCMessageContent *content; + +/// 消息的附加字段 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 全局唯一 ID +/// +/// 服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, copy, nullable) NSString *messageUId; + +/// 阅读回执状态 +@property (nonatomic, strong, nullable) RCReadReceiptInfo *readReceiptInfo; + +/// 群阅读回执状态 +/// +/// 如果是调用 RCGroupReadReceiptV2Manager 中方法实现群已读回执功能,此参数才有效,否则请使用 readReceiptInfo 属性获取阅读回执状态 +/// 如果使用 IMKit,请用 readReceiptInfo 属性 +@property (nonatomic, strong, nullable) RCGroupReadReceiptInfoV2 *groupReadReceiptInfoV2; + +/// 群阅读回执状态 +/// +/// 如果开启了已读回执 V4 功能,此参数才有效,否则请使用 readReceiptInfo 属性获取阅读回执状态 +/// 如果使用 IMKit,请用 readReceiptInfo 属性 +@property (nonatomic, strong, nullable, readonly) RCReadReceiptInfoV4 *readReceiptInfoV4; + + +/// 消息配置 +@property (nonatomic, strong) RCMessageConfig *messageConfig; + +/// 消息推送配置 +@property (nonatomic, strong) RCMessagePushConfig *messagePushConfig; + +/// 是否是离线消息,只在接收消息的回调方法中有效,如果消息为离线消息,则为 YES,其他情况均为 NO +@property (nonatomic, assign) BOOL isOffLine; + + +/// 消息是否可以包含扩展信息 +/// +/// 该属性在消息发送时确定,发送之后不能再做修改 +/// 扩展信息只支持单聊、群聊、超级群,其它会话类型不能设置扩展信息 +@property (nonatomic, assign) BOOL canIncludeExpansion; + +/// 消息扩展信息列表 +/// +/// 扩展信息只支持单聊、群聊、超级群,其它会话类型不能设置扩展信息 +/// 默认消息扩展字典 key 长度不超过 32,value 长度不超过 4096,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300 +@property (nonatomic, strong, nullable) NSDictionary *expansionDic; + +/// 消息是否被修改 +/// +/// - Note: 从 5.26.0 开始,支持全部类型的消息变更状态。 +@property (nonatomic, assign) BOOL hasChanged; + +/// 消息修改信息。 +/// +/// @since 5.26.0 +@property (nonatomic, readonly, strong) RCMessageModifyInfo *modifyInfo; + +/// 消息已读回执操作标识。 +/// +/// - Since: 5.20.0 +@property (nonatomic, assign) BOOL needReceipt; + +/// 已读回执是否已发送。 +/// +/// - Since: 5.20.0 +@property (nonatomic, assign) BOOL sentReceipt; + +/// 接收定向消息的用户数组 +/// +/// @since 5.8.0 +@property (nonatomic, copy, nullable) NSArray *directedUserIds; + +/// 禁止更新到会话最新一条消息,默认 NO: 更新,YES: 不更新 +/// +/// @since 5.12.2 +@property (nonatomic, assign) BOOL disableUpdateLastMessage; + +/// RCMessage 初始化方法 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter messageDirection: 消息的方向 +/// - Parameter content: 消息的内容 +- (instancetype)initWithType:(RCConversationType)conversationType + targetId:(NSString *)targetId + direction:(RCMessageDirection)messageDirection + content:(RCMessageContent *)content; + +/// RCMessage 初始化方法,供超级群消息使用 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter messageDirection: 消息的方向 +/// - Parameter content: 消息的内容 +- (instancetype)initWithType:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + direction:(RCMessageDirection)messageDirection + content:(RCMessageContent *)content; + +@end + +@class RCMessageIdentifier; + +@interface RCMessage (RCIdentifier) + +/// 消息标识。 +/// +/// - Since: 5.22.0 +- (RCMessageIdentifier *)messageIdentifier; + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageAuditInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageAuditInfo.h new file mode 100644 index 0000000..b322bce --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageAuditInfo.h @@ -0,0 +1,28 @@ +// +// RCMessageAuditInfo.h +// RongIMLibCore +// +// Created by Lang on 2023/11/27. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCStatusDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/// 消息审核配置 +@interface RCMessageAuditInfo : NSObject + +/// 是否送审(消息回调是否送给三方审核) +@property (nonatomic, assign) RCMessageAuditType auditType; + +/// 项目标识 +@property (nonatomic, copy) NSString *project; + +/// 审核策略 +@property (nonatomic, copy) NSString *strategy; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageConfig.h new file mode 100644 index 0000000..795fa7a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageConfig.h @@ -0,0 +1,21 @@ +// +// RCMessageConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/6/29. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCMessageConfig : NSObject + +/// 是否关闭远程推送和本地通知,默认值 NO +/// 设置为 YES 禁用该条消息的远程推送和本地通知 +@property (nonatomic, assign) BOOL disableNotification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageContent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageContent.h new file mode 100644 index 0000000..7adcefb --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageContent.h @@ -0,0 +1,217 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCMessageContent.h +// Created by Heq.Shinoda on 14-6-13. + +#ifndef __RCMessageContent +#define __RCMessageContent + +#import +#import +#import +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 消息内容的编解码协议 +/// 用于标识消息内容的类型,进行消息的编码和解码。 +/// 所有自定义消息必须实现此协议,否则将无法正常传输和使用。 +@protocol RCMessageCoding +@required + +/// 将消息内容序列化,编码成为可传输的 json 数据 + +/// +/// 消息内容通过此方法,将消息中的所有数据,编码成为 json 数据,返回的 json 数据将用于网络传输。 +- (nullable NSData *)encode; + +/// 将 json 数据的内容反序列化,解码生成可用的消息内容 +/// +/// - Parameter data: 消息中的原始 json 数据 +/// +/// 网络传输的 json 数据,会通过此方法解码,获取消息内容中的所有数据,生成有效的消息内容。 +- (void)decodeWithData:(NSData *)data; + +/// 返回消息的类型名 +/// +/// - Returns: 消息的类型名 +/// +/// 您定义的消息类型名,需要在各个平台上保持一致,以保证消息互通。 +/// - Warning: 请勿使用 @ "RC:"开头的类型名,以免和 SDK 默认的消息名称冲突 ++ (NSString *)getObjectName; + +/// 返回可搜索的关键内容列表 +/// +/// - Returns: 返回可搜索的关键内容列表 +/// +/// 这里返回的关键内容列表将用于消息搜索,自定义消息必须要实现此接口才能进行搜索。 +- (nullable NSArray *)getSearchableWords; + +@end + +/// 消息内容的存储协议 +/// +/// 用于确定消息内容的存储策略。 +/// 所有自定义消息必须实现此协议,否则将无法正常存储和使用。 +@protocol RCMessagePersistentCompatible +@required + +/// 返回消息的存储策略 +/// +/// - Returns: 消息的存储策略 +/// +/// 指明此消息类型在本地是否存储、是否计入未读消息数。 ++ (RCMessagePersistent)persistentFlag; +@end + +/// 消息内容摘要的协议 +/// +/// 用于在会话列表和本地通知中显示消息的摘要。 +@protocol RCMessageContentView +@optional + +/// 返回在会话列表和本地通知中显示的消息内容摘要 +/// +/// - Returns: 会话列表和本地通知中显示的消息内容摘要 +/// +/// 如果您使用 IMKit,当会话的最后一条消息为自定义消息时,需要通过此方法获取在会话列表展现的内容摘要; +/// 当 App 在后台收到消息时,需要通过此方法获取在本地通知中展现的内容摘要。 +- (nullable NSString *)conversationDigest; + +@end + + +/// 消息内容的基类 +/// +/// 此类为消息实体类 RCMessage 中的消息内容 content 的基类。 +/// 所有的消息内容均为此类的子类,包括 SDK 自带的消息(如 RCTextMessage、RCImageMessage 等)和用户自定义的消息。 +/// 所有的自定义消息必须继承此类,并实现 RCMessageCoding 和 RCMessagePersistentCompatible、RCMessageContentView 协议。 +@interface RCMessageContent : NSObject + +/// 消息内容中携带的发送者的用户信息 +/// +/// 如果您使用 IMKit,可以通过 RCIM 的 enableMessageAttachUserInfo 属性设置在每次发送消息中携带发送者的用户信息。 +@property (nonatomic, strong, nullable) RCUserInfo *senderUserInfo; + +/// 消息中的 @ 提醒信息 +@property (nonatomic, strong, nullable) RCMentionedInfo *mentionedInfo; + +/// 消息的审核配置 +@property (nonatomic, strong, nullable) RCMessageAuditInfo *auditInfo; + +/// 设置焚烧时间 +/// +/// 默认是 0,0 代表该消息非阅后即焚消息。 +@property (nonatomic, assign) NSUInteger destructDuration; + +/// 消息的附加信息 +/// +/// 请确保传入的是 NSString 类型的数据 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 将用户信息编码到字典中 +/// +/// - Parameter userInfo: 要编码的用户信息 +/// - Returns: 存有用户信息的 Dictionary +- (NSDictionary *)encodeUserInfo:(RCUserInfo *)userInfo; + +/// 将消息内容中携带的用户信息解码 +/// +/// - Parameter dictionary: 用户信息的 Dictionary +- (void)decodeUserInfo:(NSDictionary *)dictionary; + +/// 将 @ 提醒信息编码到字典中 +/// +/// - Parameter mentionedInfo: 要编码的@信息 +/// - Returns: 存有@信息的 Dictionary +- (NSDictionary *)encodeMentionedInfo:(RCMentionedInfo *)mentionedInfo; + +/// 将消息内容中携带的 @ 提醒信息解码 +/// +/// - Parameter dictionary: @提醒信息的 Dictionary +- (void)decodeMentionedInfo:(NSDictionary *)dictionary; + + +/// 将基类信息编码到字典中,推荐使用此方法 +/// +/// - Returns: 存有基类信息的 Dictionary +/// +/// 自定义消息在重写 - (nullable NSData *)encode 方法 可直接调用此方法完成基类属性的编码 +/// +/// 此方法内部调用了 encodeMentionedInfo: 和 encodeUserInfo: 方法 +/// +///```objc +/// - (NSData *)encode { +/// NSMutableDictionary *dataDict = [self encodeBaseData]; +/// NSString *textContent = self.content ?: @""; +/// [dataDict rclib_setObject:textContent forKey:@"content"]; +/// NSData *data = [NSJSONSerialization dataWithJSONObject:dataDict options:kNilOptions error:nil]; +/// return data; +/// } +/// ``` +/// - Since: 5.4.0 +- (NSMutableDictionary *)encodeBaseData; + + +/// 将消息内容中携带的基类信息解码,推荐使用此方法 +/// +/// - Parameter dictionary: 存有基类信息的 Dictionary +/// +/// 自定义消息在重写 - (void)decodeWithData:(NSData *)data 方法 可直接调用此方法完成基类属性的解码 +/// +/// 此方法内部调用了 decodeMentionedInfo: 和 decodeUserInfo: 方法 +/// +///```objc +/// - (void)decodeWithData:(NSData *)data { +/// NSDictionary *jsonDic = [[self class] dictionaryFromJsonData:data]; +/// if (!jsonDic) { +/// // 解析失败保存原数据 +/// self.rawJSONData = data; +/// return; +/// } +/// // 基类负责解析基类属性 +/// [self decodeBaseData:jsonDic]; +/// +/// //子类只解析子类属性 +/// self.content = [jsonDic rclib_mix_stringForKey:@"content"]; +/// } +/// ``` +/// - Since: 5.4.0 +- (void)decodeBaseData:(NSDictionary *)dictionary; + +/// 消息内容的原始 json 数据 +/// +/// 此字段存放消息内容中未编码的 json 数据。 +/// SDK 内置的消息,如果消息解码失败,默认会将消息的内容存放到此字段;如果编码和解码正常,此字段会置为 nil。 +@property (nonatomic, strong, nullable, setter=setRawJSONData:) NSData *rawJSONData; + + +#pragma mark - json tools + +/// 消息基类提供的安全校验方法 JSON->Map +/// @param jsonData json 二进制数据 +/// @return 非字典,返回 nil +/// - Since: 5.4.0 ++ (nullable NSDictionary *)dictionaryFromJsonData:(NSData *)jsonData; + +/// 消息基类提供的安全校验方法 JSON->Array +/// - Parameter jsonData: json 二进制数据 +/// - Returns: 非数组,返回 nil +/// - Since: 5.4.0 ++ (nullable NSArray *)arrayFromJsonData:(NSData *)jsonData; + + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageDigestInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageDigestInfo.h new file mode 100644 index 0000000..24a784a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageDigestInfo.h @@ -0,0 +1,53 @@ +// +// RCMessageDigestInfo.h +// RongIMLibCore +// +// Created by RobinCui on 2022/8/3. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface RCMessageDigestInfo : NSObject +/*! +会话类型 +*/ +@property (nonatomic, assign) RCConversationType conversationType; + +/*! +会话 ID +*/ +@property (nonatomic, copy) NSString *targetId; + +/*! +该会话的业务标识,长度限制 20 字符 +*/ +@property (nonatomic, copy) NSString *channelId; +/*! +消息的全局唯一 ID + +服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +*/ +@property (nonatomic, copy) NSString *messageUid; + +/*! +消息的发送时间(Unix时间戳、毫秒) +*/ +@property (nonatomic, assign) long long sentTime; + +/*! +消息是否 @所有人 +*/ +@property (nonatomic, assign) BOOL isMentionAll; + + +/*! +消息类型 +*/ +@property (nonatomic, copy) NSString *objectName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageIdentifier.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageIdentifier.h new file mode 100644 index 0000000..c217a24 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageIdentifier.h @@ -0,0 +1,35 @@ +// +// RCMessageIdentifier.h +// RongIMLibCore +// +// Created by RC-MINI on 2025/6/11. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationIdentifier; + +/// 消息标识。 +/// +/// - Since: 5.20.2 +@interface RCMessageIdentifier : NSObject + +/// 消息所属会话。 +@property (nonatomic, strong) RCConversationIdentifier *identifier; + +/// 消息唯一 ID。 +@property (nonatomic, copy) NSString *messageUId; + +/// 初始化方法。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUId: 消息 UId。 +- (instancetype)initWithConversationIdentifier:(RCConversationIdentifier *)identifier messageUId:(NSString *)messageUId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageModifyInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageModifyInfo.h new file mode 100644 index 0000000..4277cd5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageModifyInfo.h @@ -0,0 +1,47 @@ +// +// RCMessageModifyInfo.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/17. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 修改消息内容的更新状态。 +/// +/// @since 5.26.0 +typedef NS_ENUM(NSInteger, RCMessageModifyStatus) { + /// 更新成功。 + RCMessageModifyStatusSuccess = 0, + /// 更新中。 + RCMessageModifyStatusUpdating = 1, + /// 更新失败。 + RCMessageModifyStatusFailed = 2, +}; + +@class RCMessageContent; + +/// 消息内容修改信息。 +/// +/// @since 5.26.0 +@interface RCMessageModifyInfo : NSObject + +/// 消息修改时间,单位毫秒。 +/// +/// - Note: 默认为 0,如果大于 0,表示消息被修改过。如果多次修改,以最后一次修改时间为准。 +@property (nonatomic, assign) long timestamp; + +/// 消息修改的内容。 +/// +/// - Note: 当 `status` 为 `RCMessageModifyStatusUpdating` 和 `RCMessageModifyStatusFailed` 时有值。 +@property (nonatomic, strong, nullable) RCMessageContent *content; + +/// 消息修改的更新状态。 +@property (nonatomic, assign) RCMessageModifyStatus status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessagePushConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessagePushConfig.h new file mode 100644 index 0000000..ecb9800 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessagePushConfig.h @@ -0,0 +1,85 @@ +// +// RCMessagePushConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/9/15. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCiOSConfig; +@class RCAndroidConfig; +@class RCHarmonyOSConfig; + +@interface RCMessagePushConfig : NSObject + +/// 是否屏蔽通知标题 +/// +/// YES: 不显示通知标题 +/// NO: 显示通知标题 +/// +/// 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。 +/// 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。 +@property (nonatomic, assign) BOOL disablePushTitle; + +/// 推送标题 +/// +/// 如果没有设置,会使用下面的默认标题显示规则: +/// - 内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。 +/// - 自定义消息:默认不显示标题。 +@property (nonatomic, copy, nullable) NSString *pushTitle; + +/// 推送内容 +/// +/// 优先使用 MessagePushConfig 的 pushContent。 +/// +/// 如果一个接口 RCMessage 和 pushContent 同时存在,且 MessagePushConfig.pushContent 为有效值,会优先使用 MessagePushConfig.pushContent 当做最终的 pushContent。 +/// 例如 sendMessage、sendMediaMessage、recallMessage 接口。 +@property (nonatomic, copy, nullable) NSString *pushContent; + + +/// 远程推送附加信息 +/// +/// 优先使用 MessagePushConfig 的 pushData。 +/// +/// 如果一个接口 RCMessage 和 pushData 同时存在,且 MessagePushConfig.pushData 为有效值,会优先使用 MessagePushConfig.pushData 当做最终的 pushData. +/// 例如 sendMessage、sendMediaMessage 接口。 +@property (nonatomic, copy, nullable) NSString *pushData; + +/// 是否强制显示通知详情 +/// +/// 当目标用户通过 RCPushProfile 中的 updateShowPushContentStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。 +@property (nonatomic, assign) BOOL forceShowDetailContent; + +/// 推送模板 ID +/// +/// 设置后根据目标用户通过 SDK `RCPushProfile` 中的 `setPushLanguageCode` 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送。 +/// +/// 模板内容在“开发者后台 - 自定义推送文案”中进行设置。 +/// +/// - Warning:RCMessagePushConfig 中的 Title 和 PushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。 +@property (nonatomic, copy, nullable) NSString *templateId; + +/// iOS 平台相关配置 +@property (nonatomic, strong) RCiOSConfig *iOSConfig; + +/// Android 平台相关配置 +@property (nonatomic, strong) RCAndroidConfig *androidConfig; + +/// HarmonyOS 平台相关配置 +/// - Since: 5.10.2 +@property (nonatomic, strong) RCHarmonyOSConfig *hmosConfig; + + +/// 将数组转成 messagePushConfig 的 iOSConfig 和 AndroidConfig +- (instancetype)arrayToConfig:(NSArray *)array; + +/// 将 iOSConfig 和 AndroidConfig 转成数组 +- (NSArray *)encodeIOSAndAndroidConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageResult.h new file mode 100644 index 0000000..a040955 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCMessageResult.h @@ -0,0 +1,32 @@ +// +// RCMessageResult.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/14. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage; + +/// 消息查询结果。 +/// +/// - Since: 5.26.0 +@interface RCMessageResult : NSObject + +/// 消息唯一 ID。 +@property (nonatomic, readonly, copy) NSString *messageUId; + +/// 查询到的消息。 +@property (nonatomic, readonly, strong, nullable) RCMessage *message; + +/// 查询的错误码。 +@property (nonatomic, readonly, assign) RCErrorCode code; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCModifyMessageParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCModifyMessageParams.h new file mode 100644 index 0000000..84ae758 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCModifyMessageParams.h @@ -0,0 +1,28 @@ +// +// RCModifyMessageParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/21. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessageContent; + +/// 消息修改参数对象。 +/// +/// - Since: 5.26.0 +@interface RCModifyMessageParams : NSObject + +/// 消息唯一 ID。 +@property (nonatomic, copy) NSString *messageUId; + +/// 修改后的消息体。 +@property (nonatomic, strong) RCMessageContent *messageContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCNotificationQuietHoursSetting.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCNotificationQuietHoursSetting.h new file mode 100644 index 0000000..fa4e6d0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCNotificationQuietHoursSetting.h @@ -0,0 +1,32 @@ +// +// RCNotificationQuietHoursSetting.h +// RongIMLibCore +// +// Created by shuai shao on 2025/2/7. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +enum RCPushNotificationQuietHoursLevel : NSInteger; + +/// 消息提醒屏蔽信息 +/// - Since: 5.14.0 +@interface RCNotificationQuietHoursSetting : NSObject + +/// 开始时间。 +@property (nonatomic, copy) NSString *startTime; +/// 分钟数,范围为 (0 , 1440)。 +/// (比如,您设置的起始时间是 00:00,结束时间为 01:00,则 spanMins 为 60 分钟。设置为 1439 代表全天免打扰(23 * 60 + 59 = 1439)) +@property (nonatomic, assign) int spanMins; +/// 消息通知级别。 +@property (nonatomic, assign) enum RCPushNotificationQuietHoursLevel level; +/// 时区。 +/// 国内数据中心默认 Asia/Shanghai,海外默认 UTC。 +@property (nonatomic, copy, nullable) NSString *timezone; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPagingQueryOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPagingQueryOption.h new file mode 100644 index 0000000..598f61f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPagingQueryOption.h @@ -0,0 +1,26 @@ +// +// RCPagingQueryOption.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPagingQueryOption : NSObject + +/// 分页标识,获取第一页时传 nil,第二页传入 SDK 返回第一页数据时携带的 pageToken +@property (nonatomic, copy, nullable) NSString *pageToken; + +/// 每页条数,以具体接口标注的数量为准。 +@property (nonatomic, assign) NSUInteger count; + +/// 是否正序查询,默认为 NO 倒序返回,设置 YES 为 正序返回 +@property (nonatomic, assign) BOOL order; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPagingQueryResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPagingQueryResult.h new file mode 100644 index 0000000..cb1c88a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPagingQueryResult.h @@ -0,0 +1,30 @@ +// +// RCPagingQueryResult.h +// RongIMLibCore +// +// Created by Lang on 2024/7/30. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPagingQueryResult : NSObject + +/// 分页标识 +/// - 获取第一页时传 nil,第二页传入 SDK 返回第一页数据时携带的 pageToken。 +/// - 当 SDK 返回 `pageToken` 为空字符串时,表示没有更多数据了。 +@property (nonatomic, copy, readonly) NSString *pageToken; + +/// 查询结果总数 +/// 如返回 -1 则表示此次查询不支持返回总数 +/// - Note: 这个总数是所有分页数据的总和。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +/// 当前分页的数据 +@property (nonatomic, copy, readonly) NSArray *data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPlatformOnlineStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPlatformOnlineStatus.h new file mode 100644 index 0000000..da32af8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPlatformOnlineStatus.h @@ -0,0 +1,25 @@ +// +// RCPlatformOnlineStatus.h +// RongIMLibCore +// +// Created by huan xu on 2025/9/10. +// Copyright © 2025 RongCloud. All rights reserved. + +/// - Since: 5.28.0 + +#import +#import "RCStatusDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPlatformOnlineStatus : NSObject +/// 平台 +@property (nonatomic, assign) RCPlatform platform; +/// 是否在线 +@property (nonatomic, assign) BOOL isOnline; +/// 更新时间(毫秒时间戳) +@property (nonatomic, assign) long long updateTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCProfileNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCProfileNotificationMessage.h new file mode 100644 index 0000000..5901690 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCProfileNotificationMessage.h @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCProfileNotificationMessage.h +// Created by xugang on 14/11/28. + +#import + +/// 公众服务账号信息变更消息的类型名 +#define RCProfileNotificationMessageIdentifier @"RC:ProfileNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 公众服务账号信息变更消息类 +/// +/// 公众服务账号信息变更消息类,此消息会进行存储,但不计入未读消息数。 +/// - Remark: 通知类消息 +@interface RCProfileNotificationMessage : RCMessageContent + +/// 公众服务账号信息变更的操作名 +@property (nonatomic, copy) NSString *operation; + +/// 信息变更的数据,可以为任意格式,如 json 数据。 +@property (nonatomic, copy, nullable) NSString *data; + +/// 初始化公众服务账号信息变更消息 +/// +/// - Parameter operation: 信息变更的操作名 +/// - Parameter data: 信息变更的数据 +/// - Parameter extra: 信息变更的附加信息 +/// - Returns: 公众服务账号信息变更消息的对象 ++ (instancetype)notificationWithOperation:(NSString *)operation + data:(nullable NSString *)data + extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPushProfile.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPushProfile.h new file mode 100644 index 0000000..08438fd --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCPushProfile.h @@ -0,0 +1,82 @@ +// +// RCPushProfile.h +// RongIMLib +// +// Created by 杜立召 on 16/12/26. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPushProfile : NSObject + +/// 是否显示远程推送的内容 +@property (nonatomic, assign, readonly) BOOL isShowPushContent; + +/// 远程推送的语言 +@property (nonatomic, assign, readonly) RCPushLanguage pushLanguage; + +/// 其他端在线时,手机是否接收远程推送 (多个手机端登录,最后一个会接收) +@property (nonatomic, assign, readonly) BOOL receiveStatus; + +/// 设置是否显示远程推送的内容 +/// +/// - Parameter isShowPushContent: 是否显示推送的具体内容(YES 显示 NO 不显示) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)updateShowPushContentStatus:(BOOL)isShowPushContent + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置推送内容的自然语言 +/// +/// - Parameter language: 通过 SDK 设置的语言环境,语言缩写内容格式为 (ISO-639 Language Code)_(ISO-3166 Country Codes),如:zh_CN。目前融云支持的内置推送语言为 zh_CN、en_US、ar_SA +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushLanguageCode:(NSString *)language + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置 Web 端在线时,手机端是否接收推送 +/// +/// - Parameter receiveStatus: 是否接收推送(YES 接收 NO 不接收) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushReceiveStatus:(BOOL)receiveStatus + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +@end + +@interface RCPushProfile (deprecated) + +/// 远程推送的语言 +@property (nonatomic, assign, readonly) RCPushLauguage pushLauguage __deprecated_msg("Use pushLanguage instead"); + +/// 设置推送内容的自然语言 +/// +/// - Parameter pushLanguage: 设置推送内容的自然语言 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushLauguage:(RCPushLauguage)pushLauguage + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use setPushLanguageCode:success:error instead"); + + +/// 设置推送内容的自然语言 +/// +/// - Parameter lauguage: 通过 SDK 设置的语言环境,语言缩写内容格式为 (ISO-639 Language Code)_(ISO-3166 Country Codes),如:zh_CN。目前融云支持的内置推送语言为 zh_CN、en_US、ar_SA +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushLauguageCode:(NSString *)lauguage + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use setPushLanguageCode:success:error instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCQuitGroupConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCQuitGroupConfig.h new file mode 100644 index 0000000..66cd5ae --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCQuitGroupConfig.h @@ -0,0 +1,26 @@ +// +// RCQuitGroupConfig.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCQuitGroupConfig : NSObject + +/// 是否移除群成员禁言状态,默认为移除 +@property (nonatomic, assign) BOOL removeMuteStatus; + +/// 是否移除群成员白名单,默认为移除 +@property (nonatomic, assign) BOOL removeWhiteList; + +/// 是否移除特别关注群成员,默认为移除 +@property (nonatomic, assign) BOOL removeFollow; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptDefine.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptDefine.h new file mode 100644 index 0000000..583564e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptDefine.h @@ -0,0 +1,23 @@ +// +// RCReadReceiptDefine.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptUser; +@class RCReadReceiptInfoV5; +@class RCReadReceiptUsersResult; +@class RCReadReceiptUsersOption; + +typedef void (^RCMessageReadDetailCompletion)(RCReadReceiptUsersResult *_Nullable result, RCErrorCode code); + +typedef void (^RCReadReceiptInfoListCompletion)(NSArray *_Nullable infoList, RCErrorCode code); + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptInfo.h new file mode 100644 index 0000000..13e2913 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptInfo.h @@ -0,0 +1,26 @@ +// +// RCReadReceiptInfo.h +// RongIMLib +// +// Created by 杜立召 on 16/8/29. +// Copyright © 2016 年 RongCloud. All rights reserved. +// +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCReadReceiptInfo : NSObject + +/// 是否需要回执消息 +@property (nonatomic, assign) BOOL isReceiptRequestMessage; + +/// 是否已经发送回执 +@property (nonatomic, assign) BOOL hasRespond; + +/// 发送回执的用户 ID 列表 +@property (nonatomic, strong, nullable) NSMutableDictionary *userIdList; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptInfoV5.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptInfoV5.h new file mode 100644 index 0000000..575542f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptInfoV5.h @@ -0,0 +1,37 @@ +// +// RCReadReceiptInfoV5.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/15. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationIdentifier; + +/// 消息的阅读回执信息。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptInfoV5 : NSObject + +/// 会话标识。 +@property (nonatomic, strong, readonly) RCConversationIdentifier *identifier; + +/// 消息唯一 ID。 +@property (nonatomic, copy, readonly) NSString *messageUId; + +/// 未读人数。 +@property (nonatomic, assign, readonly) NSInteger unreadCount; + +/// 已读人数。 +@property (nonatomic, assign, readonly) NSInteger readCount; + +/// 总人数。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptMessage.h new file mode 100644 index 0000000..01b00d8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptMessage.h @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCHasReadNotificationMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +#define RCHasReadNotificationMessageTypeIdentifier @"RC:ReadNtf" + +/*! + 已读通知消息类 + + 已读通知消息类,此消息会进行不存储不计入未读消息数。 + + - Remark: 信令类消息 +*/ +@interface RCReadReceiptMessage : RCMessageContent + +/** + * 最后一条消息的发送时间 + */ +@property (nonatomic, assign) long long lastMessageSendTime; + +/** + * 最后一条消息的id(融云全局唯一Id) + */ +@property (nonatomic, copy) NSString *messageUId; + +/** + * 已读消息类型,目前传1 按照会话来更新未读消息状态 + */ +@property (nonatomic, assign) RCReadReceiptMessageType type; + ++ (instancetype)notificationWithLastMessageSendTime:(long long)lastMessageSendTime; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptResponseV5.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptResponseV5.h new file mode 100644 index 0000000..4c658bb --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptResponseV5.h @@ -0,0 +1,41 @@ +// +// RCReadReceiptResponseV5.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/25. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptUser; +@class RCConversationIdentifier; + +/// 消息已读回执响应信息。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptResponseV5 : NSObject + +/// 会话信息。 +@property (nonatomic, strong, readonly) RCConversationIdentifier *identifier; + +/// 消息唯一 ID。 +@property (nonatomic, copy, readonly) NSString *messageUId; + +/// 已读回执的用户。 +@property (nonatomic, copy, readonly) NSArray *users; + +/// 已读人数。 +@property (nonatomic, assign, readonly) NSInteger readCount; + +/// 未读总数。 +@property (nonatomic, assign, readonly) NSInteger unreadCount; + +/// 总人数。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUser.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUser.h new file mode 100644 index 0000000..6dda690 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUser.h @@ -0,0 +1,30 @@ +// +// RCReadReceiptUser.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/15. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 消息已读回执用户信息。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptUser : NSObject + +/// 用户 ID。 +@property (nonatomic, copy, readonly) NSString *userId; + +/// 该用户的阅读时间。0 表示用户没有发送已读回执。 +@property (nonatomic, assign, readonly) long timestamp; + +/// 是否被提醒的用户。 +@property (nonatomic, assign, readonly) BOOL isMentioned; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUsersOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUsersOption.h new file mode 100644 index 0000000..0a0f68a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUsersOption.h @@ -0,0 +1,39 @@ +// +// RCReadReceiptUsersOption.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/15. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 已读回执状态。 +typedef NS_ENUM(NSInteger, RCReadReceiptStatus) { + RCReadReceiptStatusResponse = 0, + RCReadReceiptStatusUnResponse, +}; + +/// 已读回执查询条件。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptUsersOption : NSObject + +/// 分页 Token,为空时,会从第一页开始获取。 +@property (nonatomic, copy, nullable) NSString *pageToken; + +/// 分页数量,范围为 [1, 100]。 +@property (nonatomic, assign) NSInteger pageCount; + +/// 排序,默认按已读时间倒序排序。 +@property (nonatomic, assign) RCOrder order; + +/// 已读回执状态。 +@property (nonatomic, assign) RCReadReceiptStatus readReceiptStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUsersResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUsersResult.h new file mode 100644 index 0000000..79cec5c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReadReceiptUsersResult.h @@ -0,0 +1,31 @@ +// +// RCReadReceiptUsersResult.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/25. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptUser; + +/// 获取消息已读用户结果。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptUsersResult : NSObject + +/// 用户数据。 +@property (nonatomic, copy, readonly) NSArray *users; + +/// 分页 Token,如果为空,则没有更多数据。 +@property (nonatomic, copy, readonly, nullable) NSString *pageToken; + +/// 总数。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRecallMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRecallMessageOption.h new file mode 100644 index 0000000..9f66e2d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRecallMessageOption.h @@ -0,0 +1,29 @@ +// +// RCRecallMessageOption.h +// RongIMLibCore +// +// Created by chinaspx on 2025/2/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.16.0 +@interface RCRecallMessageOption : NSObject + +/// 是否删除本地消息,并移除远端消息记录,默认值 NO +@property (nonatomic, assign) BOOL isDelete; + +/// 是否是管理员操作,默认值 NO +/// 用于融云 IMKit 展示需求,或业务其他需求,为透传字段,无实际管理作用 +@property (nonatomic, assign) BOOL isAdmin; + +/// 是否关闭远程推送和本地通知,默认值 NO +/// 设置为 YES 禁用该条消息的远程推送和本地通知 +@property (nonatomic, assign) BOOL disableNotification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRecallNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRecallNotificationMessage.h new file mode 100644 index 0000000..d48c8ab --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRecallNotificationMessage.h @@ -0,0 +1,48 @@ +// +// RCRecallNotificationMessage.h +// RongIMLib +// +// Created by litao on 16/7/15. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +/// 撤回通知消息的类型名 +#define RCRecallNotificationMessageIdentifier @"RC:RcNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 撤回通知消息类 +/// 撤回通知消息,此消息会进行本地存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCRecallNotificationMessage : RCMessageContent + +/// 发起撤回操作的用户 ID +@property (nonatomic, copy) NSString *operatorId; + +/// 撤回的时间(毫秒) +@property (nonatomic, assign) long long recallTime; + +/// 原消息的消息类型名 +@property (nonatomic, copy) NSString *originalObjectName; + +/// 是否是管理员操作 +@property (nonatomic, assign) BOOL isAdmin; + +/// 是否删除 +@property (nonatomic, assign) BOOL isDelete; + +/// 撤回的文本消息的内容 +@property (nonatomic, copy) NSString *recallContent; + +/// 撤回动作的时间(毫秒) +@property (nonatomic, assign) long long recallActionTime; + +/// 被撤回的原消息 +@property (nonatomic, strong, nullable) RCMessageContent *originalMessageContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReceivedStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReceivedStatusInfo.h new file mode 100644 index 0000000..a5f12ee --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReceivedStatusInfo.h @@ -0,0 +1,55 @@ +// +// RCReceivedStatusInfo.h +// RongIMLibCore +// +// Created by chinaspx on 2023/11/16. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCReceivedStatusInfo : NSObject + +/// 是否已读 +@property (nonatomic, assign, readonly) BOOL isRead; +/// 是否已听,仅用于语音消息 +@property (nonatomic, assign, readonly) BOOL isListened; +/// 是否已下载 +@property (nonatomic, assign, readonly) BOOL isDownloaded; + +/// 该消息已被同时在线或之前登录的其他设备接收。只要任何其他设备先收到该消息,当前设备该状态值就会为 YES。 +@property (nonatomic, assign, readonly) BOOL isRetrieved; + + +/// 默认构造 +/// - Parameter receivedStatus: DB 读取的状态值;传 0 表示 未读。 +/// +/// 构造未读状态,代码如下: +/// RCReceivedStatusInfo *statusInfo = [[RCReceivedStatusInfo alloc] initWithReceivedStatus:0]; +/// +/// 构造已读状态,代码如下: +/// RCReceivedStatusInfo *statusInfo = [[RCReceivedStatusInfo alloc] initWithReceivedStatus:0]; +/// [statusInfo markAsRead]; +/// +- (instancetype)initWithReceivedStatus:(NSUInteger)receivedStatus NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)new NS_UNAVAILABLE; + +/// 标记为已读 +- (void)markAsRead; + +/// 标记为已听 +- (void)markAsListened; + +/// 标记为已下载 +- (void)markAsDownloaded; + +/// 标记为被其他登录的多端收取过的 +- (void)markAsRetrieved; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReferenceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReferenceMessage.h new file mode 100644 index 0000000..cfe44f9 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCReferenceMessage.h @@ -0,0 +1,55 @@ +// +// RCReferenceMessage.h +// RongIMLib +// +// Created by 张改红 on 2020/2/26. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +/// 引用消息的类型名 +#define RCReferenceMessageTypeIdentifier @"RC:ReferenceMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 被引用消息的状态。 +/// +/// - Since: 5.26.0 +typedef NS_ENUM(NSInteger, RCReferenceMessageStatus) { + /// 默认状态。 + RCReferenceMessageStatusDefault = 0, + /// 引用的消息被修改。 + RCReferenceMessageStatusModified = 1, + /// 引用的消息被撤回。 + RCReferenceMessageStatusRecalled = 2, + /// 引用的消息被删除。 + RCReferenceMessageStatusDeleted = 3, +}; + +/*! +引用消息类 + +引用消息类,此消息会进行存储并计入未读消息数。 + +- Remark: 内容类消息 +*/ +@interface RCReferenceMessage : RCMessageContent +/// 引用文本 +@property (nonatomic, strong) NSString *content; +/// 被引用消息的发送者 ID +@property (nonatomic, strong) NSString *referMsgUserId; + +/// 被引用消息体 +@property (nonatomic, strong, nullable) RCMessageContent *referMsg; + +/// 被引用消息的 messageUId。服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, strong) NSString *referMsgUid; + +/// 被引用消息的状态。 +/// +/// - Since: 5.26.0 +@property (nonatomic, assign) RCReferenceMessageStatus referMsgStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRefreshReferenceMessageParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRefreshReferenceMessageParams.h new file mode 100644 index 0000000..698c768 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRefreshReferenceMessageParams.h @@ -0,0 +1,28 @@ +// +// RCRefreshReferenceMessageParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/21. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationIdentifier; + +/// 刷新引用消息的参数对象。 +/// +/// - Since: 5.26.0 +@interface RCRefreshReferenceMessageParams : NSObject + +/// 会话标识。 +@property (nonatomic, strong) RCConversationIdentifier *conversationIdentifier; + +/// 消息唯一 ID 数组,最多 20 个。 +@property (nonatomic, copy) NSArray *messageUIds; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRemoteHistoryMsgOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRemoteHistoryMsgOption.h new file mode 100644 index 0000000..9ada7ea --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRemoteHistoryMsgOption.h @@ -0,0 +1,45 @@ +// +// RCRemoteHistoryMsgOption.h +// RongIMLib +// +// Created by Zhaoqianyu on 2019/7/31. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +/// 拉取顺序 +typedef NS_ENUM(NSUInteger, RCRemoteHistoryOrder) { + /// 降序 + RCRemoteHistoryOrderDesc = 0, + /// 升序 + RCRemoteHistoryOrderAsc, +}; + +NS_ASSUME_NONNULL_BEGIN + +/// RCIMClient - getRemoteHistoryMessage 接口对应的参数选项 +@interface RCRemoteHistoryMsgOption : NSObject + +/// 起始的消息发送时间戳,毫秒 默认 0 +@property (nonatomic, assign) long long recordTime; + +/// 需要获取的消息数量,1 < count <= 100 默认 0 +@property (nonatomic, assign) NSInteger count; + +/// 拉取顺序 +/// +/// RCRemoteHistoryOrderDesc:降序,结合传入的时间戳参数,获取比时间戳小(早)的消息; +/// RCRemoteHistoryOrderAsc:升序,结合传入的时间戳参数,获取比时间戳大的消息。 +/// 默认降序。 +@property (nonatomic, assign) RCRemoteHistoryOrder order; + +/// 是否需要排重 +/// YES: 拉取回来的消息全部返回 +/// NO: 拉取回来的消息只返回本地数据库中不存在的 +/// 默认 NO +@property (nonatomic, assign) BOOL includeLocalExistMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCResumableDownloader.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCResumableDownloader.h new file mode 100644 index 0000000..a99bbc4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCResumableDownloader.h @@ -0,0 +1,86 @@ +// +// RCResumableDownloader.h +// RongEnterpriseApp +// +// Created by zhaobingdong on 2018/5/15. +// Copyright © 2018 年 rongcloud. All rights reserved. +// +/// +/// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] +/// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] +/// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage; + +__deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead") + @protocol RCResumableDownloaderDelegate + +/** + 下载完成后调用 + + - Parameter item: 下载任务实例 + - Parameter path: 下载任务完成后的文件路径 + 通过 itemWithMessageId: 方法获取到写下载项,不会调用该方法 + */ +- (void)downloadItem:(RCDownloadItem *)item filePath:(NSString *)path; + +@end + +__deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead") + /// + /// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] + /// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] + /// + @interface RCResumableDownloader : NSObject + +/** + 创建 RCResumableDownloader 实例 + + - Returns: 返回 RCResumableDownloader 实例 + */ ++ (instancetype)defaultInstance; + +/** + 销毁 RCResumableDownloader 实例 + 切换用户时调用,退出登录时调用。 + */ ++ (void)free; + +@property (nonatomic, weak) id delegate; + +/** + 根据消息id 获取 RCDownloadItem 实例 + + - Parameter msgId: 消息id + - Returns: 返回 RCDownloadItem 实例 + 仅支持文件消息,文件消息下载完成后,会自动更新消息的 content + */ +- (RCDownloadItem *)itemWithMessageId:(long)msgId; + +/** + 根据开发者指定的标识符来获取 RCDownloadItem 实例 + + - Parameter identify: 标识符 + - Parameter url: 下载地址 + - Parameter name: 文件名 + - Returns: 返回 RCDownloadItem 的实例 + 开发者需要保证该标识符 identify 的唯一性,确保每一个存活的下载任务的标识符是不同的 + 实际下载后文件名可能会与不一致,如果存储下载文件目录下已有该文件,会在文件名后添加(1)。 + 例如 a.txt 最终下载的文件名会变为 a(1).txt 或者 a(2).txt + */ +- (RCDownloadItem *)itemWithIdentify:(NSString *)identify url:(NSString *)url fileName:(NSString *)name; + +@end + +__deprecated_msg("Use RCResumableDownloaderDelegate instead") + @protocol RCResumeableDownloaderDelegate +@end + +typedef RCResumableDownloader RCResumeableDownloader __deprecated_msg("Use RCResumableDownloader instead"); + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRichContentMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRichContentMessage.h new file mode 100644 index 0000000..baab05b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCRichContentMessage.h @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCRichContentMessage.h +// Created by Gang Li on 10/17/14. + +#import "RCMessageContent.h" +#import + +/*! + 图文消息的类型名 + */ +#define RCRichContentMessageTypeIdentifier @"RC:ImgTextMsg" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 图文消息类 + + 图文消息类,此消息会进行存储并计入未读消息数。 + + - Remark: 内容类消息 + */ +@interface RCRichContentMessage : RCMessageContent + +/*! + 图文消息的标题 + */ +@property (nonatomic, copy) NSString *title; + +/*! + 图文消息的内容摘要 + */ +@property (nonatomic, copy) NSString *digest; + +/*! + 图文消息图片 URL + */ +@property (nonatomic, copy) NSString *imageURL; + +/*! + 图文消息中包含的需要跳转到的URL + */ +@property (nonatomic, copy, nullable) NSString *url; + +/*! + 初始化图文消息 + + - Parameter title: 图文消息的标题 + - Parameter digest: 图文消息的内容摘要 + - Parameter imageURL: 图文消息的图片URL + - Parameter extra: 图文消息的扩展信息 + - Returns: 图文消息对象 + */ ++ (instancetype)messageWithTitle:(NSString *)title + digest:(NSString *)digest + imageURL:(NSString *)imageURL + extra:(nullable NSString *)extra; + +/*! + 初始化图文消息 + + - Parameter title: 图文消息的标题 + - Parameter digest: 图文消息的内容摘要 + - Parameter imageURL: 图文消息的图片URL + - Parameter url: 图文消息中包含的需要跳转到的URL + - Parameter extra: 图文消息的扩展信息 + - Returns: 图文消息对象 + */ ++ (instancetype)messageWithTitle:(NSString *)title + digest:(NSString *)digest + imageURL:(NSString *)imageURL + url:(nullable NSString *)url + extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSearchConversationResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSearchConversationResult.h new file mode 100644 index 0000000..6f76b25 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSearchConversationResult.h @@ -0,0 +1,23 @@ +// +// RCSearchConversationResult.h +// RongIMLib +// +// Created by 杜立召 on 16/9/29. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import "RCConversation.h" +#import + +NS_ASSUME_NONNULL_BEGIN +/// 搜索的会话结果 +@interface RCSearchConversationResult : NSObject + +/// 匹配的会话对象 +@property (nonatomic, strong) RCConversation *conversation; + +/// 会话匹配的消息条数 +@property (nonatomic, assign) int matchCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSearchMessageParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSearchMessageParams.h new file mode 100644 index 0000000..821f351 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSearchMessageParams.h @@ -0,0 +1,119 @@ +// +// RCSearchMessageParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/10. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 时间范围。 +/// +/// - Since: 5.22.0 +@interface RCTimeRange : NSObject + +/// 查询的开始时间戳,单位毫秒,默认为 0,范围为 [0, endTime)。 +@property (nonatomic, assign) NSInteger startTime; + +/// 查询的结束时间戳,单位毫秒,范围为 (startTime, Now()]。 +/// 如果未赋值,或者赋值为 0,使用当前时间。 +@property (nonatomic, assign) NSInteger endTime; + +/// 初始化接口。 +/// - Parameters: +/// - startTime: 开始时间。 +/// - endTime: 结束时间。 +- (instancetype)initWithStartTime:(NSInteger)startTime endTime:(NSInteger)endTime; + +@end + +/// 会话过滤。 +/// +/// - Since: 5.22.0 +@interface RCConversationFilter : NSObject + +/// 会话类型列表,过滤会话的类型。 +@property (nonatomic, copy, nullable) NSArray *conversationTypes; + +/// 会话 ID 列表,过滤会话的 ID。 +@property (nonatomic, copy, nullable) NSArray *targetIds; + +/// 频道 ID 列表,过滤频道的 ID。 +@property (nonatomic, copy, nullable) NSArray *channelIds; + +/// 初始化方法。 +/// - Parameters: +/// - conversationTypes: 会话类型数组。 +/// - targetIds: 会话 ID 数组。 +/// - channelIds: 频道 ID 数组。 +- (instancetype)initWithConversationTypes:(nullable NSArray *)conversationTypes + targetIds:(nullable NSArray *)targetIds + channelIds:(nullable NSArray *)channelIds; + +@end + +/// 消息过滤。 +/// +/// - Since: 5.22.0 +@interface RCMessageFilter : NSObject + +/// 消息发送者 ID 列表,过滤发送者 ID。 +@property (nonatomic, copy, nullable) NSArray *senderIds; + +/// 消息类型列表,过滤消息类型。 +@property (nonatomic, copy, nullable) NSArray *objectNames; + +/// 初始化方法。 +/// - Parameters: +/// - conversationTypes: 会话类型数组。 +/// - senderIds: 消息发送者 ID 数组。 +/// - objectNames: 消息类型名字数组。 +- (instancetype)initWithSenderIds:(nullable NSArray *)senderIds + objectNames:(nullable NSArray *)objectNames; + +@end + +/// 本地消息搜索参数。 +/// +/// ``` +/// 查询时间轴: +/// 0--------startTime--------------------endTime---------Now() +/// 正序(order == RCOrderAscending)查询: +/// 0--------startTime|---->--------------endTime---------Now() +/// 倒序(order == RCOrderDescending)查询个数: +/// 0--------startTime--------------<----|endTime---------Now() +/// 倒序有位移 (offset) 查询: +/// 0--------startTime----------<----|----endTime---------Now() +/// ``` +/// +/// - Since: 5.22.0 +@interface RCSearchMessageParams : NSObject + +/// 搜索关键词。 +@property (nonatomic, copy, nullable) NSString *keyword; + +/// 查询个数,范围为 (0, 100]。 +@property (nonatomic, assign) NSInteger limit; + +/// 查询位移,默认为 0。 +@property (nonatomic, assign) NSInteger offset; + +/// 排序方式,默认为 `RCOrderDescending`。 +@property (nonatomic, assign) RCOrder order; + +/// 查询的时间范围。 +@property (nonatomic, strong, nullable) RCTimeRange *timeRange; + +/// 查询的会话条件。 +@property (nonatomic, strong, nullable) RCConversationFilter *conversationFilter; + +/// 查询的消息条件。 +@property (nonatomic, strong, nullable) RCMessageFilter *messageFilter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSendMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSendMessageOption.h new file mode 100644 index 0000000..57abd2a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSendMessageOption.h @@ -0,0 +1,23 @@ +// +// RCSendMessageOption.h +// RongIMLib +// +// Created by liyan on 2019/4/29. +// Copyright © 2019 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCSendMessageOption : NSObject + +/// 发送的消息,是否走 VOIP 推送 +/// +/// 该属性主要用于音视频通话场景。 +/// - Warning: 由于苹果审核机制,需要区分国内和国外,请务必认真阅读文档:https://doc.rongcloud.cn/call/IOS/5.X/callkit/push +@property (nonatomic, assign) BOOL isVoIPPush; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSightMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSightMessage.h new file mode 100644 index 0000000..495f2a5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSightMessage.h @@ -0,0 +1,51 @@ +// +// RCSightMessage.h +// RongIMLib +// +// Created by LiFei on 2016/12/1. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import + +/// 小视频消息的类型名 +#define RCSightMessageTypeIdentifier @"RC:SightMsg" + +NS_ASSUME_NONNULL_BEGIN + +@class AVAsset; + +/// 小视频消息类 +/// +/// 小视频消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +/// +@interface RCSightMessage : RCMediaMessageContent + +/// 网络 URL 地址 +@property (nonatomic, readonly, nullable) NSString *sightUrl; + +/// 视频时长,以秒为单位 +@property (nonatomic, assign, readonly) NSUInteger duration; + +/// 文件大小 +@property (nonatomic, assign, readonly) long long size; + +/// 缩略图 +@property (nonatomic, strong, readonly, nullable) UIImage *thumbnailImage; + + +/// 创建小视频消息的便利构造方法 +/// +/// - Parameter path: 视频文件本地路径 +/// - Parameter image: 视频首帧缩略图 +/// - Parameter duration: 视频时长,以秒为单位 +/// - Returns: 视频消息实例变量 +/// ++ (instancetype)messageWithLocalPath:(NSString *)path thumbnail:(UIImage *)image duration:(NSUInteger)duration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSpeechToTextDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSpeechToTextDelegate.h new file mode 100644 index 0000000..f1f7cc1 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSpeechToTextDelegate.h @@ -0,0 +1,32 @@ +// +// RCSpeechToTextDelegate.h +// RongIMLibCore +// +// Created by shaoshuai on 2025/5/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCSpeechToTextInfo; + +@protocol RCSpeechToTextDelegate + +/// 语音转文本完成。 +/// +/// - Parameters: +/// - info: 语音转文本信息。 +/// - messageUId: 消息对应的唯一 ID。 +/// - code: 错误码。 +/// +/// - Since: 5.22.0 +- (void)speechToTextDidComplete:(RCSpeechToTextInfo* _Nullable)info + messageUId:(NSString*)messageUId + code:(RCErrorCode)code; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSpeechToTextInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSpeechToTextInfo.h new file mode 100644 index 0000000..99be305 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSpeechToTextInfo.h @@ -0,0 +1,43 @@ +// +// RCSpeechToTextInfo.h +// RongIMLibCore +// +// Created by RobinCui on 2025/5/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 转换状态。 +/// +/// - Since: 5.22.0 +typedef NS_ENUM(NSInteger, RCSpeechToTextStatus) { + /// 未转换。 + RCSpeechToTextStatusNotConverted = 0, + /// 转换中。 + RCSpeechToTextStatusConverting = 1, + /// 转换成功。 + RCSpeechToTextStatusSuccess = 2, + /// 转换失败。 + RCSpeechToTextStatusFailed = 3, +}; + +/// 语音转文本信息。 +/// +/// - Since: 5.22.0 +@interface RCSpeechToTextInfo : NSObject + +/// 转换状态。 +@property (nonatomic, assign) RCSpeechToTextStatus status; + +/// 转换的文本内容。 +@property (nonatomic, copy, nullable) NSString *text; + +/// 是否可见,默认 NO。 +@property (nonatomic, assign) BOOL isVisible; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStatusDefine.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStatusDefine.h new file mode 100644 index 0000000..42c7ffc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStatusDefine.h @@ -0,0 +1,545 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCStatusDefine.h +// Created by Heq.Shinoda on 14-4-21. + +#import +#import +#ifndef __RCStatusDefine +#define __RCStatusDefine + +#pragma mark - 错误码相关 + +typedef RCErrorCode RCConnectErrorCode; + +typedef NS_ENUM(NSInteger, RCDBErrorCode) { + RCDBOpenSuccess = 0, + RCDBOpenFailed = 33002, +}; + +#pragma mark - 连接状态 + +#pragma mark RCConnectionStatus - 网络连接状态码 +/// 网络连接状态码 +typedef NS_ENUM(NSInteger, RCConnectionStatus) { + /// 未知状态 + /// 建立连接中出现异常的临时状态,SDK 会做好自动重连,开发者无须处理。 + ConnectionStatus_UNKNOWN = -1, + + /// 连接成功 + ConnectionStatus_Connected = 0, + + /// 连接过程中,当前设备网络不可用 + /// 当网络恢复可用时,SDK 会做好自动重连,开发者无须处理。 + ConnectionStatus_NETWORK_UNAVAILABLE = 1, + + /// 当前用户在其他设备上登录,此设备被踢下线 + ConnectionStatus_KICKED_OFFLINE_BY_OTHER_CLIENT = 6, + + /// 连接中 + ConnectionStatus_Connecting = 10, + + /// 连接失败或未连接 + ConnectionStatus_Unconnected = 11, + + /// 已登出 + ConnectionStatus_SignOut = 12, + + /// 连接暂时挂起(多是由于网络问题导致),SDK 会在合适时机进行自动重连 + ConnectionStatus_Suspend = 13, + + /// 自动连接超时,SDK 将不会继续连接,用户需要做超时处理,再自行调用 connectWithToken 接口进行连接 + ConnectionStatus_Timeout = 14, + + /// Token 无效 + /// Token 无效一般有两种原因。一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey + /// 是否一致;二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token + /// 并再次用新的 token 建立连接。 + ConnectionStatus_TOKEN_INCORRECT = 15, + + /// 与服务器的连接已断开,用户被封禁 + ConnectionStatus_DISCONN_EXCEPTION = 16, + + /// proxy 服务不可用,SDK 将不会继续连接,用户需要检查 proxy 是否可用,再自行调用 connectWithToken 接口进行连接 + ConnectionStatus_PROXY_UNAVAILABLE = 17, + + /// 用户账号已销户,不再进行连接 + ConnectionStatus_USER_ABANDON = 19 +}; + +#pragma mark RCNetworkStatus - 当前所处的网络 +/// 当前所处的网络 +typedef NS_ENUM(NSUInteger, RCNetworkStatus) { + /// 当前网络不可用 + RC_NotReachable = 0, + + /// 当前处于 WiFi 网络 + RC_ReachableViaWiFi = 1, + + /// 移动网络 + RC_ReachableViaWWAN = 2, +}; + +#pragma mark RCSDKRunningMode - SDK当前所处的状态 + +/// SDK 当前所处的状态 +typedef NS_ENUM(NSUInteger, RCSDKRunningMode) { + /// 后台运行状态 + RCSDKRunningMode_Background = 0, + + /// 前台运行状态 + RCSDKRunningMode_Foreground = 1 +}; + +#pragma mark - 会话相关 + +#pragma mark RCConversationType - 会话类型 + +/// 会话类型 +typedef NS_ENUM(NSUInteger, RCConversationType) { + /// 单聊 + ConversationType_PRIVATE = 1, + + /// 讨论组 + ConversationType_DISCUSSION = 2, + + /// 群组 + ConversationType_GROUP = 3, + + /// 聊天室 + ConversationType_CHATROOM = 4, + + /// 客服 + ConversationType_CUSTOMERSERVICE = 5, + + /// 系统会话 + ConversationType_SYSTEM = 6, + + /// 应用内公众服务会话 + /// + /// 客服 2.0 使用应用内公众服务会话(ConversationType_APPSERVICE)的方式实现。 + /// 即客服 2.0 会话是其中一个应用内公众服务会话,这种方式我们目前不推荐, + /// 请尽快升级到新客服,升级方法请参考官网的客服文档。文档链接 + /// https://docs.rongcloud.cn/services/public/app/prepare/ + ConversationType_APPSERVICE = 7, + + /// 跨应用公众服务会话 + ConversationType_PUBLICSERVICE = 8, + + /// 推送服务会话 + ConversationType_PUSHSERVICE = 9, + + /// 超级群 + ConversationType_ULTRAGROUP = 10, + + /// 加密会话(仅对部分私有云用户开放,公有云用户不适用) + ConversationType_Encrypted = 11, + /// RTC 会话 + ConversationType_RTC = 12, + + /// 无效类型 + ConversationType_INVALID + +}; + +#pragma mark RCConversationNotificationStatus - 会话提醒状态 +/// 会话提醒状态 +typedef NS_ENUM(NSUInteger, RCConversationNotificationStatus) { + /// 免打扰 + DO_NOT_DISTURB = 0, + + /// 新消息提醒 + NOTIFY = 1, +}; + +#pragma mark RCReadReceiptMessageType - 消息回执 +/// 已读状态消息类型 +typedef NS_ENUM(NSUInteger, RCReadReceiptMessageType) { + /// 根据会话来更新未读消息状态 + RC_ReadReceipt_Conversation = 1, +}; + +#pragma mark - 消息相关 + +#pragma mark RCMessagePersistent - 消息的存储策略 +/// 消息的存储策略 +typedef NS_ENUM(NSUInteger, RCMessagePersistent) { + /// 在本地不存储,不计入未读数 + MessagePersistent_NONE = 0, + + /// 在本地只存储,但不计入未读数 + MessagePersistent_ISPERSISTED = 1, + + /// 在本地进行存储并计入未读数 + MessagePersistent_ISCOUNTED = 3, + + /// 在本地不存储,不计入未读数,并且如果对方不在线,服务器会直接丢弃该消息,对方如果之后再上线也不会再收到此消息。 + /// 一般用于发送输入状态之类的消息。 + MessagePersistent_STATUS = 16 +}; + +#pragma mark RCMessageDirection - 消息的方向 +/// 消息的方向 +typedef NS_ENUM(NSUInteger, RCMessageDirection) { + /// 发送 + MessageDirection_SEND = 1, + + /// 接收 + MessageDirection_RECEIVE = 2 +}; + +#pragma mark RCSentStatus - 消息的发送状态 +/// 消息的发送状态 +typedef NS_ENUM(NSUInteger, RCSentStatus) { + /// 发送中 + SentStatus_SENDING = 10, + + /// 发送失败 + SentStatus_FAILED = 20, + + /// 已发送成功 + SentStatus_SENT = 30, + + /// 对方已接收 + SentStatus_RECEIVED = 40, + + /// 对方已阅读 + SentStatus_READ = 50, + + /// 对方已销毁 + SentStatus_DESTROYED = 60, + + /// 发送已取消 + SentStatus_CANCELED = 70, + + /// 无效类型 + SentStatus_INVALID +}; + +#pragma mark RCReceivedStatus - 消息的接收状态 +/// 消息的接收状态 +typedef NS_ENUM(NSUInteger, RCReceivedStatus) { + /// 未读 + ReceivedStatus_UNREAD = 0, + + /// 已读 + ReceivedStatus_READ = 1, + + /// 已听 + /// 仅用于语音消息 + ReceivedStatus_LISTENED = 2, + + /// 已下载 + ReceivedStatus_DOWNLOADED = 4, + + /// 该消息已被同时在线或之前登录的其他设备接收。只要任何其他设备先收到该消息,当前设备就会有该状态值。 + ReceivedStatus_RETRIEVED = 8, + + /// 该消息是被多端同时收取的。(即其他端正同时登录,一条消息被同时发往多端。客户可以通过这个状态值更新自己的某些 UI + /// 状态)。 + ReceivedStatus_MULTIPLERECEIVE = 16, + +} __deprecated_msg("Use RCReceivedStatusInfo instead"); + +#pragma mark RCMediaType - 消息内容中多媒体文件的类型 +/// 消息内容中多媒体文件的类型 +typedef NS_ENUM(NSUInteger, RCMediaType) { + /// 图片 + MediaType_IMAGE = 1, + + /// 语音 + MediaType_AUDIO = 2, + + /// 视频 + MediaType_VIDEO = 3, + + /// 其他文件 + MediaType_FILE = 4, + + /// 小视频 + MediaType_SIGHT = 5, + + /// 合并转发 + MediaType_HTML = 6 +}; + +#pragma mark RCTypingStatus - 输入状态 +typedef NS_ENUM(NSUInteger, RCUltraGroupTypingStatus) { + /// 正在输入文本 + RCUltraGroupTypingStatusText = 0, +}; + +#pragma mark RCMediaType - 消息中@提醒的类型 +/// @提醒的类型 +typedef NS_ENUM(NSUInteger, RCMentionedType) { + /// @ 所有人 + RC_Mentioned_All = 1, + + /// @ 部分指定用户 + RC_Mentioned_Users = 2, +}; + +#pragma mark - 消息内容审核配置 + +typedef NS_ENUM(NSInteger, RCMessageAuditType) { + /// 不需要审核 + RCMessageAuditTypeDisallow = 0, + + /// 需要审核 + RCMessageAuditTypeAllow = 1, +}; + + +/// 语音消息采样率 +typedef NS_ENUM(NSInteger, RCSampleRate) { + /// 8KHz + RCSample_Rate_8000 = 1, + /// 16KHz + RCSample_Rate_16000 = 2, +}; + +/// 语音消息类型 +typedef NS_ENUM(NSInteger, RCVoiceMessageType) { + /// 普通音质语音消息 + RCVoiceMessageTypeOrdinary = 1, + /// 高音质语音消息 + RCVoiceMessageTypeHighQuality = 2, +}; + +#pragma mark - 公众服务相关 + +#pragma mark RCPublicServiceType - 公众服务账号类型 + +/// 公众服务账号类型 +typedef NS_ENUM(NSUInteger, RCPublicServiceType) { + /// 应用内公众服务账号 + RC_APP_PUBLIC_SERVICE = 7, + + /// 跨应用公众服务账号 + RC_PUBLIC_SERVICE = 8, +}; + +#pragma mark RCSearchType - 公众服务查找匹配方式 +/// 公众服务查找匹配方式 +typedef NS_ENUM(NSUInteger, RCSearchType) { + /// 精确匹配 + RC_SEARCH_TYPE_EXACT = 0, + + /// 模糊匹配 + RC_SEARCH_TYPE_FUZZY = 1, + + /// 无效类型 + RCSearchType_INVALID +}; + +#pragma mark - RCLogLevel - 日志级别 +/// 日志级别 +typedef NS_ENUM(NSUInteger, RCLogLevel) { + + /// 不输出任何日志 + RC_Log_Level_None = 0, + + /// 只输出错误的日志 + RC_Log_Level_Error = 1, + + /// 输出错误和警告的日志 + RC_Log_Level_Warn = 2, + + /// 输出错误、警告和一般的日志 + RC_Log_Level_Info = 3, + + /// 输出输出错误、警告和一般的日志以及 debug 日志 + RC_Log_Level_Debug = 4, + + /// 输出所有日志 + RC_Log_Level_Verbose = 5, +}; + +#pragma mark - RCTimestampOrder - 历史消息查询顺序 + +/// 日志级别 +typedef NS_ENUM(NSUInteger, RCTimestampOrder) { + /// 降序,按照时间戳从大到小 + RC_Timestamp_Desc = 0, + + /// 升序,按照时间戳从小到大 + RC_Timestamp_Asc = 1, +}; + +#pragma mark - RCPlatform - 在线平台 + +/// 在线平台 +typedef NS_ENUM(NSUInteger, RCPlatform) { + /// 其它平台 + RCPlatform_Other = 0, + + /// iOS + RCPlatform_iOS = 1, + + /// Android + RCPlatform_Android = 2, + + /// Web + RCPlatform_Web = 3, + + /// PC + RCPlatform_PC = 4, + + /// 小程序 + RCPlatform_MiniWeb = 5, + + /// 鸿蒙 + RCPlatform_HarmonyOS = 6, +}; + +#pragma mark - RCPushLanguageType - push 语言设置 + +/// push 语言设置 +typedef NS_ENUM(NSUInteger, RCPushLanguage) { + /// 英文 + RCPushLanguage_EN_US = 1, + /// 中文 + RCPushLanguage_ZH_CN = 2, + /// 阿拉伯文 + RCPushLanguage_AR_SA +}; + +/// push 语言设置 +typedef NS_ENUM(NSUInteger, RCPushLauguage) { + /// 英文 + RCPushLauguage_EN_US = 1, + /// 中文 + RCPushLauguage_ZH_CN = 2, + /// 阿拉伯文 + RCPushLauguage_AR_SA +} __deprecated_msg("Use RCPushLanguage instead"); + +#pragma mark - RCMessageBlockType - 消息被拦截类型 + +/// 消息被拦截类型 +typedef NS_ENUM(NSUInteger, RCMessageBlockType) { + /// 全局敏感词:命中了融云内置的全局敏感词 + RCMessageBlockTypeGlobal = 1, + + /// 自定义敏感词拦截:命中了客户在融云自定义的敏感词 + RCMessageBlockTypeCustom = 2, + + /// 第三方审核拦截:命中了第三方(数美)或消息回调服务决定不下发的状态 + RCMessageBlockTypeThirdParty = 3, +}; + +typedef NS_ENUM(NSInteger, RCPushNotificationLevel) { + /// 全部消息通知(接收全部消息通知 -- 显示指定关闭免打扰功能) + /// 超级群设置全部消息通知时 + /// @ 消息一定收到推送通知 + /// 普通消息的推送频率受到超级群服务端默认推送频率设置的影响,无法做到所有普通消息都通知 + RCPushNotificationLevelAllMessage = -1, + /// 未设置(向上查询群或者 APP 级别设置),存量数据中 0 表示未设置 + RCPushNotificationLevelDefault = 0, + /// 群聊,超级群 @所有人 或者 @成员列表有自己 时通知;单聊代表消息不通知 + RCPushNotificationLevelMention = 1, + /// 群聊,超级群 @成员列表有自己时通知,@所有人不通知;单聊代表消息不通知 + RCPushNotificationLevelMentionUsers = 2, + /// 群聊,超级群 @所有人通知,其他情况都不通知;单聊代表消息不通知 + RCPushNotificationLevelMentionAll = 4, + /// 消息通知被屏蔽,即不接收消息通知 + RCPushNotificationLevelBlocked = 5, +}; + +typedef NS_ENUM(NSInteger, RCPushNotificationQuietHoursLevel) { + /// 未设置(向上查询群或者 APP 级别设置) + RCPushNotificationQuietHoursLevelDefault = 0, + /// 群聊超级群仅 @ 消息通知,单聊代表消息不通知 + RCPushNotificationQuietHoursLevelMention = 1, + /// 消息通知被屏蔽,即不接收消息通知 + RCPushNotificationQuietHoursLevelBlocked = 5, +}; + +typedef NS_ENUM(NSInteger, RCUltraGroupChannelType) { + /// 超级群公有频道 + RCUltraGroupChannelTypePublic = 0, + /// 超级群私有频道 + RCUltraGroupChannelTypePrivate = 1 +}; + + +typedef NS_ENUM(NSInteger, RCUltraGroupChannelChangeType) { + /// 超级群公有频道变成了私有频道 + RCUltraGroupChannelChangeTypePublicToPrivate = 2, + /// 超级群私有频道变成了共有频道 + RCUltraGroupChannelChangeTypePrivateToPublic = 3, + /// 超级群公有频道变成了私有频道,但是当前用户不再该私有频道中 + RCUltraGroupChannelChangeTypePublicToPrivateUserNotIn = 6 +}; + +/// 排序。 +/// +/// - Since: 5.20.0 +typedef NS_ENUM(NSInteger, RCOrder) { RCOrderDescending = 0, RCOrderAscending }; + +@class RCConversation; +typedef void (^RCConversationListCompletion)(NSArray *conversations, RCErrorCode code); + +@class RCMessage; +typedef void (^RCMessageListCompletion)(NSArray *messages, RCErrorCode code); +typedef void (^RCSearchMessageListCompletion)(NSArray *messages, NSUInteger matchCount, RCErrorCode code); + +#pragma mark - 翻译 + +/// 翻译类型。 +/// +/// - Since: 5.24.0 +typedef NS_ENUM(NSInteger, RCTranslateMode) { + /// 高速翻译,主要采用机器翻译。 + RCTranslateModeMechanical = 0, + /// 智能翻译。 + RCTranslateModeIntelligent = 1 +}; + +/// 会话翻译方式。 +/// +/// - Since: 5.24.0 +typedef NS_ENUM(NSInteger, RCTranslateStrategy) { + /// 默认,会跟随用户级别的自动翻译方式。 + RCTranslateStrategyDefault = 0, + /// 自动翻译。 + RCTranslateStrategyAutoOn = 1, + /// 手动翻译。 + RCTranslateStrategyAutoOff = 2, +}; + +@class RCTranslateItem; + +/** + 消息已读回执功能版本 + */ +typedef NS_ENUM(NSInteger, RCMessageReadReceiptVersion) { + /** + 消息已读回执功能版本1 + */ + RCMessageReadReceiptVersion1 = 0, + /** + 消息已读回执功能版本2 + */ + RCMessageReadReceiptVersion2 = 1, + /** + 消息已读回执功能版本4 + */ + RCMessageReadReceiptVersion4 = 3, + /** + 消息读回执功能版本5 + */ + RCMessageReadReceiptVersion5 = 4, +}; + + + + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStatusMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStatusMessage.h new file mode 100644 index 0000000..85e8ebe --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStatusMessage.h @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCStatusMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import +/** + 状态消息的抽象基类,表示某种状态,不会存入消息历史记录。 + 此类消息不保证一定到达接收方(但只是理论上存在丢失的可能),但是速度最快,所以通常用来传递状态信息。 +*/ +@interface RCStatusMessage : RCMessageContent + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStreamMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStreamMessage.h new file mode 100644 index 0000000..b4da108 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStreamMessage.h @@ -0,0 +1,57 @@ +// +// RCStreamMessage.h +// RongIMLibCore +// +// Created by shuai shao on 2025/2/19. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 流式消息的类型名。 +#define RCStreamMessageTypeIdentifier @"RC:StreamMsg" + +/// 流式消息扩展中的摘要 Key。 +#define RCStreamMessageExpansionSummeryKey @"RC_Ext_StreamMsgSummary" + +@interface RCReferenceInfo : NSObject + +/// 被引用消息的发送者 ID。 +@property (nonatomic, strong, readonly) NSString *senderId; + +/// 被引用消息的 messageUId。服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, strong, readonly) NSString *messageUId; + +/// 被引用消息的消息体。 +@property (nonatomic, strong, readonly, nullable) RCMessageContent *content; + +@end + +@interface RCStreamMessage : RCMessageContent + +/// 流式消息内容。 +@property (nonatomic, copy, readonly) NSString *content; + +/// 流式消息的文本格式。 +@property (nonatomic, copy, readonly) NSString *type; + +/// 流式消息内容是否结束生成。 +@property (nonatomic, assign, readonly) BOOL isComplete; + +/// 流式消息内容是异常结束的原因,为业务服务器下发。 +@property (nonatomic, assign, readonly) NSInteger completeReason; + +/// 流式消息内容是异常结束的原因,为融云服务器下发,0 为正常结束。 +@property (nonatomic, assign, readonly) NSInteger stopReason; + +/// 客户端是否完成流拉取标识。 +@property (nonatomic, assign, readonly) BOOL isSync; + +/// 流式消息引用的消息信息。 +@property (nonatomic, strong, readonly, nullable) RCReferenceInfo *referMsg; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStreamMessageRequestParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStreamMessageRequestParams.h new file mode 100644 index 0000000..91973e5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCStreamMessageRequestParams.h @@ -0,0 +1,28 @@ +// +// RCStreamMessageRequest.h +// RongIMLibCore +// +// Created by shuai shao on 2025/2/20. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 流式消息一次片段的信息。 +@interface RCStreamMessageChunkInfo : NSObject + +/// 流消息增量数据。 +@property (nonatomic, copy) NSString *content; + +@end + +@interface RCStreamMessageRequestParams : NSObject + +/// 消息唯一 ID +@property (nonatomic, copy) NSString *messageUId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEvent.h new file mode 100644 index 0000000..7779cc2 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEvent.h @@ -0,0 +1,57 @@ +// +// RCSubscribeEvent.h +// RongIMLibCore +// +// Created by chinaspx on 2024/2/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 订阅类型枚举 +typedef NS_ENUM(NSInteger, RCSubscribeType) { + /// 订阅在线状态 + RCSubscribeTypeOnlineStatus = 1, + /// 订阅用户信息变更 + /// + /// - Since: 5.10.0 + RCSubscribeTypeUserProfile = 2, + + /// 好友在线状态(好友无需主动订阅) + /// - Since: + RCSubscribeTypeFriendOnlineStatus = 3, + + /// 好友用户信息变更(好友无需主动订阅) + /// - Since: + RCSubscribeTypeFriendUserProfile = 4, + + /// 无效枚举值,业务上不用 + RCSubscribeTypeInvalid +}; + +typedef NS_ENUM(NSInteger, RCSubscribeOperationType) { + // 订阅 + RCSubscribeOperationTypeSubscribe = 0, + // 取消订阅 + RCSubscribeOperationTypeUnSubscribe = 1 +}; + +/// 订阅的事件 +@interface RCSubscribeEvent : NSObject +/// 订阅用户 ID +@property (nonatomic, copy) NSString *userId; +/// 订阅类型 +@property (nonatomic, assign) RCSubscribeType subscribeType; +/// 订阅操作类型 +@property (nonatomic, assign) RCSubscribeOperationType operationType; +/// 订阅时间,unix 毫秒 +@property (nonatomic, assign) long long subscribeTime; +/// 订阅有效时长,单位秒 [60s ~ 30 天] +@property (nonatomic, assign) NSInteger expiry; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEventDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEventDelegate.h new file mode 100644 index 0000000..4cd80ac --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEventDelegate.h @@ -0,0 +1,53 @@ +// +// RCSubscribeEventDelegate.h +// RongIMLibCore +// +// Created by chinaspx on 2024/2/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#ifndef RCSubscribeEventDelegate_h +#define RCSubscribeEventDelegate_h + +NS_ASSUME_NONNULL_BEGIN + +@class RCSubscribeEvent, RCSubscribeInfoEvent; +@protocol RCSubscribeEventDelegate +@optional +/// 当订阅事件发生变化时调用此方法。 +/// 功能说明:当任何订阅的事件发生变化时,此方法将被触发。 +/// 可以通过实现此方法来处理事件的变化,例如更新用户界面或处理新的数据。 +/// 通常,该方法在后台线程中被调用,因此更新 UI 时需要切换到主线程。 +/// +/// - Parameter subscribeEvents: 订阅事件的列表,包含所有发生变化的事件。 +/// - Remark: 订阅过期没有通知,开发者需自行关注过期时间 +/// - Since: 5.8.1 +- (void)onEventChange:(NSArray *)subscribeEvents; + + +/// 订阅数据同步完成。 +/// 该方法在订阅数据成功同步到设备或系统后调用,用于执行后续处理。 +/// +/// - Since: 5.8.1 +- (void)onSubscriptionSyncCompleted __deprecated_msg("Use onSubscriptionSyncCompleted: instead"); + + +/// 订阅数据同步完成。 +/// 该方法在订阅数据成功同步到设备或系统后调用,用于执行后续处理。 +/// - Parameter type: 订阅事件的类型 +/// - Since: 5.10.0 +- (void)onSubscriptionSyncCompleted:(RCSubscribeType)type; + + +/// 当用户在其他设备上的订阅信息发生变更时调用此方法。 +/// 这可以用于更新当前设备上的用户状态,确保订阅信息的一致性。 +/// +/// - Parameter subscribeEvents: 订阅事件的列表。 +/// - Since: 5.8.1 +- (void)onSubscriptionChangedOnOtherDevices:(NSArray *)subscribeEvents; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCSubscribeEventDelegate_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEventRequest.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEventRequest.h new file mode 100644 index 0000000..a47d43d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeEventRequest.h @@ -0,0 +1,24 @@ +// +// RCSubscribeEventRequest.h +// RongIMLibCore +// +// Created by chinaspx on 2024/2/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCSubscribeEventRequest : NSObject +/// 订阅类型 +@property (nonatomic, assign) RCSubscribeType subscribeType; +/// 订阅有效时长,单位秒 [60s ~ 30 天] +/// 订阅接口请求时必传,其余接口不使用此字段 +@property (nonatomic, assign) NSInteger expiry; +/// 订阅的用户列表 +@property (nonatomic, strong) NSArray *userIds; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeInfoEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeInfoEvent.h new file mode 100644 index 0000000..e653b12 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeInfoEvent.h @@ -0,0 +1,48 @@ +// +// RCSubscribeInfoEvent.h +// RongIMLibCore +// +// Created by chinaspx on 2024/4/8. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCSubscribeEventDetail; +@class RCUserProfile; + +/// 订阅的状态信息事件(含状态信息) +@interface RCSubscribeInfoEvent : NSObject +/// 订阅用户 ID +@property (nonatomic, copy) NSString *userId; +/// 订阅类型 +@property (nonatomic, assign) RCSubscribeType subscribeType; +/// 订阅时间,unix 毫秒 +@property (nonatomic, assign) long long subscribeTime; +/// 订阅有效时长,单位秒 [60s ~ 30 天] +@property (nonatomic, assign) NSInteger expiry; +/// 订阅用户的状态信息 +@property (nonatomic, strong, nullable) NSArray *details; + +/// 订阅用户的用户信息 +/// +/// - Since: 5.10.0 +@property (nonatomic, strong, nullable) RCUserProfile *userProfile; + +@end + + +@interface RCSubscribeEventDetail : NSObject +/// 订阅事件状态值 (0:离线,1:在线) +@property (nonatomic, assign) NSInteger eventValue; + +/// 状态修改时间,unix 毫秒 +@property (nonatomic, assign) long long changeTime; + +/// 设备平台 +@property (nonatomic, assign) RCPlatform platform; + +@end +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeUserOnlineStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeUserOnlineStatus.h new file mode 100644 index 0000000..829c67a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSubscribeUserOnlineStatus.h @@ -0,0 +1,24 @@ +// +// RCSubscribeUserOnlineStatus.h +// RongIMLibCore +// +// Created by huan xu on 2025/9/10. +// Copyright © 2025 RongCloud. All rights reserved. + +/// - Since: 5.28.0 + +#import + +NS_ASSUME_NONNULL_BEGIN +@class RCPlatformOnlineStatus; +@interface RCSubscribeUserOnlineStatus : NSObject +/// 用户id +@property (nonatomic, copy) NSString *userId; +/// 平台信息 +@property (nonatomic, copy) NSArray *details; +/// 是否在线,只要有一个 details 里面只要有一个平台在线,当前 isOnline = YES +@property (nonatomic, assign) BOOL isOnline; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSyncReadStatusMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSyncReadStatusMessage.h new file mode 100644 index 0000000..201cb8a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCSyncReadStatusMessage.h @@ -0,0 +1,26 @@ +// +// RCSyncReadStatusMessage.h +// RongIMLib +// +// Created by 杜立召 on 16/8/22. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import "RCMessageContent.h" + +/*! + 消息已读状态同步消息类 + + 消息已读状态同步消息类,此消息会进行不存储不计入未读消息数。 + + - Remark: 信令类消息 +*/ +@interface RCSyncReadStatusMessage : RCMessageContent +#define RCSyncReadStatusMessageTypeIdentifier @"RC:SRSMsg" + +/// 最后一条消息的发送时间 +@property (nonatomic, assign) long long lastMessageSendTime; + ++ (instancetype)notificationWithLastMessageSendTime:(long long)lastMessageSendTime; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTSMutableDictionary.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTSMutableDictionary.h new file mode 100644 index 0000000..fef8de9 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTSMutableDictionary.h @@ -0,0 +1,13 @@ +// +// RCTSMutableDictionary.h +// RongIMKit +// +// Created by 岑裕 on 16/5/12. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +@interface RCTSMutableDictionary : NSMutableDictionary + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTagInfo.h new file mode 100644 index 0000000..6076ed0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTagInfo.h @@ -0,0 +1,36 @@ +// +// RCTagInfo.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 标签信息 +@interface RCTagInfo : NSObject +/// 标签 ID +@property (nonatomic, copy) NSString *tagId; + +/// 标签名称 +@property (nonatomic, copy) NSString *tagName; + +/// 该标签下的会话个数 +@property (nonatomic, assign) NSInteger count; + +/// 标签创建时间 +@property (nonatomic, assign) long long timestamp; + +/*! + RCTagInfo 初始化方法 + + - Parameter tagId: 标签 id + - Parameter tagName: 标签名称 + */ +- (instancetype)initWithTagInfo:(NSString *)tagId tagName:(NSString *)tagName; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTagProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTagProtocol.h new file mode 100644 index 0000000..962bc71 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTagProtocol.h @@ -0,0 +1,35 @@ +// +// RCTagProtocol.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#ifndef RCTagProtocol_h +#define RCTagProtocol_h + +@protocol RCTagDelegate + +/*! + 标签变化 + + 本端添加删除更新标签,不会触发不会触发此回调方法,在相关调用方法的 block 块直接回调 + */ +- (void)onTagChanged; + +@end + + +@protocol RCConversationTagDelegate + +/*! + 会话标签变化 + + 本端添加删除更新会话标签,不会触发此回调方法,在相关调用方法的 block 块直接回调 + */ + +- (void)onConversationTagChanged; + +@end +#endif /* RCTagProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTextMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTextMessage.h new file mode 100644 index 0000000..2166f8e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTextMessage.h @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCTextMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +/// 文本消息的类型名 +#define RCTextMessageTypeIdentifier @"RC:TxtMsg" + +NS_ASSUME_NONNULL_BEGIN +@class RCTranslateInfo; +/// 文本消息类 +/// +/// 文本消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCTextMessage : RCMessageContent + +/// 文本消息的内容 +@property (nonatomic, copy) NSString *content; + +/// 翻译信息。 +/// +/// - Since: 5.24.0 +@property (nonatomic, strong) RCTranslateInfo *translateInfo; + +/// 初始化文本消息 +/// +/// - Parameter content: 文本消息的内容 +/// - Returns: 文本消息对象 ++ (instancetype)messageWithContent:(NSString *)content; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslateParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslateParams.h new file mode 100644 index 0000000..2d54a83 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslateParams.h @@ -0,0 +1,79 @@ +// +// RCTranslateParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/30. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +enum RCTranslateMode : NSInteger; + +/// 消息翻译参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateMessageParam : NSObject +/// 消息内容的语言,为空时,会自动识别。 +@property (nonatomic, copy, nullable) NSString *sourceLanguage; + +// 翻译的语言,为空时,使用配置的全局语言。 +@property (nonatomic, copy, nullable) NSString *targetLanguage; +/// 消息 UId。 +@property (nonatomic, copy) NSString *messageUId; +/// 内容唯一标识,业务用来做内容和翻译内容匹配 +@property (nonatomic, copy, readonly) NSString *identifier; + +@end + +/// 批量翻译消息参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateMessagesParams : NSObject + +/// 翻译模式,默认为 `RCTranslateModeMechanical`。 +@property (nonatomic, assign) enum RCTranslateMode mode; + +/// 是否强制重新翻译,默认为 NO。 +/// +/// - Note: 翻译过的消息会做缓存,如果需要重新翻译,设置 YES。 +@property (nonatomic, assign) BOOL force; + +/// 待翻译消息信息数组,最多 10 条消息。 +@property (nonatomic, copy) NSArray *list; + +@end + +/// 文本翻译参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateTextParam : NSObject +/// 消息内容的语言,为空时,会自动识别。 +@property (nonatomic, copy, nullable) NSString *sourceLanguage; + +// 翻译的语言,为空时,使用配置的全局语言。 +@property (nonatomic, copy, nullable) NSString *targetLanguage; +/// 源文本。 +@property (nonatomic, copy) NSString *text; + +/// 内容唯一标识,业务用来做内容和翻译内容匹配 +@property (nonatomic, copy, readonly) NSString *identifier; + +@end + +/// 批量翻译文本参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateTextsParams : NSObject + +/// 翻译模式,默认为 `RCTranslateModeMechanical`。 +@property (nonatomic, assign) enum RCTranslateMode mode; + +/// 待翻译文本信息数组,最多 10 条。 +@property (nonatomic, copy) NSArray *list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslateResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslateResult.h new file mode 100644 index 0000000..3da44ec --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslateResult.h @@ -0,0 +1,60 @@ +// +// RCTranslateResult.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/30. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import "RCErrorCode.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCTranslateStatus) { + RCTranslateStatusNone, + RCTranslateStatusTranslating, + RCTranslateStatusSuccess, + RCTranslateStatusFailed +}; + +typedef NS_ENUM(NSInteger, RCTranslateResultType) { + RCTranslateResultTypeMessage, // 消息 + RCTranslateResultTypeCustomText // 自定义 +}; + +/// 翻译结果。 +/// +/// - Since: 5.24.0 +@interface RCTranslateInfo : NSObject + +/// 翻译后的内容。 +@property (nonatomic, copy) NSString *translatedText; + +/// 状态 +@property (nonatomic, assign) RCTranslateStatus status; + +// 翻译目标的语言。 +@property (nonatomic, copy) NSString *targetLanguage; + +@end + +/// 消息翻译结果。 +/// +/// - Since: 5.24.0 +@interface RCTranslateItem : NSObject + +/// 翻译内容标识:消息的 UId 或内容的 hash。 +@property (nonatomic, copy) NSString *identifier; + +/// 翻译信息 +@property (nonatomic, strong) RCTranslateInfo *translateInfo; + +/// 状态码 +@property (nonatomic, assign) RCErrorCode code; + +/// 翻译来源 +@property (nonatomic, assign) RCTranslateResultType from; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslationDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslationDelegate.h new file mode 100644 index 0000000..1b6d9b7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCTranslationDelegate.h @@ -0,0 +1,41 @@ +// +// RCTranslationDelegate.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/30. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +@class RCConversationIdentifier; + +enum RCTranslateStrategy : NSInteger; + +NS_ASSUME_NONNULL_BEGIN + +/// 语言翻译事件代理。 +/// +/// - Since: 5.24.0 +@protocol RCTranslationDelegate + +@optional + +/// 用户级别翻译语言更新。 +/// +/// - Parameter language: 用户级别翻译语言。 +- (void)translationLanguageDidChange:(NSString *)language; + +/// 用户级别的自动翻译状态更新。 +/// +/// - Parameter isEnable: 是否开启自动翻译。 +- (void)autoTranslateStateDidChange:(BOOL)isEnable; + + +/// 翻译完成回调 +/// - Parameter items:翻译内容 +- (void)translationDidFinished:(NSArray *)items; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUltraGroupChannelChangeInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUltraGroupChannelChangeInfo.h new file mode 100644 index 0000000..1a2e02e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUltraGroupChannelChangeInfo.h @@ -0,0 +1,61 @@ +// +// RCUltraGroupChannelChangeInfo.h +// RongIMLibCore +// +// Created by RobinCui on 2022/6/15. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCUltraGroupChannelChangeInfo : NSObject + +/// 超级群 id +@property (nonatomic, copy) NSString *targetId; + +/// 超级群频道 id +@property (nonatomic, copy) NSString *channelId; + +/// 时间 +@property (nonatomic, assign) long long time; + +@end + + +@interface RCUltraGroupChannelChangeTypeInfo : NSObject + +/// 超级群变更基础信息 +@property (nonatomic, strong) RCUltraGroupChannelChangeInfo *changeInfo; + +/// 对应频道具体的变更信息 +@property (nonatomic, assign) RCUltraGroupChannelChangeType changeType; + +@end + + +@interface RCUltraGroupChannelUserKickedInfo : NSObject + +/// 超级群变更基础信息 +@property (nonatomic, strong) RCUltraGroupChannelChangeInfo *changeInfo; + +/// 当前私有频道被踢的用户 id,可能是当前用户,也可能是其他人 +@property (nonatomic, copy) NSString *userId; +/// 频道类型 +@property (nonatomic, assign) RCUltraGroupChannelType channelType; + +@end + + +@interface RCUltraGroupChannelDisbandedInfo : NSObject + +/// 超级群变更基础信息 +@property (nonatomic, strong) RCUltraGroupChannelChangeInfo *changeInfo; +/// 频道类型 +@property (nonatomic, assign) RCUltraGroupChannelType channelType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUltraGroupTypingStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUltraGroupTypingStatusInfo.h new file mode 100644 index 0000000..b902f37 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUltraGroupTypingStatusInfo.h @@ -0,0 +1,47 @@ +// +// RCUltraGroupTypingStatusInfo.h +// RongIMLibCore +// +// Created by zafer on 2021/12/20. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCUltraGroupTypingStatusInfo : NSObject +/*! + 会话 ID + */ +@property (nonatomic, copy) NSString *targetId; + +/*! + 所属会话的业务标识 + */ +@property (nonatomic, copy) NSString *channelId; + +/*! + 用户id + */ +@property (nonatomic, copy) NSString *userId; + +/*! + 用户数 + */ +@property (nonatomic, assign) NSInteger userNumbers; + +/*! + 输入状态 + */ +@property (nonatomic, assign) RCUltraGroupTypingStatus status; + +/*! + 服务端收到用户操作的上行时间. + */ +@property (nonatomic, assign) long long timestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUnknownMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUnknownMessage.h new file mode 100644 index 0000000..b9fbf4e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUnknownMessage.h @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCUnknownMessage.h +// Created by xugang on 15/1/24. + +#import + +/// 未知消息的类型名 +#define RCUnknownMessageTypeIdentifier @"RC:UnknownMsg" + +/// 未知消息类 +/// +/// 所有未注册的消息类型,在 IMKit 中都会作为此类消息处理和显示。 +@interface RCUnknownMessage : RCMessageContent + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUploadImageStatusListener.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUploadImageStatusListener.h new file mode 100644 index 0000000..f3c1617 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUploadImageStatusListener.h @@ -0,0 +1,59 @@ +// +// RCUploadImageStatusListener.h +// RongIMLib +// +// Created by litao on 15/8/28. +// Copyright (c) 2015 年 RongCloud. All rights reserved. +// + +#import "RCMessage.h" +#import + +NS_ASSUME_NONNULL_BEGIN +/*! + 图片上传进度更新的IMKit监听 + + 此监听用于 IMKit 发送图片消息(上传到指定服务器)。 + App 在上传图片时,需要在监听中调用 updateBlock、successBlock 与 errorBlock,通知 IMKit + SDK 当前上传图片的进度和状态,SDK 会更新 UI。 + */ +@interface RCUploadImageStatusListener : NSObject + +/*! + 上传的图片消息的消息实体 + */ +@property (nonatomic, strong, nullable) RCMessage *currentMessage; + +/*! + 更新上传进度需要调用的 block [progress:当前上传的进度,0 <= progress < 100] + */ +@property (nonatomic, copy, nullable) void (^updateBlock)(int progress); + +/*! + 上传成功需要调用的 block [imageUrl:图片的网络 URL] + */ +@property (nonatomic, copy, nullable) void (^successBlock)(NSString *imageUrl); + +/*! + 上传成功需要调用的 block [errorCode:上传失败的错误码,非 0 整数] + */ +@property (nonatomic, copy, nullable) void (^errorBlock)(RCErrorCode errorCode); + +/*! + 初始化图片上传进度更新的IMKit监听 + + - Parameter message: 图片消息的消息实体 + - Parameter progressBlock: 更新上传进度需要调用的 block + - Parameter successBlock: 上传成功需要调用的 block + - Parameter errorBlock: 上传失败需要调用的 block + + - Returns: 图片上传进度更新的 IMKit 监听对象 + */ +- (instancetype)initWithMessage:(RCMessage *)message + uploadProgress:(nullable void (^)(int progress))progressBlock + uploadSuccess:(nullable void (^)(NSString *imageUrl))successBlock + uploadError:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUploadMediaStatusListener.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUploadMediaStatusListener.h new file mode 100644 index 0000000..47bcfe8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUploadMediaStatusListener.h @@ -0,0 +1,96 @@ +// +// RCUploadMediaStatusListener.h +// RongIMLib +// +// Created by litao on 15/8/28. +// Copyright (c) 2015 年 RongCloud. All rights reserved. +// + +#import "RCMessage.h" +#import + +NS_ASSUME_NONNULL_BEGIN +/*! + 媒体文件上传进度更新的 IMKit 监听 + + 此监听用于 IMKit 发送媒体文件消息(上传到指定服务器)。 + App 在上传媒体文件时,需要在监听中调用 updateBlock、successBlock 与 errorBlock,通知 IMKit + SDK 当前上传媒体文件的进度和状态,SDK 会更新 UI。 + */ +@interface RCUploadMediaStatusListener : NSObject + +/*! + 上传的媒体文件消息的消息实体 + */ +@property (nonatomic, strong, nullable) RCMessage *currentMessage; + +/*! + 更新上传进度需要调用的 block [progress:当前上传的进度,0 <= progress < 100] + */ +@property (nonatomic, copy, nullable) void (^updateBlock)(int progress); + +/*! + 上传成功需要调用的 block。 + content:上传成功之后,需要发送的消息内容。 + 您可以使用 currentMessage,把其中content属性对应的 url 字段设置成您上传成功的网络 URL。 + 请参考下面代码。 + + 升级说明:如果您之前使用了此接口,请参考下面代码把参数从 url 替换成 message。 + + uploadPrepare:^(RCUploadMediaStatusListener *uploadListener) { + + if ([currentMessage.content isKindOfClass:[RCImageMessage class]]) { + RCImageMessage *content = (RCImageMessage *)uploadListener.currentMessage.content; + content.remoteUrl = remoteUrl; + uploadListener.successBlock(content); + } else if ([currentMessage.content isKindOfClass:[RCFileMessage class]]) { + RCFileMessage *content = (RCFileMessage *)uploadListener.currentMessage.content; + content.fileUrl = remoteUrl; + uploadListener.successBlock(content); + } else { + //不做处理的,一定回调返回原消息内容,保障发送方法继续执行 + uploadListener.successBlock(uploadListener.currentMessage.content); + } + } + + */ +@property (nonatomic, copy, nullable) void (^successBlock)(RCMessageContent *content); + +/*! + 上传失败需要调用的 block [errorCode:上传失败的错误码,非 0 整数] + */ +@property (nonatomic, copy, nullable) void (^errorBlock)(RCErrorCode errorCode); + +/*! + 上传取消需要调用的 block + */ +@property (nonatomic, copy, nullable) void (^cancelBlock)(void); + +/*! + 初始化媒体文件上传进度更新的 IMKit 监听 + + - Parameter message: 媒体文件消息的消息实体 + - Parameter progressBlock: 更新上传进度需要调用的 block + - Parameter successBlock: 上传成功需要调用的 block + - Parameter errorBlock: 上传失败需要调用的 block + - Parameter cancelBlock: 上传取消需要调用的 block( 如果未实现,传 nil 即可) + + - Returns: 媒体文件上传进度更新的 IMKit 监听对象 + */ +- (instancetype)initWithMessage:(RCMessage *)message + uploadProgress:(nullable void (^)(int progress))progressBlock + uploadSuccess:(nullable void (^)(RCMessageContent *content))successBlock + uploadError:(nullable void (^)(RCErrorCode errorCode))errorBlock + uploadCancel:(nullable void (^)(void))cancelBlock; + +/*! + 取消当前上传 + + 如果您实现取消正在上传的媒体消息功能,则必须实现此回调。 + 您需要在取消成功之后,调用 cancelBlock 通知 SDK,SDK 会自动更新 UI。 + */ +- (void)cancelUpload; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserGroupStatusDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserGroupStatusDelegate.h new file mode 100644 index 0000000..987b161 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserGroupStatusDelegate.h @@ -0,0 +1,76 @@ +// +// RCUserGroupStatusDelegate.h +// RongIMLibCore +// +// Created by RobinCui on 2023/1/3. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + + +@protocol RCUserGroupStatusDelegate +/*! + 当前用户收到超级群下的用户组中解散通知 + + - Parameter identifier: 会话标识[type:ConversationType_ULTRAGROUP ] + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userGroupDisbandFrom:(RCConversationIdentifier *)identifier userGroupIds:(NSArray *)userGroupIds; + +/*! + 当前用户被添加到超级群下的用户组 + + - Parameter identifier: 会话标识[type:ConversationType_ULTRAGROUP ] + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userAddedTo:(RCConversationIdentifier *)identifier userGroupIds:(NSArray *)userGroupIds; + +/*! + 当前用户从到超级群下的用户组中被移除 + + - Parameter identifier: 会话标识[type:ConversationType_ULTRAGROUP ] + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userRemovedFrom:(RCConversationIdentifier *)identifier userGroupIds:(NSArray *)userGroupIds; + + +/*! + 频道中绑定用户组回调 + + - Parameter identifier: 频道标识[type:ConversationType_ULTRAGROUP ] + - Parameter channelType: 频道类型 + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userGroupBindTo:(RCChannelIdentifier *)identifier + channelType:(RCUltraGroupChannelType)channelType + userGroupIds:(NSArray *)userGroupIds; + +/*! + 频道解绑用户组回调 + + - Parameter identifier: 频道标识[type:ConversationType_ULTRAGROUP ] + - Parameter channelType: 频道类型 + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userGroupUnbindFrom:(RCChannelIdentifier *)identifier + channelType:(RCUltraGroupChannelType)channelType + userGroupIds:(NSArray *)userGroupIds; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserInfo.h new file mode 100644 index 0000000..10aec9a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserInfo.h @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCUserInfo.h +// Created by Heq.Shinoda on 14-6-16. + +#import + +/// 用户类型。 +/// +/// - Since: 5.22.0 +typedef NS_ENUM(NSInteger, RCUserType) { + /// 正常用户。 + RCUserTypeNormal = 0, + /// 机器人。 + RCUserTypeRobot = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/// 用户信息类 +@interface RCUserInfo : NSObject + +/// 用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 用户类型,默认为 `RCUserTypeNormal`。 +@property (nonatomic, assign) RCUserType userType; + +/// 用户名称 +@property (nonatomic, copy) NSString *name; + +/// 用户头像的 URL +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 用户备注 +@property (nonatomic, copy, nullable) NSString *alias; + +/// 用户信息附加字段 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 用户信息的初始化方法 +/// +/// - Parameter userId: 用户 ID +/// - Parameter username: 用户名称 +/// - Parameter portrait: 用户头像的 URL +/// - Returns: 用户信息对象 +- (instancetype)initWithUserId:(NSString *)userId + name:(nullable NSString *)username + portrait:(nullable NSString *)portrait; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserOnlineStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserOnlineStatusInfo.h new file mode 100644 index 0000000..e03e798 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserOnlineStatusInfo.h @@ -0,0 +1,32 @@ +// +// RCUserOnlineStatusInfo.h +// RongIMLib +// +// Created by 杜立召 on 16/9/26. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import "RCStatusDefine.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 用户在线状态 +@interface RCUserOnlineStatusInfo : NSObject + +/// 在线的平台 +@property (nonatomic, assign) RCPlatform platform; + +/// 融云服务在线状态 +/// +/// 0 表示离线,1 表示在线 +@property (nonatomic, assign) int rcServiceStatus; + +/// 用户自定义的在线状态 (1 < customerStatus <= 255) +/// +/// 如果没有通过 RCIMClient 的 setUserOnlineStatus:success:error: 设置自定义的在线状态,默认的在线状态值为 1,若离线则为 0。 +@property (nonatomic, assign) int customerStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserProfile.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserProfile.h new file mode 100644 index 0000000..e3a1145 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserProfile.h @@ -0,0 +1,87 @@ +// +// RCUserProfile.h +// RongIMLibCore +// +// Created by Lang on 2024/4/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +/// 用户信息访问权限 +typedef NS_ENUM(NSUInteger, RCUserProfileVisibility) { + /// 未设置,以 AppKey 权限设置为准,默认是此状态。 + RCUserProfileVisibilityNotSet = 0, + /// 都不可见,任何人都不能搜索到我的用户信息,名称、头像除外 + RCUserProfileVisibilityInvisible = 1, + /// 所有人可见,应用中任何用户都可以查看到我的用户信息 + RCUserProfileVisibilityEveryone = 2, + /// 仅好友可见 + RCUserProfileVisibilityFriendVisible = 3, +}; + +/// 性别 +typedef NS_ENUM(NSInteger, RCUserGender) { + RCUserGenderUnknown = 0, // 未知性别 + RCUserGenderMale = 1, // 男性 + RCUserGenderFemale = 2, // 女性 +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCUserProfile : NSObject + +/// 用户 id +@property (nonatomic, copy) NSString *userId; + +/// 昵称 +/// +/// 长度不超过 32 个字符 +@property (nonatomic, copy) NSString *name; + +/// 头像地址 +/// +/// 长度不超过 128 个字符 +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 用户应用号 +/// +/// 客户端无法直接修改 +@property (nonatomic, copy) NSString *uniqueId; + +/// 电子邮件 +/// +/// 长度不超过 128 个字符 +@property (nonatomic, copy, nullable) NSString *email; + +/// 生日 +/// +/// 长度不超过 32 个字符 +@property (nonatomic, copy, nullable) NSString *birthday; + +/// 性别 +@property (nonatomic, assign) RCUserGender gender; + +/// 所在地 +/// +/// 长度不超过 32 个字符 +@property (nonatomic, copy, nullable) NSString *location; + +/// 角色 +/// +/// 支持 0~100 以内数字 +@property (nonatomic, assign) NSUInteger role; + +/// 级别 +/// +/// 支持 0~100 以内数字 +@property (nonatomic, assign) NSUInteger level; + +/// 自定义用户扩展信息 +/// +/// 设置时请确保字典 key 值已在开发者后台配置过。 +@property (nonatomic, copy, nullable) NSDictionary *userExtProfile; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserTypingStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserTypingStatus.h new file mode 100644 index 0000000..3e0bf8b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUserTypingStatus.h @@ -0,0 +1,38 @@ +// +// RCUserTypingStatus.h +// RongIMLib +// +// Created by 岑裕 on 16/1/8. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 用户输入状态类 +@interface RCUserTypingStatus : NSObject + +/// 当前正在输入的用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 当前正在输入的消息类型名 +/// +/// contentType 为用户当前正在编辑的消息类型名,即 RCMessageContent 中 getObjectName 的返回值。 +/// 如文本消息,应该传类型名"RC:TxtMsg"。 +@property (nonatomic, copy) NSString *contentType; + +/// 用户输入状态消息发送时间 +@property (nonatomic, assign) long long sentTime; + +/// 初始化用户输入状态对象 +/// +/// - Parameter userId: 当前正在输入的用户 ID +/// - Parameter objectName: 当前正在输入的消息类型名 +/// +/// - Returns: 用户输入状态对象 +- (instancetype)initWithUserId:(NSString *)userId contentType:(NSString *)objectName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUtilities.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUtilities.h new file mode 100644 index 0000000..bb6376f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCUtilities.h @@ -0,0 +1,282 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCUtilities.h +// Created by Heq.Shinoda on 14-5-15. + +#ifndef __RCUtilities +#define __RCUtilities + +#import "RCMessage.h" +#import +@class CTTelephonyNetworkInfo; +/// 工具类 +@interface RCUtilities : NSObject + +/// 将 base64 编码的字符串解码并转换为 NSData 数据 +/// +/// - Parameter string: base64 编码的字符串 +/// - Returns: 解码后的 NSData 数据 +/// +/// 此方法主要用于 iOS6 解码 base64。 ++ (NSData *)dataWithBase64EncodedString:(NSString *)string; + +/// 将 NSData 数据转化并编码为 base64 的字符串 +/// +/// - Parameter data: 未编码的 NSData 数据 +/// - Returns: 编码后的 base64 字符串 +/// +/// 此方法主要用于 iOS6 编码 base64。 ++ (NSString *)base64EncodedStringFrom:(NSData *)data; + +/// scaleImage +/// +/// - Parameter image: image +/// - Parameter scaleSize: scaleSize +/// +/// - Returns: scaled image ++ (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize; + +/// imageByScalingAndCropSize +/// +/// - Parameter image: image +/// - Parameter targetSize: targetSize +/// +/// - Returns: image +/// ++ (UIImage *)imageByScalingAndCropSize:(UIImage *)image targetSize:(CGSize)targetSize; + +///根据配置压缩图片 +/// +///如果设置了 `[RCCoreClient sharedCoreClient].imageCompressConfig` 就按照此设置进行压缩。如果没有设置,就按照 RCConfig.plis 文件中的配置进行压缩。 +/// +/// - Parameter image: 原图片 +/// - Returns: 压缩后的图片 ++ (UIImage *)generateThumbnailByConfig:(UIImage *)image; + +/*! + generate thumbnail from image + + - Parameter image: image + - Parameter targetSize: targetSize + + - Returns: image + */ ++ (UIImage *)generateThumbnail:(UIImage *)image targetSize:(CGSize)targetSize; + +/*! + generate thumbnail from image + + - Parameter image: image + - Parameter targetSize: targetSize + - Parameter percent: percent + + - Returns: image + */ ++ (UIImage *)generateThumbnail:(UIImage *)image targetSize:(CGSize)targetSize percent:(CGFloat)percent; +/*! + compressedImageWithMaxDataLength + + - Parameter image: image + - Parameter maxDataLength: maxDataLength + + - Returns: NSData + */ ++ (NSData *)compressedImageWithMaxDataLength:(UIImage *)image maxDataLength:(CGFloat)maxDataLength; + +/*! + compressedImageAndScalingSize + + - Parameter image: image + - Parameter targetSize: targetSize + - Parameter maxDataLen: maxDataLen + + - Returns: image NSData + */ ++ (NSData *)compressedImageAndScalingSize:(UIImage *)image targetSize:(CGSize)targetSize maxDataLen:(CGFloat)maxDataLen; + +/*! + compressedImageAndScalingSize + + - Parameter image: image + - Parameter targetSize: targetSize + - Parameter percent: percent + + - Returns: image NSData + */ ++ (NSData *)compressedImageAndScalingSize:(UIImage *)image targetSize:(CGSize)targetSize percent:(CGFloat)percent; + +/// compressedImage +/// +/// - Parameter image: image +/// - Parameter percent: percent +/// +/// - Returns: image NSData ++ (NSData *)compressedImage:(UIImage *)image percent:(CGFloat)percent; + +/// 获取文字显示的尺寸 +/// +/// - Parameter text: 文字 +/// - Parameter font: 字体 +/// - Parameter constrainedSize: 文字显示的容器大小 +/// +/// - Returns: 文字显示的尺寸 +/// +/// 该方法在计算 iOS 7 以下系统显示的时候默认使用 NSLineBreakByTruncatingTail 模式。 ++ (CGSize)getTextDrawingSize:(NSString *)text font:(UIFont *)font constrainedSize:(CGSize)constrainedSize; + +/// 判断是否是本地路径 +/// +/// - Parameter path: 路径 +/// +/// - Returns: 是否是本地路径 +/// ++ (BOOL)isLocalPath:(NSString *)path; + +/// 判断是否是网络地址 +/// +/// - Parameter url: 地址 +/// +/// - Returns: 是否是网络地址 ++ (BOOL)isRemoteUrl:(NSString *)url; + +/// 获取沙盒修正后的文件路径 +/// +/// - Parameter localPath: 本地路径 +/// +/// - Returns: 修正后的文件路径 ++ (NSString *)getCorrectedFilePath:(NSString *)localPath; + +/// 获取文件存储路径 ++ (NSString *)getFileStoragePath; + +/// excludeBackupKeyForURL +/// +/// - Parameter storageURL: storageURL +/// +/// - Returns: BOOL ++ (BOOL)excludeBackupKeyForURL:(NSURL *)storageURL; + +/// 获取 App 的文件存放路径 +/// +/// - Returns: App 的文件存放路径 ++ (NSString *)applicationDocumentsDirectory; + +/*! + 获取融云 SDK 的文件存放路径 + + - Returns: 融云 SDK 的文件存放路径 + */ ++ (NSString *)rongDocumentsDirectory; + +/// 获取融云 SDK 的缓存路径 +/// +/// - Returns: 融云 SDK 的缓存路径 ++ (NSString *)rongImageCacheDirectory; + +/// 获取当前系统时间 +/// +/// - Returns: 当前系统时间 ++ (NSString *)currentSystemTime; + +/// 获取当前运营商名称 +/// +/// - Returns: 当前运营商名称 ++ (NSString *)currentCarrier; + ++ (CTTelephonyNetworkInfo *)telephonyNetworkInfo; + +///获取当前网络类型 +/// +/// - Returns: 当前网络类型 ++ (NSString *)currentNetWork; + +/// 获取当前网络类型 +/// +/// - Returns: 当前网络类型 ++ (NSString *)currentNetworkType; + +/// 获取系统版本 +/// +/// - Returns: 系统版本 ++ (NSString *)currentSystemVersion; + +/// 获取设备型号 +/// +/// - Returns: 设备型号 ++ (NSString *)currentDeviceModel; + +/// 获取非换行的字符串 +/// +/// - Parameter originalString: 原始的字符串 +/// +/// - Returns: 非换行的字符串 +/// +/// 所有换行符将被替换成单个空格 ++ (NSString *)getNowrapString:(NSString *)originalString; + + +/// 判断一张照片是否是含透明像素的照片 +/// +/// - Parameter image: 原始照片 +/// - Returns: 是否包含透明像素,YES 包含,NO 不包含 ++ (BOOL)isOpaque:(UIImage *)image; + +/// URL 编码 +/// +/// - Returns: 编码后的 URL ++ (NSString *)encodeURL:(NSString *)url; + ++ (NSData *)compressImage:(UIImage *)sourceImage; + +/// 检查字符串是否符合聊天室属性名称的格式 +/// +/// - Parameter key: 聊天室属性名称 +/// - Returns: 是否符合聊天室属性名称的格式,YES 符合,NO 不符合 +/// +/// Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 ++ (BOOL)checkChatroomKey:(NSString *)key; + +///生成 22 位的 UUID +/// +///- Returns: 22 位的 UUID ++ (NSString *)get22bBitUUID; + +///生成 UUID +/// +///- Returns: UUID ++ (NSString *)getUUID; + +///生成 DeviceId +/// +///- Returns: DeviceId 连接改造使用的 ++ (NSString *)getDeviceId:(NSString *)appKey; + +/// 根据字符串生成 md5 +/// - Parameter bateNum: MD5 位数 +/// - Parameter isLowercaseStr: 是否生成小写字符串 +/// - Returns: MD5 ++ (NSString *)md5EncryptStr:(NSString *)str bateNum:(NSInteger)bateNum isLowercaseStr:(BOOL)isLowercaseStr; + +///获取手机型号 +/// +///- Returns: 手机型号 ++ (NSString *)iphoneType; + ++ (void)setModuleName:(NSString *)moduleName version:(NSString *)version; + ++ (NSDictionary *)getModuleVersionInfo; + +/// 将字典或者数组转换成字符串,能去打印的换行 '\n' 以及空格 +/// - Parameter objc: 必须是字典或者是数组 ++ (NSString *)jsonFromObject:(id)objc; + +@end + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCVoiceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCVoiceMessage.h new file mode 100644 index 0000000..a4b7297 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCVoiceMessage.h @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCVoiceMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +/// 语音消息的类型名 +#define RCVoiceMessageTypeIdentifier @"RC:VcMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 语音消息类 +/// +/// 语音消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCVoiceMessage : RCMessageContent + +/// wav 格式的音频数据 +@property (nonatomic, strong) NSData *wavAudioData; + +/// 语音消息的时长,以秒为单位 +@property (nonatomic, assign) long duration; + +/// 初始化语音消息 +/// +/// - Parameter audioData: wav 格式的音频数据 +/// - Parameter duration: 语音消息的时长,以秒为单位 +/// - Returns: 语音消息对象 +/// +/// 如果您不是使用 IMKit 中的录音功能,则在初始化语音消息的时候,需要确保以下几点。 +/// 1. audioData 必须是单声道的 wav 格式音频数据; +/// 2. audioData 的采样率必须是 8000Hz,采样位数(精度)必须为 16 位。 +/// +/// 您可以参考 IMKit 中的录音参数: +/// ```objc +/// NSDictionary *settings = @{AVFormatIDKey: @(kAudioFormatLinearPCM), +/// AVSampleRateKey: @8000.00f, +/// AVNumberOfChannelsKey: @1, +/// AVLinearPCMBitDepthKey: @16, +/// AVLinearPCMIsNonInterleaved: @NO, +/// AVLinearPCMIsFloatKey: @NO, +/// AVLinearPCMIsBigEndianKey: @NO}; +/// ``` +/// ++ (instancetype)messageWithAudio:(NSData *)audioData duration:(long)duration; + +@end + +@class RCSpeechToTextInfo; + +@interface RCVoiceMessage (STT) + +/// 语音转文本内容。 +/// +/// - Since: 5.22.0 +@property (nonatomic, readonly, strong, nullable) RCSpeechToTextInfo *sttInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCiOSConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCiOSConfig.h new file mode 100644 index 0000000..56cd767 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RCiOSConfig.h @@ -0,0 +1,56 @@ +// +// RCiOSConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/9/17. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// iOS 推送级别常量 +/// "passive" 被动通知:即并不需要及时关注的通知,类似餐馆推荐通知 +/// "active" 主动通知(默认的):默认的通知,即人们可能想知道的,类似最喜欢的体育比赛的最新比分 +/// "time-sensitive" 时效性通知:需要人们立刻注意的通知,类似账户安全问题或快递动态 +/// "critical" 重要通知:关于个人健康或直接影响到设备拥有者的公共安全事件且需要立刻关注的,这类通知很少,一般是来自公共政府机构或健康 App +static NSString *const kInterruptionLevel_passive = @"passive"; +static NSString *const kInterruptionLevel_active = @"active"; +static NSString *const kInterruptionLevel_time_sensitive = @"time-sensitive"; +static NSString *const kInterruptionLevel_critical = @"critical"; + +@interface RCiOSConfig : NSObject + +/// iOS 平台通知栏分组 ID +/// +/// 相同的 thread-id 推送分为一组 +/// +/// iOS10 开始支持 +@property (nonatomic, copy, nullable) NSString *threadId; + +/// iOS 标识推送的类型 +/// +/// 如果不设置后台默认取消息类型字符串,如 RC:TxtMsg +@property (nonatomic, copy, nullable) NSString *category; + +/// iOS 平台通知覆盖 ID +/// +/// apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节 +/// +/// iOS10 开始支持 +@property (nonatomic, copy, nullable) NSString *apnsCollapseId; + +/// iOS 富文本推送内容 +@property (nonatomic, copy, nullable) NSString *richMediaUri; + +/// iOS 推送级别。默认值 "active" +/// "passive" 被动通知:即并不需要及时关注的通知,类似餐馆推荐通知 +/// "active" 主动通知(默认的):默认的通知,即人们可能想知道的,类似最喜欢的体育比赛的最新比分 +/// "time-sensitive" 时效性通知:需要人们立刻注意的通知,类似账户安全问题或快递动态 +/// "critical" 重要通知:关于个人健康或直接影响到设备拥有者的公共安全事件且需要立刻关注的,这类通知很少,一般是来自公共政府机构或健康 App。 +@property (nonatomic, copy) NSString *interruptionLevel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RongIMLibCore.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RongIMLibCore.h new file mode 100644 index 0000000..8cab383 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Headers/RongIMLibCore.h @@ -0,0 +1,170 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RongIMLibCore.h +// Created by xugang on 14/12/11. + +#import + +//! Project version number for RongIMLibCore. +FOUNDATION_EXPORT double RongIMLibCoreVersionNumber; + +//! Project version string for RongIMLibCore. +FOUNDATION_EXPORT const unsigned char RongIMLibCoreVersionString[]; + +/// IMLib 核心类 +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// 会话相关类 +#import +#import +#import +/// 消息相关类 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import + +/// 工具类 +#import +#import +#import +//#import +//#import + +/// 其他 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import + +// 已读回执 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +// log +#import + +// Download +#import +#import + +// Socks proxy +#import + +// Subscribe Event +#import +#import +#import +#import + +// User Manager +#import + +// Group +#import +#import +#import +#import + +// Friend +#import +#import + +// Stream Message +#import +#import + +// Search Message +#import + +// Speech To Text +#import +#import + +// Translation +#import +#import +#import diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Info.plist new file mode 100644 index 0000000..df13f7d Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Modules/module.modulemap b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Modules/module.modulemap new file mode 100644 index 0000000..ee665e7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongIMLibCore { + umbrella header "RongIMLibCore.h" + + export * + module * { export * } +} diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/PrivacyInfo.xcprivacy b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..89cd543 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/PrivacyInfo.xcprivacy @@ -0,0 +1,40 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyTrackingDomains + + NSPrivacyTracking + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/RongIMLibCore b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/RongIMLibCore new file mode 100755 index 0000000..ce56cb3 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_armv7/RongIMLibCore.framework/RongIMLibCore differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAMRDataConverter.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAMRDataConverter.h new file mode 100644 index 0000000..6b40a16 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAMRDataConverter.h @@ -0,0 +1,62 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCAMRDataConverter.h +// Created by Heq.Shinoda on 14-6-17. + +#ifndef __RCAMRDataConverter +#define __RCAMRDataConverter + +#import +#include +#include +#include + +NS_ASSUME_NONNULL_BEGIN +/*! + AMR 格式与 WAV 格式音频转换工具类 + */ +@interface RCAMRDataConverter : NSObject + +/*! + 获取 AMR 格式与 WAV 格式音频转换工具类单例 + + - Returns: AMR 格式与 WAV 格式音频转换工具类单例 + */ ++ (RCAMRDataConverter *)sharedAMRDataConverter; + +/*! + 将 AMR 格式的音频数据转化为 WAV 格式的音频数据 + + - Parameter data: AMR 格式的音频数据,可以是 AMR-NB 或者 AMR-WB 格式 + - Returns: WAV 格式的音频数据 + */ +- (nullable NSData *)decodeAMRToWAVE:(NSData *)data; + +/*! + 将 AMR 格式的音频数据转化为 WAV 格式的音频数据 + + - Parameter data: AMR格式的音频数据,必须是 AMR-NB 的格式 + - Returns: WAV格式的音频数据 + */ +- (nullable NSData *)decodeAMRToWAVEWithoutHeader:(NSData *)data; + +/*! + 将 WAV 格式的音频数据转化为 AMR 格式的音频数据(8KHz/16KHz 采样) + + - Parameter data: WAV 格式的音频数据 + - Returns: AMR-NB/AMR-WB 格式的音频数据 + 如果采样率为 8KHz 则返回 AMR-NB 格式数据,如果采样率为 16KHz 则返回 AMR-WB 格式数据。 + */ +- (nullable NSData *)encodeWAVEToAMR:(NSData *)data; + +@end + +SEC_ASSUME_NONNULL_END +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAndroidConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAndroidConfig.h new file mode 100644 index 0000000..44eab07 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAndroidConfig.h @@ -0,0 +1,131 @@ +// +// RCAndroidConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/9/17. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 华为推送消息级别 +typedef NSString *RCImportanceHw NS_STRING_ENUM; + +/// 华为推送消息级别 NORMAL +FOUNDATION_EXPORT RCImportanceHw const RCImportanceHwNormal; + +/// 华为推送消息级别 LOW +FOUNDATION_EXPORT RCImportanceHw const RCImportanceHwLow; + +/// 荣耀推送消息级别 +typedef NSString *RCImportanceHonor NS_STRING_ENUM; + +/// 荣耀推送消息级别 NORMAL +FOUNDATION_EXPORT RCImportanceHonor const RCImportanceHonorNormal; + +/// 荣耀推送消息级别 LOW +FOUNDATION_EXPORT RCImportanceHonor const RCImportanceHonorLow; + + +@interface RCAndroidConfig : NSObject + +/// Android 平台 Push 唯一标识 +/// +/// 目前支持小米、华为推送平台,默认开发者不需要进行设置,当消息产生推送时,消息的 messageUId 作为 notificationId 使用。 +@property (nonatomic, copy) NSString *notificationId; + +#pragma mark - 小米 + +/// 小米的渠道 ID +/// +/// 该条消息针对小米使用的推送渠道,如开发者集成了小米推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 +@property (nonatomic, copy, nullable) NSString *channelIdMi; + +/// 小米 Large icon 链接 +/// +/// Large icon 可以出现在大图版和多字版消息中,显示在右边。国内版仅 MIUI12 以上版本支持,以下版本均不支持;国际版支持。图片要求:大小 120 * 120px,格式为 png 或者 jpg 格式。 +@property (nonatomic, copy, nullable) + NSString *miLargeIconUrl __deprecated_msg("由于小米官方已停止支持该能力,该字段/方法已失效"); +#pragma mark - 华为 + +/// 华为的渠道 ID +/// +/// 该条消息针对华为使用的推送渠道,如开发者集成了华为推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 +@property (nonatomic, copy, nullable) NSString *channelIdHW; + +////// 华为推送消息级别 +@property (nonatomic, copy, nullable) RCImportanceHw importanceHW; + +/// 华为通知栏消息右侧大图标 URL +/// +/// 如果不设置,则不展示通知栏右侧图标,URL 使用的协议必须是 HTTPS 协议。 +/// 图标文件须小于 512KB,图标建议规格大小:40dp x 40dp,弧角大小为 8dp,超出建议规格大小的图标会存在图片压缩或显示不全的情况。 +@property (nonatomic, copy, nullable) NSString *hwImageUrl; + +/// 华为推送消息分类: +/// - 社交通讯:即时通讯 [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 +/// +/// 默认值为 null,如果为 null,则以服务配置为准 +/// +/// - Since: 5.4.0 +@property (nonatomic, copy, nullable) NSString *categoryHW; + +#pragma mark - Honor + +/// 荣耀推送消息级别 +@property (nonatomic, copy, nullable) RCImportanceHonor importanceHonor; + +/// 荣耀通知栏消息右侧大图标 URL +@property (nonatomic, copy, nullable) NSString *imageUrlHonor; + +#pragma mark - OPPO + +/// OPPO 的渠道 ID +/// +/// 该条消息针对 OPPO 使用的推送渠道,如开发者集成了 OPPO 推送,需要指定 channelId 时,可向 Android 端研发人员获取,channelId 由开发者自行创建。 +@property (nonatomic, copy, nullable) NSString *channelIdOPPO; + + +#pragma mark - VIVO + +/// VIVO 推送通道类型 +/// 开发者集成了 VIVO 推送,需要指定推送类型时,可进行设置。 +/// 目前可选值 "0"(运营消息) 和 "1"(系统消息) +@property (nonatomic, copy, nullable) NSString *typeVivo; + +/// Vivo 推送消息分类 +/// +/// 系统消息分类 +/// 即时消息 [IM],账号与资产 [ACCOUNT],日程待办 [TODO],设备信息 [DEVICE_REMINDER],订单与物流 [ORDER],订阅提醒 [SUBSCRIPTION] +/// 运营消息分类 +/// 新闻 [NEWS],内容推荐 [CONTENT],运营活动 [MARKETING],社交动态 [SOCIAL] +/// 更多信息请参考 Vivo 消息分类标准文档:https://dev.vivo.com.cn/documentCenter/doc/359 +/// +/// 默认值为 null,如果为 null,则以服务配置为准 +/// +/// - Since: 5.4.2 +@property (nonatomic, copy, nullable) NSString *categoryVivo; + +#pragma mark - FCM + +/// FCM 通知的频道 ID +/// +/// 该应用程序必须使用此频道 ID 创建一个频道,然后才能收到带有该频道 ID 的任何通知。如果您未在请求中发送此频道 ID,或者如果应用尚未创建提供的频道 ID,则 FCM 使用应用清单中指定的频道 ID。 +@property (nonatomic, copy, nullable) NSString *fcmChannelId; + +/// FCM 通知类型推送时所使用的分组 id +@property (nonatomic, copy, nullable) NSString *fcmCollapseKey; + +/// FCM 通知类型的推送所使用的通知图片 url +@property (nonatomic, copy, nullable) NSString *fcmImageUrl; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAppSettings.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAppSettings.h new file mode 100644 index 0000000..18f8b0a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCAppSettings.h @@ -0,0 +1,34 @@ +// +// RCAppSettings.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/9. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 当前 AppKey 对应的配置。 +/// +/// - Since: 5.22.0 +@interface RCAppSettings : NSObject + +/// 语音转文字功能是否开启。 +@property (nonatomic, readonly, assign) BOOL isSpeechToTextEnable; + +/// 消息可编辑的有效时间,单位:分钟。 +/// +/// - Since: 5.26.0 +@property (nonatomic, readonly, assign) NSInteger messageModifiableMinutes; + +/// 已读回执版本 +/// +/// - Since: 5.30.0 +@property (nonatomic, readonly, assign) RCMessageReadReceiptVersion readReceiptVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCBlockedMessageInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCBlockedMessageInfo.h new file mode 100644 index 0000000..2222ef6 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCBlockedMessageInfo.h @@ -0,0 +1,63 @@ +// +// RCBlockedMessageInfo.h +// RongIMLibCore +// +// Created by 孙浩 on 2021/7/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCBlockedMessageInfo : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType type; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 频道 ID +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 被拦截的消息 UID +@property (nonatomic, copy) NSString *blockedMsgUId; + +/// 拦截原因 +/// 1. 全局敏感词:命中了融云内置的全局敏感词 +/// 2. 自定义敏感词拦截:命中了客户在融云自定义的敏感词 +/// 3. 第三方审核拦截:命中了第三方(数美)或消息回调服务决定不下发的状态 +@property (nonatomic, assign) RCMessageBlockType blockType; + +/// 附加信息 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 消息的发送时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long sentTime; + +/// 消息源触发类型。0 默认,原始消息;1 消息扩展;2 消息修改 +@property (nonatomic, assign) NSInteger sourceType; + +/// 源内容 Json 字符串。sourceType 为 1、2 时返回;1 扩展内容,2 消息内容 +/// +/// - sourceType 为 0,sourceContent 内容为 nil +/// - sourceType 为 1,sourceContent 是扩展内容,示例 {"mid":"xxx-xxx-xxx-xxx","put":{"key":"敏感词"}} +/// - sourceType 为 2,sourceContent 是消息修改后内容,示例 {"content":"敏感词"} +@property (nonatomic, copy) NSString *sourceContent; + +/// RCBlockedMessageInfo 初始化方法 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter blockedMsgUId: 被拦截的消息 ID +/// - Parameter blockType: 会话 id +- (instancetype)initWithConversationType:(RCConversationType)type + targetId:(NSString *)targetId + blockedMsgUId:(NSString *)blockedMsgUId + blockType:(RCMessageBlockType)blockType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelClient+Deprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelClient+Deprecated.h new file mode 100644 index 0000000..02421ca --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelClient+Deprecated.h @@ -0,0 +1,1286 @@ +// +// RCChannelClient+Deprecated.h +// RongIMLibCore +// +// Created by shuai shao on 2023/1/29. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.4.1 +/// - Warning: 本文件的方法已经过期,请您根据提示使用替代方法。 +@interface RCChannelClient (Deprecated) + +#pragma mark - 消息发送 - +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 + +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCChannelClient " + "sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] instead"); +; + +/// 发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId:消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCChannelClient " + "sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] instead"); + +/// 发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCChannelClient " + "sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] instead"); + +/// 发送媒体消息(图片、文件、视频等消息) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg("Use [RCChannelClient " + "sendMediaMessage:targetId:channelId:content:pushContent:pushData:attached:progress:success:error:" + "cancel:] instead"); + +/// 发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// - Returns: 发送的消息实体 +/// +/// @discussion +/// 如果您使用 IMLibCore 上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + uploadPrepare: + (nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg("Use [RCChannelClient " + "sendMediaMessage:targetId:channelId:content:pushContent:pushData:attached:uploadPrepare:progress:" + "success:error:cancel:] instead"); + + +/// 插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Returns: 插入的消息实体 +/// +/// 此方法不支持聊天室的会话类型。如果 sentTime<=0,则被忽略,会以插入时的时间为准。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg("Use [RCChannelClient " + "insertOutgoingMessage:targetId:channelId:canIncludeExpansion:sentStatus:content:sentTime:" + "completion:] instead"); + +/// 异步插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [发送的消息实体] +/// +/// 此方法不支持聊天室的会话类型。如果 sentTime<=0,则被忽略,会以插入时的时间为准。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg("Use [RCChannelClient " + "insertOutgoingMessage:targetId:channelId:canIncludeExpansion:sentStatus:content:sentTime:" + "completion:] instead"); + +/// 插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Returns: 插入的消息实体 +/// +/// 此方法不支持聊天室的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg("Use [RCChannelClient " + "insertIncomingMessage:targetId:channelId:senderUserId:receivedStatusInfo:content:sentTime:" + "completion:] instead"); + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位:毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [插入的消息实体] +/// +/// 此方法不支持聊天室的会话类型。如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg("Use [RCChannelClient " + "insertIncomingMessage:targetId:channelId:senderUserId:receivedStatusInfo:content:sentTime:" + "completion:] instead"); + +/// 发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码,messageId:消息的 ID] +/// +/// - Returns: 发送的消息实体 +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdLis t 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg("Use [RCChannelClient " + "sendDirectionalMessage:targetId:channelId:toUserIdList:content:pushContent:pushData:option:" + "attached:success:error:] instead"); + +/// 发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// - Returns: 发送的消息实体 +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (nullable RCMessage *)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg("Use [RCChannelClient " + "sendDirectionalMessage:targetId:channelId:toUserIdList:content:pushContent:pushData:option:" + "attached:success:error:] instead"); + +/// 异步发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdLis t 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg("Use [RCChannelClient " + "sendDirectionalMessage:targetId:channelId:toUserIdList:content:pushContent:pushData:option:" + "attached:success:error:] instead"); + +#pragma mark - 消息操作 - + +/// 获取某个会话中指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + __deprecated_msg("Use [RCChannelClient getLatestMessages:targetId:channelId:count:completion:] instead"); + +/// 获取会话中,从指定消息之前、指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 oldestMessageId 对应那条消息。 +/// 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg( + "Use [RCChannelClient getHistoryMessages:targetId:channelId:oldestMessageId:count:completion:] instead"); + +/// 获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 oldestMessageId 对应的那条消息。 +/// 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg("Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:objectName:oldestMessageId:count:completion:] instead"); + +/// 获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter baseMessageId: 当前的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 baseMessageId 对应的那条消息。 +/// +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg( + "Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:objectName:baseMessageId:isForward:count:completion:] instead"); + +/// 获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNames: 消息内容的类型名称列表 +/// - Parameter sentTime: 当前的消息时间戳 +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 返回的消息中不包含 sentTime 对应的那条消息。 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg("Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:objectName:sentTime:isForward:count:completion:] instead"); + +/// 在会话中搜索指定消息的前 beforeCount 数量和后 afterCount 数量的消息。返回的消息列表中会包含指定的消息(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentTime: 消息的发送时间 +/// - Parameter beforeCount: 指定消息的前部分消息数量 +/// - Parameter afterCount: 指定消息的后部分消息数量 +/// - Returns: 消息实体 RCMessage 对象列表 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + __deprecated_msg("Use [RCChannelClient " + "getHistoryMessages:targetId:channelId:sentTime:beforeCount:afterCount:completion:] instead"); +; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter recordTime: 截止的消息发送时间戳,毫秒 +/// - Parameter count: 需要获取的消息数量,1 < count <= 100 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// @discussion +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// 本地数据库可以查到的消息,该接口不会再返回,所以建议先用 getHistoryMessages +/// 相关接口取本地历史消息,本地消息取完之后再通过该接口获取远端历史消息 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + recordTime:(long long)recordTime + count:(int)count + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient getRemoteHistoryMessages:targetId:channelId:option:success:error:] instead"); + +/// 获取历史消息(仅支持单群聊) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。当本地没有更多消息的时候,会从服务器拉取 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, RCErrorCode code))complete; + +/// 获取会话中 @ 提醒自己的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// +/// 最多返回 10 条@提醒的消息 +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadMentionedMessages:targetId:channelId:completion:] instead"); + +/// 获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 未读的 @ 消息,取值范围 [1,100] +/// - Parameter desc: 是否是降序查 +/// 假如有 1000 条未读的 @ 消息,取 100 条未读 +/// desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 +/// desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 +/// +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// 5.1.9 stable 单独添加该接口 +/// - Since: 5.2.5 + +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + desc:(BOOL)desc + __deprecated_msg( + "Use [RCChannelClient getUnreadMentionedMessages:targetId:channelId:count:desc:completion:] instead"); + +/// 根据会话 id 获取所有子频道的 @ 未读消息总数 +/// +/// - Parameter targetId: 会话 ID +/// - Returns: 该会话内的未读消息数 +/// +/// - Remark: 超级群消息操作 +/// - Since: 5.2.0 +- (int)getUltraGroupUnreadMentionedCount:(NSString *)targetId + __deprecated_msg("Use [RCChannelClient getUltraGroupUnreadMentionedCount:completion:] instead"); + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID,该消息已经变更为新的消息 `RCRecallNotificationMessage`] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)recallUltraGroupMessage:(RCMessage *)message + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取会话里第一条未读消息。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 第一条未读消息的实体。 +/// +/// 前提:超级群会话不接收离线消息。 +/// 用户在线接收的超级群未读消息已经保存到本地数据库,可以通过此接口获取到 +/// 用户离线的超级群未读消息,用户在线之后不收离线未读消息,通过此接口获取第一条未读消息为空 +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable RCMessage *)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getFirstUnreadMessage:targetId:channelId:completion:] instead"); + +/// 删除本地所有 channel 特定时间之前的消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Returns: 是否删除成功 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (BOOL)deleteUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp + __deprecated_msg("Use [RCChannelClient deleteUltraGroupMessagesForAllChannel:timestamp:completion:] instead"); + +/// 删除本地特定 channel 特点时间之前的消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Returns: 是否删除成功 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (BOOL)deleteUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + __deprecated_msg("Use [RCChannelClient deleteUltraGroupMessages:channelId:timestamp:completion:] instead"); + +/// 删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否删除成功 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (BOOL)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearMessages:targetId:channelId:completion:] instead"); + +#pragma mark - 会话列表操作 - + +/// 获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 会话 RCConversation 的列表 +/// +/// 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: +/// 分页拉取会话列表,否则有可能造成内存过大。 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getConversationList:channelId:completion:] instead"); + +/// 分页获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取) +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCChannelClient getConversationList:channelId:count:startTime:completion:] instead"); + +/// 获取本地特定会话下所有频道的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.2.0 +- (nullable NSArray *)getConversationListForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCChannelClient getConversationListForAllChannel:targetId:completion:] instead"); + +/// 分页获取本地特定会话类型下所有 channel 的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// - Parameter conversationTypeList: 会话类型数组 +/// - Parameter count: 会话个数 +/// - Parameter startTime: 开始时间,首次可传入 0 +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Since: 5.2.3 +- (nullable NSArray *)getConversationListForAllChannel:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCChannelClient getConversationListForAllChannel:count:startTime:completion:] instead"); + +/// 获取本地所有含 ChannelId 会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Returns: 会话 RCConversation 的列表 +/// +/// - Warning: 当会话数量多的时候,会有性能问题,所以建议在非主线程调用该接口 +/// - Remark: 会话列表 +/// - Since: 5.2.3 +- (nullable NSArray *)getConversationListForAllChannel:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCChannelClient getConversationListForAllChannel:completion:] instead"); + +/// 获取本地单个会话数据 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 会话的对象 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (nullable RCConversation *)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getConversation:targetId:channelId:completion:] instead"); + +/// 获取会话中的消息数量 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getMessageCount:targetId:channelId:completion:] instead"); + +/// 删除本地指定类型的会话 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否删除成功 +/// +/// 此方法会从本地存储中删除该会话,同时删除会话中的消息。 +/// 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearConversations:channelId:completion:] instead"); + +/// 删除本地和服务的会话 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 本地会话是否删除成功 +/// +/// 此方法会同时删除本地和服务的会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// - Warning: 如果服务的会话删除失败,本地的会话依然会被删除。SDK 在未连接的情况下,删除服务会话会失败 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient removeConversation:targetId:channelId:completion:] instead"); + +/// 设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isTop: 是否置顶 +/// - Returns: 设置是否成功 +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isTop:(BOOL)isTop + __deprecated_msg("Use [RCChannelClient setConversationToTop:targetId:channelId:isTop:completion:] instead"); + +/// 获取本地会话的置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter channelId: 所属会话的业务标识 +/// +/// - Remark: 会话 +/// - Since: 5.1.5 +- (BOOL)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getConversationTopStatus:channelId:completion:] instead"); + +/// 获取本地置顶的会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Returns: 置顶的会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getTopConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getTopConversationList:channelId:completion:] instead"); + +#pragma mark - 会话中的草稿操作 - + +/// 获取会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该会话中的草稿 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (nullable NSString *)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getTextMessageDraft:targetId:channelId:completion:] instead"); + +/// 保存草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 草稿信息 +/// - Returns: 是否保存成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(NSString *)content + __deprecated_msg("Use [RCChannelClient saveTextMessageDraft:targetId:channelId:content:completion:] instead"); + +/// 删除会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否删除成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearTextMessageDraft:targetId:channelId:completion:] instead"); + +#pragma mark - 未读消息数 - + +/// 获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// +/// - Returns: 所有的未读消息数(含免打扰会话未读数) +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getTotalUnreadCountWithChannelId:completion:] instead"); + +/// 获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰会话的未读数,YES 包含免打扰会话未读数 +/// +/// - Returns: 所有的未读消息数 +/// +/// - Remark: 会话 +/// - Since: 5.2.3 +- (int)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + containBlocked:(BOOL)isContain + __deprecated_msg("Use [RCChannelClient getTotalUnreadCountWithChannelId:containBlocked:completion:] instead"); + +/// 获取某个会话内的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该会话内的未读消息数 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadCount:targetId:channelId:completion:] instead"); + +/// 获取某个会话内的未读消息数 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter messageClassList: 消息类型数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该会话内的未读消息数 +/// +/// 此方法不支持聊天室和超级群的会话类型。 +/// +/// - Remark: 会话 +/// - Since: 5.1.5 +- (int)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadCount:messageClassList:channelId:completion:] instead"); + + +/// 获取某些类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰消息的未读数 +/// - Returns: 该类型的会话中所有的未读消息数 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getUnreadCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + containBlocked:(bool)isContain + __deprecated_msg("Use [RCChannelClient getUnreadCount:channelId:containBlocked:completion:] instead"); + +/// 获取某个类型的会话中所有未读的被 @ 的消息数 +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 该类型的会话中所有未读的被 @ 的消息数 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (int)getUnreadMentionedCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getUnreadMentionedCount:channelId:completion:] instead"); + +/// 清除某个会话中的未读消息数 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 是否清除成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient clearMessagesUnreadStatus:targetId:channelId:completion:] instead"); + +/// 清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳 +/// - Returns: 是否清除成功 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + __deprecated_msg("Use [RCChannelClient clearMessagesUnreadStatus:targetId:channelId:time:completion:] instead"); + +#pragma mark - 会话的消息提醒 - + +/// 设置会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isBlocked: 是否屏蔽消息提醒 +/// - Parameter successBlock: 设置成功的回调 [nStatus:会话设置的消息提醒状态] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如果您使用 IMLibCore,此方法会屏蔽该会话的远程推送; +/// 如果您使用 IMKit,此方法会屏蔽该会话的所有提醒(远程推送、本地通知、前台提示音),该接口不支持聊天室。 +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (void)setConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isBlocked:(BOOL)isBlocked + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient " + "setConversationChannelNotificationLevel:targetId:channelId:level:success:error:] instead"); + +/// 获取本地消息免打扰会话列表 +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Returns: 消息免打扰会话 RCConversation 的列表 +/// +/// - Remark: 会话列表 +/// - Since: 5.1.1 +- (nullable NSArray *)getBlockedConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + __deprecated_msg("Use [RCChannelClient getBlockedConversationList:channelId:completion:] instead"); + +#pragma mark - 搜索 - + +/// 根据关键字搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter keyword: 关键字 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// +/// - Returns: 匹配的消息列表 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + __deprecated_msg( + "Use [RCChannelClient searchMessages:targetId:channelId:keyword:count:startTime:completion:] instead"); + +/// 根据时间,偏移量和个数搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 +/// - Parameter startTime: 查询 startTime 之后的消息,startTime >= 0,单位:毫秒 +/// - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime,单位:毫秒 +/// - Parameter offset: 查询的消息的偏移量,offset >= 0 +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(nullable NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + __deprecated_msg("Use [RCChannelClient " + "searchMessages:targetId:channelId:keyword:startTime:endTime:offset:limit:completion:] instead"); + +/// 按用户 ID 搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userId: 搜索用户 ID +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + __deprecated_msg( + "Use [RCChannelClient searchMessages:targetId:channelId:userId:count:startTime:completion:] instead"); + +/// 搜索指定会话中所有 channelId 的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + __deprecated_msg( + "Use [RCChannelClient searchMessagesForAllChannel:targetId:keyword:count:startTime:completion:] instead"); + +/// 分页搜索指定会话中所有 channelId 在指定时间范围内的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter startTime: 开始时间,单位:毫秒(传 0 表示不限时间) +/// - Parameter endTime: 结束时间,可传入当前 unix 时间,单位:毫秒 +/// - Parameter offset: 偏移量,默认填 0 +/// - Parameter limit: 最大的查询数量 +/// +/// - Returns: 匹配的消息列表 +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + __deprecated_msg( + "Use [RCChannelClient searchMessagesForAllChannel:targetId:keyword:startTime:endTime:offset:limit:completion:] " + "instead"); + +/// 根据关键字搜索会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值) +/// - Parameter keyword: 关键字 +/// +/// - Returns: 匹配的会话搜索结果列表 +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *)searchConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + __deprecated_msg("Use [RCChannelClient searchConversations:targetId:messageType:keyword:completion:] instead"); + +/// 根据关键字搜索特定会话类型下所有 channelId 的会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值),不能为 nil +/// - Parameter keyword: 关键字,非空 +/// +/// - Returns: 匹配的会话搜索结果列表 +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// conversationTypeList 中类型个数不能超过 300,超过会被截断。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.2.3 +- (nullable NSArray *) + searchConversationsForAllChannel:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + __deprecated_msg("Use [RCChannelClient searchConversationsForAllChannel:messageType:keyword:completion:] instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelClient.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelClient.h new file mode 100644 index 0000000..7eef543 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelClient.h @@ -0,0 +1,2134 @@ +// +// RCChannelClient.h +// RongIMLibCore +// +// Created by 张改红 on 2021/1/29. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationUnreadInfo, RCClearMessageOption; +@class RCNotificationQuietHoursSetting; + +/// 融云 ConversationChannel 核心类 +/// +/// 您需要通过 sharedChannelManager 方法,获取单例对象。 +@interface RCChannelClient : NSObject + +/// 获取核心类单例 +/// +/// - Returns: 核心单例类 +/// - Since: 5.1.1 ++ (instancetype)sharedChannelManager; + +#pragma mark 代理 + +/// 设置消息已读回执监听器 +/// +/// - Parameter delegate: RCChannelClient 消息已读回执监听器 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.1 +- (void)setChannelMessageReceiptDelegate:(nullable id)delegate; + + +/// 设置输入状态的监听器 +/// +/// - Parameter delegate: RCChannelClient 输入状态的的监听器 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.1 +- (void)setRCConversationChannelTypingStatusDelegate:(nullable id)delegate; + +/// 设置超级群输入状态的监听器 +/// +/// - Parameter delegate: RCChannelClient 输入状态的的监听器 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)setRCUltraGroupTypingStatusDelegate:(nullable id)delegate; + +/// 设置超级群已读时间回调监听器 +/// +/// - Parameter delegate: 超级群已读时间回调监听器 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)setRCUltraGroupReadTimeDelegate:(nullable id)delegate; + +/// 设置超级群消息处理监听器 +/// +/// - Parameter delegate: 超级群消息处理回调监听器 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)setRCUltraGroupMessageChangeDelegate:(nullable id)delegate; + +#pragma mark 消息发送 + +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送媒体类型消息(如图片消息),需要您自己实现媒体文件的上传,构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 使用此方法发送消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用 IMLibCore 上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Warning: 使用此方法发送媒体消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用 IMLibCore 上传媒体文件的文件到自己服务器,需要构建一个媒体消息对象(如图片消息对象 RCImageMessage),并将媒体消息对象的 remoteUrl 字段设置为上传成功的 URL 地址,然后使用 [RCChannelClient sendMessage:targetId:channelId:content:pushContent:pushData:option:attached:success:error:] 方法发送。 +/// +/// - Warning: 使用此方法发送媒体消息,不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + uploadPrepare:(nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter canIncludeExpansion: 是否支持扩展 +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位:毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [发送的消息实体] +/// +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Remark: 消息操作 +/// - Since: 5.3.1 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + canIncludeExpansion:(BOOL)canIncludeExpansion + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位:毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [插入的消息实体] +/// +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Note: 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存;可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + senderUserId:(NSString *)senderUserId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userIdList: 接收消息的用户 ID 列表 [个数不能超过 300,超过会被截断] +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// 使用此方法发送定向消息,不会自动更新 UI。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +#pragma mark - 消息阅读回执 - + +/// 发送某个会话中消息阅读的回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 该会话中已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此接口只支持单聊,如果使用 IMLibCore 可以注册监听 +/// RCLibDispatchReadReceiptNotification 通知,使用 IMKit 直接设置 RCIM.h +/// 中的 enabledReadReceiptConversationTypeList。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)sendReadReceiptMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 发送阅读回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messageList: 已经阅读了的消息列表 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 当用户阅读了需要阅读回执的消息,可以通过此接口发送阅读回执,消息的发送方即可直接知道哪些人已经阅读。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)sendReadReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageList:(NSArray *)messageList + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 同步会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 已经阅读的最后一条消息的 Unix 时间戳,单位:毫秒 +/// - Parameter successBlock: 同步成功的回调 +/// - Parameter errorBlock: 同步失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)syncConversationReadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 上报超级群的已读时间 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 已读时间,传入最后一条消息的 sentTime,单位:毫秒 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法只支持超级群的会话类型。 +/// - Remark: 超级群 +/// - Since: 5.2.0 +- (void)syncUltraGroupReadStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 同步服务端会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter timestamp: 已经阅读的最后一条消息的 Unix 时间戳 (毫秒) +/// - Parameter successBlock: 同步成功的回调 +/// - Parameter errorBlock: 同步失败的回调 [nErrorCode: 失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.12.3 +- (void)setReadTimestamp:(RCConversationIdentifier *)conversationIdentifier + timestamp:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorcode))errorBlock; +#pragma mark - 消息操作 + +/// 异步获取某个会话中指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,从指定消息之前、指定数量的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 oldestMessageId 对应那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 oldestMessageId 对应的那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter baseMessageId: 当前的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 baseMessageId 对应的那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNames: 消息内容的类型名称列表 +/// - Parameter sentTime: 当前的消息时间戳,单位:毫秒 +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 返回的消息中不包含 sentTime 对应的那条消息。 +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 在会话中异步搜索指定消息的前 beforeCount 数量和后 afterCount 数量的消息(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sentTime: 消息的发送时间,单位:毫秒 +/// - Parameter beforeCount: 指定消息的前部分消息数量 +/// - Parameter afterCount: 指定消息的后部分消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 该方法仅获取本地数据库中的消息 +/// 超级群不会接收离线消息,超级群调用该接口会出现消息断档的情况,请使用断档消息接口获取超级群消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + completion:(nullable void (^)(NSArray *_Nullable messages))completion; +/// 从服务器端清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter recordTime: 清除消息时间戳,单位:毫秒【0 <= recordTime <= 当前会话最后一条消息的 sentTime, 0 清除所有消息,其他值清除小于等于 recordTime 的消息】 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// +/// 此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 清除成功后只能获取该时间戳之后的历史消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)clearRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + recordTime:(long long)recordTime + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter recordTime: 清除消息时间戳,单位:毫秒【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 +/// 清除所有消息,其他值清除小于等于 recordTime 的消息】 +/// - Parameter clearRemote: 是否同时删除服务端消息 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [ status:清除失败的错误码] +/// +/// 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 并设置 clearRemote 为 YES +/// 清除消息,成功后只能获取该时间戳之后的历史消息。如果 clearRemote 传 NO, +/// 只会清除本地消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)clearHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + recordTime:(long long)recordTime + clearRemote:(BOOL)clearRemote + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + option:(RCRemoteHistoryMsgOption *)option + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取历史消息 +/// 获取指定会话的连续消息,会先从本地数据库获取指定数量消息,然后根据这些消息所在会话的连续 +/// 置信区间来判断,这些消息中间是否有断档遗漏(即本地存储消息与服务端存储不同步)如果本地数据库的消息有断档, +/// 会触发一次从服务端获取断档处的消息,然后跟本地消息合并再返回给调用者。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码],参数合法性检查不通过会直接回调 errorBlock +/// +/// - Note: 以下为单群聊场景下的详细说明: +/// +/// 产生消息断档的典型情况有: +/// 1. 超过消息离线存储最长时间未登录。例如默认离线消息的最长存储时间是 7 天,若用户连续 10 天未登录,当再次登录时, +/// 服务器只会推送最近 7 天的离线消息,那么更早的 3 天内的消息本地就没有,这段期间称为断档。 +/// 2. 客户启用了群组离线消息存储条数配置。例如配置群组离线消息存储条数为 100 条,若用户离线期间, +/// 该群离线消息超过 100 条,当再次登录时,服务器只会推送最后的 100 条消息,那么更早的消息本地也没有,这段期间称为断档。 +/// +/// 本地存储消息是否断档的判断逻辑: +/// 当连接成功后,服务器主动下发消息分为两种情况,一种是单条直发,一种是通知拉取(一般是会话消息量较大的情况)。还有一种 +/// 是客户端主动拉取消息。对于通知拉取和主动拉取,服务端返回结果中都带有连续置信区间的起始和终止时间戳,客户端会将这段时 +/// 间记录在本地数据库中,视为该会话的连续置信区间。如果用户一直在线情况下,收到单条直发消息,也会将当前消息的时间戳与本 +/// 地存储的该会话置信区间做拼接,视为连续置信区间。当用户调用此接口时,会根据用户传入的获取消息条数 count 来从本地数据库 +/// 中获取,如果获取的所有消息时间戳都在连续置信区间内,就视为无断档,可直接返回给用户。否则会以断档处时间戳为起点,向服 +/// 务端拉取历史消息,拉回来消息的同时,会更新该会话的连续置信区间,并将入库类型消息与本地数据库的消息合并,再返回给用户。 +/// +/// 结果回调中,messages 为本次拉取到的消息列表,timestamp 为下次拉取的起始时间戳,isRemaining 为服务器是否还有未拉取的消息。 +/// 分为以下几种情况: +/// 1. messages 数量等于 count。代表本次的调用已拉取到 count 条消息,且消息是连续的。用户可根据 isRemaining +/// 结果决定是否要继续拉取。 +/// 2. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 false。 +/// 代表本次调用已拉取到所有连续消息,且服务端也无更多消息可供拉取。 +/// 3. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 true。 +/// 代表本次调用只拉取到这么多连续消息,虽然尝试从服务端拉取断档处消息,但拉回来的都是不存储类型的消息。 +/// 同时服务端还有更多消息可供拉取,需要用户使用返回的 timestamp 继续拉取。 +/// +/// 以下情况需要注意: +/// 1. 调用此接口返回的消息,会在本地标记为连续消息。如果后面调用了删除消息相关接口从本地数据库删除了已连续的消息, +/// 会认为此处仍然连续无断档。下次再调用此接口时,不会从服务端拉取此处已删除的消息。 +/// 2. 当用户一直在线时,如果服务端通过 ServerAPI 将当前用户踢出某群,过一段时间再加回来。 +/// 如果服务端执行以上操作的同时什么都不做,客户端是无感知的。用户在被踢出群的这段时间内,此群消息接收不到, +/// 等加回来后又可以收之后的消息,但 SDK 会认为此间消息一直连续无断档,下次调用此接口时,不会从服务端拉取退群期间的消息。 +/// 如果想补偿这段时间消息,需要调用拉取该时段的远端消息接口。为避免执行上述操作时,客户端无感知, +/// 建议在服务端执行踢人操作前,同时发送一条小灰条消息通知被踢人,避免用户误解。 +/// +/// - Warning: +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。当本地没有更多消息的时候,会从服务器拉取 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// 在获取远端消息的时候,可能会拉到信令消息,信令消息会被 SDK 排除掉,导致 messages.count 小于 option.count,此时只要 isRemaining 为 YES,那么下次拉取消息的时候,请用 timestamp 当做 option.recordTime 再去拉取;如果 isRemaining 为 NO,则代表远端不再有消息了 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, long long timestamp, BOOL isRemaining, + RCErrorCode code))complete + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话中 @ 提醒自己的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 最多返回 10 条@提醒的消息 +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 未读的 @ 消息,取值范围 [1,100] +/// - Parameter desc: 是否是降序查 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// 假如有 1000 条未读的 @ 消息,取 100 条未读 +/// desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 +/// desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 +/// +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话会调用清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及设置消息接收状态接口 setMessageReceivedStatus:receivedStatus: 会同步清除 @ 提醒信息状态。 +/// - Since: 5.3.0 + +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + count:(int)count + desc:(BOOL)desc + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步根据会话 id 获取所有子频道的 @ 未读消息总数 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 回调会话内的未读消息数 +/// +/// - Remark: 超级群消息操作 +/// - Since: 5.3.0 +- (void)getUltraGroupUnreadMentionedCount:(NSString *)targetId completion:(nullable void (^)(int num))completion; + +/// 消息修改 +/// +/// - Parameter messageUId: 将被修改的消息 id +/// - Parameter newContent: 将被修改的消息内容 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法只能修改相同频道的同类型消息,仅能修改自己发送的消息 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (void)modifyUltraGroupMessage:(NSString *)messageUId + messageContent:(RCMessageContent *)newContent + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 更新超级群消息扩展信息 +/// +/// - Parameter messageUId: 消息 messageUId +/// - Parameter expansionDic: 要更新的消息扩展信息键值对 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)updateUltraGroupMessageExpansion:(NSString *)messageUId + expansionDic:(NSDictionary *)expansionDic + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除超级群消息扩展信息中特定的键值对 +/// +/// - Parameter messageUId: 消息 messageUId +/// - Parameter keyArray: 消息扩展信息中待删除的 key 的列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)removeUltraGroupMessageExpansion:(NSString *)messageUId + keyArray:(NSArray *)keyArray + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 撤回超级群消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter isDelete: 是否移除远端消息记录 +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID。isDelete:NO 时,该消息已经变更为新的消息 `RCRecallNotificationMessage`; isDelete:YES 时,该消息已经被删除] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// - Remark: 高级功能 +/// - Since: 5.2.3 +- (void)recallUltraGroupMessage:(RCMessage *)message + isDelete:(BOOL)isDelete + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取同一个超级群下的批量服务消息(含所有频道) +/// 获取成功后强制更新本地消息 +/// - Parameter messages: 消息列表 [最多 20 条,每个消息对象需包含 ConversationType,targetId,channelId, messageUid,sentTime] +/// - Parameter successBlock: 成功的回调 [matchedMsgList:成功的消息列表,notMatchMsgList:失败的消息列表] +/// - Parameter errorBlock: 失败的回调 [errorCode:错误码] +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)getBatchRemoteUltraGroupMessages:(NSArray *)messages + success:(nullable void (^)(NSArray *matchedMsgList, + NSArray *notMatchMsgList))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 批量获取本地消息,支持单聊、群聊、超级群、聊天室会话类型 +/// - Parameter conversationType: 会话类型 [非法报错:INVALID_PARAMETER_CONVERSATIONTYPE] +/// - Parameter targetId: 会话 ID[非法报错:INVALID_PARAMETER_TARGETID] +/// - Parameter channelId: 频道 ID(非超级群时传 nil)[非法报错:INVALID_PARAMETER_CHANNELID] +/// - Parameter messageUIDs: 消息 UID 列表 (最多 20 条)[数量大于 20 或为 0,类型不对:INVALID_PARAMETER_MESSAGELIST] +/// - Parameter successBlock: 成功的回调 [messages:成功的消息列表,mismatch:失败的消息 UID 列表] +/// - Parameter errorBlock: 失败的回调 [errorCode:错误码] +/// +/// mismatch 不为空,则代表本地没有对应的 message: +/// 1. messageUid 可能不是标准的 UID 字符串,本地无法匹配 +/// 2. 超级群默认只同步会话最后一条消息,可能本地找不到本地对应消息,可以先调用 getBatchRemoteUltraGroupMessages 从远端拉去一下 +/// 3. 聊天室退出之后,本地消息会被清空,调用该接口无法拿到本地消息 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getBatchLocalMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUIDs:(NSArray *)messageUIDs + success:(nullable void (^)(NSArray *messages, + NSArray *mismatch))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话里第一条未读消息。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [第一条未读消息的实体] +/// +/// - Remark: 消息操作 +/// 前提:超级群会话不接收离线消息。 +/// 用户在线接收的超级群未读消息已经保存到本地数据库,可以通过此接口获取到 +/// 用户离线的超级群未读消息,用户在线之后不收离线未读消息,通过此接口获取第一条未读消息为空 +/// - Since: 5.3.0 +- (void)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法删除数据库中该会话的消息记录,同时会整理压缩数据库,减少占用空间 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)deleteMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 批量删除某个会话中的指定远端消息(同时删除对应的本地消息) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 目标会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messages: 将被删除的消息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 一次批量操作仅支持删除属于同一个会话的消息,请确保消息列表中的所有消息来自同一会话 +/// 一次最多删除 100 条消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.1 +- (void)deleteRemoteMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除指定超级群、所有 channel、指定时间之前的本地消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)deleteUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp + completion:(nullable void (^)(BOOL result))completion; + +/// 异步删除指定超级群、指定 channel、指定时间之前的本地消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)deleteUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + completion:(nullable void (^)(BOOL result))completion; +/// 删除指定 channel、指定时间之前的服务端消息 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter timestamp: 会话的时间戳,单位:毫秒 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 消息操作 +/// - Since: 5.2.0 +- (void)deleteRemoteUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步批量删除指定会话早于(含)发送时间的所有本地数据库消息 +/// +/// - Parameter clearMessageOptions: [RCClearMessageOption], 最大数量为 20 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 此方法删除数据库中会话早于(含)发送时间的消息记录,时间戳传 0 清除所有消息 +/// 支持的会话类型:单聊,群聊,聊天室,系统消息 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)clearMessages:(NSArray *)clearMessageOptions + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步批量删除服务端指定会话早于(含)发送时间的所有远端消息(可以删除对应的本地消息) +/// +/// - Parameter clearMessageOptions: [RCClearMessageOption], 最大数量为 20 +/// - Parameter isDeleteLocal: 是否删除对应的本地消息 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 时间戳传 0 清除所有消息 +/// 支持的会话类型:单聊,群聊,聊天室,系统消息 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)clearRemoteMessages:(NSArray *)clearMessageOptions + isDeleteLocal:(BOOL)isDeleteLocal + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +#pragma mark - 会话列表操作 + +/// 异步获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: +/// 分页拉取会话列表,否则有可能造成内存过大。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步分页获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳,单位:毫秒(获取这个时间戳之前的会话列表,0 表示从最新开始获取) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步分页获取本地会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳,单位:毫秒(获取这个时间戳之前的会话列表,0 表示从最新开始获取) +/// - Parameter topPriority: 查询结果的排序方式,是否置顶优先,传 true 表示置顶会话优先返回,否则结果只以会话时间排序 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.6.6 +- (void)getConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + count:(int)count + startTime:(long long)startTime + topPriority:(BOOL)topPriority + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取会话列表。 +/// - Parameters: +/// - filters: 会话过滤参数。 +/// - option: 参数配置。 +/// - completion: 结果回调。 +/// +/// - Since: 5.20.0 +- (void)getConversationListByFilters:(NSArray *)filters + option:(nullable RCConversationListOption *)option + completion:(RCConversationListCompletion)completion; + +/// 异步获取本地特定会话下所有频道的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationListForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion: + (nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 分页异步获取本地特定会话类型下所有 channel 的会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// - Parameter conversationTypeList: 会话类型数组 +/// - Parameter count: 会话个数 +/// - Parameter startTime: 开始时间,首次可传入 0,单位:毫秒 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// - Since: 5.3.0 +- (void)getConversationListForAllChannel:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + completion: + (nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取本地所有含 ChannelId 会话列表(按照时间从新到旧排列,如果有置顶的会话,则置顶的会话会排列在前面) +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// - Warning: 当会话数量多的时候,会有性能问题,所以建议在非主线程调用该接口 +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationListForAllChannel:(NSArray *)conversationTypeList + completion: + (nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取本地单个会话数据 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [会话的对象] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(RCConversation *_Nullable conversation))completion; + +/// 异步获取本地会话中的消息数量 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [会话中的消息数量,-1 表示获取消息数量出错] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步删除本地指定类型的会话 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// 此方法会从本地存储中删除该会话,同时删除会话中的消息。 +/// 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步删除本地和服务的会话 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// 此方法会同时删除本地和服务的会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// - Warning: 如果服务的会话删除失败,本地的会话依然会被删除。SDK 在未连接的情况下,删除服务会话会失败 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion + NS_SWIFT_NAME(removeConversation(_:targetId:channelId:completion:)); + +/// 异步批量删除会话列表 +/// +/// - Parameter conversationIdentifiers: [RCConversationIdentifier], 最大数量为 20 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 不删除会话内的消息,如果会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// 支持的会话类型:单聊,群聊,系统消息 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)removeConversations:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除远端会话 + +/// - Parameter conversationIdentifiers [RCConversationIdentifier], 最大数量为 20 +/// - Parameter successBlock 删除成功的回调 +/// - Parameter errorBlock 删除失败的回调 [status:删除失败的错误码] +/// +/// - Remark: 会话 +/// - Since:5.12.3 +- (void)removeRemoteConversations:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isTop: 是否置顶 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isTop:(BOOL)isTop + completion:(nullable void (^)(BOOL result))completion; + +/// 异步批量设置会话的置顶状态 +/// +/// - Parameter conversationIdentifiers: [RCConversationIdentifier], 最大数量为 20 +/// - Parameter isTop: 是否置顶(置顶:YES,取消置顶:NO) +/// - Parameter needCreate: 在没有会话时,是否创建会话 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)setConversationsToTop:(NSArray *)conversationIdentifiers + isTop:(BOOL)isTop + needCreate:(BOOL)needCreate + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isTop: 是否置顶 +/// - Parameter needUpdateTime: 是否更新时间 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + isTop:(BOOL)isTop + needUpdateTime:(BOOL)needUpdateTime + completion:(nullable void (^)(BOOL result))completion; + +/// 异步获取本地会话的置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否置顶] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步获取本地置顶的会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [置顶的会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getTopConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; +#pragma mark 会话中的草稿操作 + +/// 异步获取会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该会话中的草稿] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSString *_Nullable content))completion; + +/// 异步保存草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter content: 草稿信息 +/// - Parameter completion: 异步回调 [是否保存成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + content:(NSString *)content + completion:(nullable void (^)(BOOL result))completion; + +/// 异步删除会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +#pragma mark 未读消息数 + +/// 异步获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [所有的未读消息数(含免打扰会话未读数)] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步获取所有的未读消息数(聊天室会话除外) +/// +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰会话的未读数,YES 包含免打扰会话未读数 +/// - Parameter completion: 异步回调 [所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCountWithChannelId:(nullable NSString *)channelId + containBlocked:(BOOL)isContain + completion:(nullable void (^)(int num))completion; + +/// 异步获取某个会话内的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步获取某个会话内的未读消息数 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter messageClassList: 消息类型数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// 此方法不支持聊天室和超级群的会话类型。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步获取某些类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter isContain: 是否包含免打扰消息的未读数 +/// - Parameter completion: 异步回调 [该类型的会话中所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + containBlocked:(bool)isContain + completion:(nullable void (^)(int num))completion; + +/// 异步获取某个类型的会话中所有未读的被 @ 的消息数 +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [该类型的会话中所有未读的被 @ 的消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadMentionedCount:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(int num))completion; + +/// 异步清除某个会话中的未读消息数 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(BOOL result))completion; + +/// 异步清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + time:(long long)timestamp + completion:(nullable void (^)(BOOL result))completion; + +#pragma mark - 会话的消息提醒 + +/// 设置会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如果您需要移除消息通知,level 参数传入 RCPushNotificationLevelDefault 即可 +/// 注:超级群通过该接口对具体频道进行免打扰设置 +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setConversationChannelNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 查询会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型(不支持聊天室,聊天室是不接受会话消息提醒的) +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter successBlock: 查询成功的回调 [nStatus:会话设置的消息提醒状态] +/// - Parameter errorBlock: 查询失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.1.1 +- (void)getConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; +/// 查询消息通知级别 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 查询失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getConversationChannelNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取本地消息免打扰会话列表 +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter completion: 异步回调 [消息免打扰会话 RCConversation 的列表] +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getBlockedConversationList:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; +/// 设置超级群的默认消息状态 +/// +/// 一般由管理员设置的接口,针对超级群的所有群成员生效,针对超级群下所有频道生效,优先级较低。 +/// 如果群成员自己超级群的免打扰级别,那么以群成员自己设置的为准。 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter level: 等级 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Since: 5.2.2 +- (void)setUltraGroupConversationDefaultNotificationLevel:(NSString *)targetId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; +/// 获取超级群的默认消息状态 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getUltraGroupConversationDefaultNotificationLevel:(NSString *)targetId + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +#pragma mark - 输入状态提醒 + +/// 向会话中发送正在输入的状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectName: 正在输入的消息的类型名 +/// +/// contentType 为用户当前正在编辑的消息类型名,即 RCMessageContent 中 getObjectName 的返回值。 +/// 如文本消息,应该传类型名"RC:TxtMsg"。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)sendTypingStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + contentType:(NSString *)objectName; + +/// 向超级群会话中发送正在输入的状态 +/// +/// - Parameter targetId: 会话目标 ID +/// - Parameter channelId: 所属会话的频道 id +/// - Parameter status: 输入状态类型 +/// +/// - Remark: 高级功能 +/// - Since: 5.2.0 +- (void)sendUltraGroupTypingStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + typingStatus:(RCUltraGroupTypingStatus)status + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; +#pragma mark - 搜索 + +/// 根据关键字异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter keyword: 关键字 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据时间,偏移量和个数异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 +/// - Parameter startTime: 查询 startTime 之后的消息,startTime >= 0,单位:毫秒 +/// - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime,单位:毫秒 +/// - Parameter offset: 查询的消息的偏移量,offset >= 0 +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(nullable NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 按用户 ID 异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter userId: 搜索用户 ID +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步搜索指定会话中所有 channelId 的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息,单位:毫秒(传 0 表示不限时间) +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 分页异步搜索指定会话中所有 channelId 在指定时间范围内的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter startTime: 开始时间,单位:毫秒(传 0 表示不限时间) +/// - Parameter endTime: 结束时间,可传入当前 unix 时间,,单位:毫秒 +/// - Parameter offset: 偏移量,默认填 0 +/// - Parameter limit: 最大的查询数量 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessagesForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据关键字搜索指定超级群下多个频道的本地历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter channelIds: 频道列表,支持一次查询多个频道,必须满足 `0 < 频道个数 <= 50` +/// SDK 会过滤掉数组中的空字符串,如果 channelId 不合法(非字符串类型或长度超过 20 为不合法) +/// 或 频道个数不满足条件,errorBlock 会返回错误码 `INVALID_PARAMETER_CHANNELID` +/// - Parameter keyword: 查询内容关键字 +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索) +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter successBlock: [messages] 满足条件的消息列表,按时间倒序排序 +/// - Parameter errorBlock: [errorCode] 错误码 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.2 +- (void)searchMessagesForChannels:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelIds:(NSArray *)channelIds + keyword:(NSString *)keyword + startTime:(long long)startTime + limit:(int)limit + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据发送者用户 ID 搜索指定超级群下多个频道的本地历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter channelIds: 频道列表,支持一次查询多个频道,必须满足 `0 < 频道个数 <= 50` +/// SDK 会过滤掉数组中的空字符串,如果 channelId 不合法(非字符串类型或长度超过 20 为不合法) +/// 或 频道个数不满足条件,errorBlock 会返回错误码 `INVALID_PARAMETER_CHANNELID` +/// - Parameter userId: 消息发送者用户 ID +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索) +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter successBlock: [messages] 满足条件的消息列表,按时间倒序排序 +/// - Parameter errorBlock: [errorCode] 错误码 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.2 +- (void)searchMessagesByUserForChannels:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelIds:(NSArray *)channelIds + userId:(NSString *)userId + startTime:(long long)startTime + limit:(int)limit + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据发送者用户 ID 搜索指定超级群下所有频道的本地历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter userId: 消息发送者用户 ID +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索) +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter successBlock: [messages] 满足条件的消息列表,按时间倒序排序 +/// - Parameter errorBlock: [errorCode] 错误码 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.2 +- (void)searchMessagesByUserForAllChannel:(RCConversationType)conversationType + targetId:(NSString *)targetId + userId:(NSString *)userId + startTime:(long long)startTime + limit:(int)limit + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据关键字异步搜索会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值) +/// - Parameter keyword: 关键字 +/// - Parameter completion: 异步回调 [匹配的会话搜索结果列表] +/// +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchConversations:(NSArray *)conversationTypeList + channelId:(nullable NSString *)channelId + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + completion:(nullable void (^)(NSArray *_Nullable results))completion; + +/// 根据关键字异步搜索特定会话类型下所有 channelId 的会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型列表 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值),不能为 nil +/// - Parameter keyword: 关键字,非空 +/// - Parameter completion: 异步回调 [匹配的会话搜索结果列表] +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchConversationsForAllChannel:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + completion:(nullable void (^)(NSArray *_Nullable results)) + completion; + +#pragma mark - 消息状态 + + +/// 设置超级群频道的默认消息状态 +/// 一般由管理员设置的的接口,针对超级群的所有群成员生效,仅针对设置的频道生效,优先级较低。如果群成员自己设置超级群的免打扰级别,那么以群成员自己设置的为准。 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setUltraGroupConversationChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 获取超级群频道的默认消息状态 +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getUltraGroupConversationChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCPushNotificationLevel level)) + successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 屏蔽某个时间段的消息提醒 +/// +/// - Parameter startTime: 开始消息免打扰时间,格式为 HH:MM:SS +/// - Parameter spanMins: 需要消息免打扰分钟数,0 < spanMins < 1440 +/// (比如,您设置的起始时间是 00:00,结束时间为 01:00,则 spanMins 为 60 分钟。设置为 1439 代表全天免打扰(23 * 60 + 59 = 1439)) +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 屏蔽成功的回调 +/// - Parameter errorBlock: 屏蔽失败的回调 [status:屏蔽失败的错误码] +/// +/// 此方法设置的屏蔽时间会在每天该时间段时生效。 +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setNotificationQuietHoursLevel:(NSString *)startTime + spanMins:(int)spanMins + level:(RCPushNotificationQuietHoursLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 屏蔽某个时间段的消息提醒 +/// +/// - Parameter setting: 消息免打扰配置 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status:屏蔽失败的错误码] +/// +/// 此方法设置的屏蔽时间会在每天该时间段时生效。 +/// +/// - Remark: 会话 +/// - Since: 5.14.0 +- (void)setNotificationQuietHoursWithSetting:(RCNotificationQuietHoursSetting *)setting + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 查询已设置的时间段消息提醒屏蔽 +/// +/// - Parameter successBlock: 屏蔽成功的回调 [startTime:已设置的屏蔽开始时间, +/// spanMins:已设置的屏蔽时间分钟数,0 < spanMins < 1440],level:消息通知级别 +/// - Parameter errorBlock: 查询失败的回调 [status:查询失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getNotificationQuietHoursLevel:(nullable void (^)(NSString *startTime, int spanMins, + RCPushNotificationQuietHoursLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 查询已设置的消息提醒屏蔽信息 +/// +/// - Parameter successBlock: 查询成功的回调。 +/// - Parameter errorBlock: 查询失败的回调。 +/// +/// - Remark: 会话 +/// - Since: 5.14.0 +- (void)getNotificationQuietHoursSetting:(nullable void (^)(RCNotificationQuietHoursSetting *setting))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如要移除消息提醒状态,设置 level 为 RCPushNotificationLevelDefault +/// 注:超级群调用该接口,相当于设置了 channelId 为 空 的频道的免打扰,不会屏蔽整个超级群会话下所有频道的免打扰 +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)setConversationNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步批量设置会话的消息提醒状态 +/// +/// - Parameter conversationIdentifiers: [RCConversationIdentifier], 最大数量为 20 +/// - Parameter level: RCPushNotificationLevel +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 [status: 失败的错误码] +/// +/// 如要移除消息提醒状态,设置 level 为 RCPushNotificationLevelDefault +/// 不支持聊天室 +/// +/// - Remark: 会话 +/// - Since: 5.6.7 +- (void)setConversationsNotificationLevel:(NSArray *)conversationIdentifiers + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)getConversationNotificationLevel:(RCConversationType)conversationType + targetId:(NSString *)targetId + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 设置会话类型的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter level: 消息通知级别 +/// - Parameter successBlock: 设置成功的回调 +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// 如要移除消息提醒状态,设置 level 为 RCPushNotificationLevelDefault +/// +/// - Remark: 会话 +/// - Since: 5.2.3 + +- (void)setConversationTypeNotificationLevel:(RCConversationType)conversationType + level:(RCPushNotificationLevel)level + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 获取会话类型的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter successBlock: 设置成功的回调 [level:消息通知级别] +/// - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.3 + +- (void)getConversationTypeNotificationLevel:(RCConversationType)conversationType + success:(nullable void (^)(RCPushNotificationLevel level))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除已设置的全局时间段消息提醒屏蔽 +/// +/// - Parameter successBlock: 删除屏蔽成功的回调 +/// - Parameter errorBlock: 删除屏蔽失败的回调 [status:失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.2.2 +- (void)removeNotificationQuietHours:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark-- 超级群 + +/// 拉取超级群列表后回调功能 +/// +/// - Parameter delegate: 代理 +/// +/// 超级群会话同步状态监听,要在初始化之后,连接之前设置代理 +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 + +- (void)setUltraGroupConversationDelegate:(id)delegate; + +/// 超级群频道信息回调功能 +/// +/// - Parameter delegate: 代理 +/// +/// - Remark: 超级群频道操作 +/// - Since: 5.2.4 + +- (void)setUltraGroupChannelDelegate:(id)delegate; + + +/// 获取指定超级群下所有频道的未读消息总数 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 +- (void)getUltraGroupUnreadCount:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取超级群会话类型的所有未读消息数 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 +- (void)getUltraGroupAllUnreadCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取超级群会话类型的 @ 消息未读数接口 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.2 +- (void)getUltraGroupAllUnreadMentionedCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取某个超级群指定 channel 列表,某段时间范围内的消息数量 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter targetId: 会话 ID +/// - Parameter channelIds: 频道列表,支持一次查询多个频道,如果为空,则返回全部 channel id 的消息数量 +/// - Parameter startTime 查询 startTime 之后的消息,startTime >= 0 +/// - Parameter endTime 查询 endTime 之前的消息,endTime > startTime +/// - Parameter success 异步回调 [会话中的消息数量] +/// - Parameter error 错误回调 [错误码] +/// +/// - Remark: 超级群消息操作 +/// - Since: 5.6.4 +- (void)getUltraGroupMessageCountByTimeRange:(NSString *)targetId + channelIds:(NSArray *)channelIds + startTime:(long long)startTime + endTime:(long long)endTime + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 可以获取本地指定超级群下公有频道或者私有频道的列表 +/// - Parameter targetId: 会话 ID +/// - Parameter channelType: 频道类型 +/// - Parameter successBlock: 获取成功的回调 [会话列表] +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.4 +- (void)getUltraGroupChannelList:(NSString *)targetId + channelType:(RCUltraGroupChannelType)channelType + success:(nullable void (^)(NSArray *list))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 根据超级群会话 id 数组获取对应的会话对象数组 +/// +/// - Parameter targetIds: 会话 id 数组,最多 20 个 +/// - Parameter successBlock: 成功回调 [会话未读信息数组] +/// - Parameter errorBlock: 失败回调 [失败错误码] +/// +/// - Remark: 超级群会话 +/// - Since: 5.4.6 +- (void)getUltraGroupConversationUnreadInfoList:(nonnull NSArray *)targetIds + success: + (nonnull void (^)(NSArray *list))successBlock + error:(nonnull void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 未读数 + +/// 获取会话未读消息数 (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter conversationTypes: 会话类型数组:[单聊、群聊、超级群、系统会话] +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 单聊、群聊、超级群消息操作 +/// - Since: 5.2.5 +- (void)getUnreadCount:(nonnull NSArray *)conversationTypes + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取会话未读 @消息数 (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter conversationTypes: 会话类型数组:[群聊、超级群] +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 群聊、超级群消息操作 +/// - Since: 5.2.5 +- (void)getUnreadMentionedCount:(nonnull NSArray *)conversationTypes + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取指定超级群会话的未读消息数(包括所有频道) (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter targetId: 超级群会话 ID +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.5 +- (void)getUltraGroupUnreadCount:(nonnull NSString *)targetId + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 获取指定超级群会话的未读@消息数(包括所有频道) (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter targetId: 超级群会话 ID +/// - Parameter levels: 免打扰类型数组 [RCPushNotificationLevel] +/// - Parameter successBlock: 获取成功的回调 [消息数量] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.5 +- (void)getUltraGroupUnreadMentionedCount:(nonnull NSString *)targetId + levels:(nonnull NSArray *)levels + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取超级群会话类型未读的 @ 消息摘要列表接口 (子线程回调,如有 UI 操作,请切回主线程) +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter sendTime: 消息发送的时间 [毫秒,0 代表从第一条开始查询] +/// - Parameter count: 查询数量 [1 - 50], 超过范围上报 INVALID_PARAMETER_COUNT 错误码 +/// - Parameter successBlock: 获取成功的回调 [消息摘要列表] +/// - Parameter errorBlock: 获取失败的回调 [status:失败的错误码] +/// - Remark: 超级群消息操作 +/// - Since: 5.2.5 +- (void)getUltraGroupUnreadMentionedDigests:(nonnull NSString *)targetId + channelId:(nullable NSString *)channelId + sendTime:(long long)sendTime + count:(NSInteger)count + success:(nullable void (^)(NSArray *digests))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 用户组 + +/// 设置用户组信息回调代理 +/// +/// - Parameter delegate: 代理 +/// +/// - Remark: 用户组信息操作 +/// +/// - Since: 5.4.0 +- (void)setUserGroupStatusDelegate:(nullable id)delegate; + + +#pragma mark - 已读回执V4 + + +/// 获取某条消息的已读回执信息 +/// - Parameters: +/// - targetId: 会话 ID +/// - channelId: 业务 ID +/// - messageUID: 消息 uid +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 + +- (void)getMessageReadReceiptV4:(nonnull NSString *)targetId + channelId:(nullable NSString *)channelId + messageUID:(nonnull NSString *)messageUID + successBlock:(nullable void (^)(NSInteger readCount, NSInteger totalCount, + NSArray *list))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 发送消息的已读回执,会将区间内的消息在服务端全部添加已读状态,本地不进行处理。需要 lib 自己调用清除未读等相关接口处理其他业务。 +/// - Parameters: +/// - conversationType: 会话类型 +/// - targetId: 会话 ID +/// - channelId: 业务 ID +/// - startMessageUID: 开始的消息 UID +/// - endMessageUID: 结束的消息 UID +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 +- (void)sendReadReceiptMessageV4:(RCConversationType)conversationType + targetId:(nonnull NSString *)targetId + channelId:(nullable NSString *)channelId + startMessageUID:(nullable NSString *)startMessageUID + endMessageUID:(nonnull NSString *)endMessageUID + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelIdentifier.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelIdentifier.h new file mode 100644 index 0000000..d4cb73d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCChannelIdentifier.h @@ -0,0 +1,19 @@ +// +// RCChannelIdentifier.h +// RongIMLibCore +// +// Created by RobinCui on 2023/1/3. +// Copyright © 2023 RongCloud. All rights reserved. +// + +//#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.4.0 +@interface RCChannelIdentifier : RCConversationIdentifier + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCClearConversationOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCClearConversationOption.h new file mode 100644 index 0000000..bdc9e9d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCClearConversationOption.h @@ -0,0 +1,20 @@ +// +// RCClearConversationOption.h +// RongIMLibCore +// +// Created by 孙浩 on 2021/8/23. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCClearConversationOption : NSObject + +/// 是否清除本地历史消息 +@property (nonatomic, assign) BOOL isDeleteMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCClearMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCClearMessageOption.h new file mode 100644 index 0000000..a50b2a1 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCClearMessageOption.h @@ -0,0 +1,28 @@ +// +// RCClearMessageOption.h +// RongIMLibCore +// +// Created by chinaspx on 2023/9/18. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.6.7 +@interface RCClearMessageOption : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType type; +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; +/// channel ID +@property (nonatomic, copy) NSString *channelId; +/// timestamp 时间戳(毫秒) +@property (nonatomic, assign) long long timestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCombineMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCombineMessage.h new file mode 100644 index 0000000..ea90492 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCombineMessage.h @@ -0,0 +1,51 @@ +// +// RCCombineMessage.h +// RongIMLib +// +// Created by liyan on 2019/8/13. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 合并转发消息的类型名 +#define RCCombineMessageTypeIdentifier @"RC:CombineMsg" + + +/// 合并转发消息类 +/// +/// 合并转发消息,此消息会进行存储并计入未读消息数。 +/// +/// 该消息不支持超级群的会话类型。 +/// +/// - Remark: 内容类消息 +@interface RCCombineMessage : RCMediaMessageContent + +/// 转发的消息展示的缩略内容列表 (格式是发送者:缩略内容) +@property (nonatomic, strong) NSArray *summaryList; + +/// 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称) +@property (nonatomic, strong) NSArray *nameList; + +/// 转发的消息会话类型(目前仅支持单聊和群聊) +@property (nonatomic, assign) RCConversationType conversationType; + + +/// 初始化 RCCombineMessage 消息 +/// +/// - Parameter summaryList: 转发的消息展示的缩略内容列表 +/// - Parameter nameList: 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称) +/// - Parameter conversationType: 转发的消息会话类型 +/// - Parameter content: 转发的内容 +/// +/// - Returns: 消息对象 ++ (instancetype)messageWithSummaryList:(NSArray *)summaryList + nameList:(NSArray *)nameList + conversationType:(RCConversationType)conversationType + content:(NSString *)content; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCombineV2Message.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCombineV2Message.h new file mode 100644 index 0000000..731f85e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCombineV2Message.h @@ -0,0 +1,62 @@ +// +// RCCombineV2Message.h +// GlobalIMUIKit +// +// Created by zgh on 2023/11/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 合并转发消息的类型名 +#define RCCombineV2MessageTypeIdentifier @"RC:CombineV2Msg" + +@interface RCCombineV2Message : RCMediaMessageContent + +/// 转发的消息会话类型(目前仅支持单聊和群聊)。 +@property (nonatomic, assign, readonly) RCConversationType conversationType; + +/// 转发的消息展示的缩略内容列表 (格式是发送者:缩略内容)。 +@property (nonatomic, readonly) NSArray *summaryList; + +/// 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称)。 +@property (nonatomic, readonly) NSArray *nameList; + +/// 被转发的消息条数。 +@property (nonatomic, assign, readonly) NSUInteger msgNum; + +/// 消息列表。当被转发的消息长度之和小于等于 12K 时才会有此字段,此时不会有 JsonMsgKey 字段。 +/// [ +/// { +/// "fromUserId":"uid_A", +/// "targetId":"group1", +/// "timestamp":1693382006578, +/// "objectName":"RC:TxtMsg", +/// "content":{ +/// "content":"大家觉得这个怎么样?" +/// } +/// } +/// ] +@property (nonatomic, readonly, nullable) NSArray> *> *msgList; + +/// 合并转发的消息列表 Key。当被转发的消息长度之和大于 12K 时才会有此字段,此时不会有 msgList 字段。 +@property (nonatomic, readonly, nullable) NSString *jsonMsgKey; + + +/// 初始化 RCCombineV2Message 消息 +/// +/// - Parameter summaryList: 转发的消息展示的缩略内容列表 +/// - Parameter nameList: 转发的全部消息的发送者名称列表(单聊是经过排重的,群聊是群组名称) +/// - Parameter conversationType: 转发的消息会话类型 +/// - Parameter msgList: 转发的消息体列表 +/// +/// - Returns: 消息实例对象 ++ (instancetype)messageWithSummaryList:(NSArray *)summaryList + nameList:(NSArray *)nameList + conversationType:(RCConversationType)conversationType + messages:(NSArray *)messages; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCommandMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCommandMessage.h new file mode 100644 index 0000000..2bdaf01 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCommandMessage.h @@ -0,0 +1,41 @@ +// +// RCCommandMessage.h +// RongIMLib +// +// Created by 张改红 on 15/12/2. +// Copyright © 2015 年 RongCloud. All rights reserved. +// +#import + +/// 命令消息的类型名 +#define RCCommandMessageIdentifier @"RC:CmdMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 命令消息类 +/// +/// 命令消息类,此消息不存储不计入未读消息数。 +/// 与 RCCommandNotificationMessage 的区别是,此消息不存储,也不会在界面上显示。 +/// +/// - Remark: 通知类消息 +@interface RCCommandMessage : RCMessageContent + +/// 命令的名称 +@property (nonatomic, copy) NSString *name; + +/// 命令的扩展数据 +/// +/// 命令的扩展数据,可以为任意字符串,如存放您定义的 json 数据。 +@property (nonatomic, copy, nullable) NSString *data; + +/// 初始化命令消息 +/// +/// - Parameter name: 命令的名称 +/// - Parameter data: 命令的扩展数据 +/// +/// - Returns: 命令消息对象 ++ (instancetype)messageWithName:(NSString *)name data:(nullable NSString *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCommandNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCommandNotificationMessage.h new file mode 100644 index 0000000..cf68e37 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCommandNotificationMessage.h @@ -0,0 +1,46 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCCommandNotificationMessage.h +// Created by xugang on 14/11/28. + +#import + +/// 命令提醒消息的类型名 +#define RCCommandNotificationMessageIdentifier @"RC:CmdNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 命令提醒消息类 +/// +/// 此消息会进行存储,但不计入未读消息数。 +/// 与 RCCommandMessage 的区别是,此消息会进行存储并在界面上显示。 +/// +/// - Remark: 通知类消息 +@interface RCCommandNotificationMessage : RCMessageContent + +/// 命令提醒的名称 +@property (nonatomic, copy) NSString *name; + +/// 命令提醒消息的扩展数据 +/// +/// 命令提醒消息的扩展数据,可以为任意字符串,如存放您定义的 json 数据。 +@property (nonatomic, copy, nullable) NSString *data; + +/// 初始化命令提醒消息 +/// +/// - Parameter name: 命令的名称 +/// - Parameter data: 命令的扩展数据 +/// +/// - Returns: 命令提醒消息对象 ++ (instancetype)notificationWithName:(NSString *)name data:(nullable NSString *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCContactNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCContactNotificationMessage.h new file mode 100644 index 0000000..72c0b0a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCContactNotificationMessage.h @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCContactNotificationMessage.h +// Created by xugang on 14/11/28. + +#import + +/// 好友请求消息的类型名 +#define RCContactNotificationMessageIdentifier @"RC:ContactNtf" + +/// 请求添加好友 +#define ContactNotificationMessage_ContactOperationRequest @"Request" + +/// 同意添加好友的请求 +#define ContactNotificationMessage_ContactOperationAcceptResponse @"AcceptResponse" + +/// 拒绝添加好友的请求 +#define ContactNotificationMessage_ContactOperationRejectResponse @"RejectResponse" + +NS_ASSUME_NONNULL_BEGIN + +/// 好友请求消息类 +/// +/// 好友请求消息类,此消息会进行存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCContactNotificationMessage : RCMessageContent + +/// 好友请求的当前操作名 +/// +/// 好友请求当前的操作名称,您可以使用预定义好的操作名,也可以是您自己定义的任何操作名。 +/// 预定义的操作名:ContactNotificationMessage_ContactOperationRequest、ContactNotificationMessage_ContactOperationAcceptResponse、ContactNotificationMessage_ContactOperationRejectResponse。 +@property (nonatomic, copy) NSString *operation; + +/// 当前操作发起用户的用户 ID +@property (nonatomic, copy) NSString *sourceUserId; + +/// 当前操作目标用户的用户 ID +@property (nonatomic, copy) NSString *targetUserId; + +/// 当前操作的消息内容 +/// +/// 当前操作的消息内容,如同意、拒绝的理由等。 +@property (nonatomic, copy) NSString *message; + +/// 初始化好友请求消息 +/// +/// - Parameter operation: 好友请求当前的操作名 +/// - Parameter sourceUserId: 当前操作发起用户的用户 ID +/// - Parameter targetUserId: 当前操作目标用户的用户 ID +/// - Parameter message: 当前操作的消息内容 +/// - Parameter extra: 当前操作的附加信息 +/// - Returns: 好友请求消息对象 +/// +/// 融云不介入您的好友关系,所有的好友关系都由您的服务器自己维护。 +/// 所以好友请求的操作名和消息内容、扩展信息您均可以自己定制,只要您发送方和接收方针对具体字段内容做好 UI 显示即可。 ++ (instancetype)notificationWithOperation:(NSString *)operation + sourceUserId:(NSString *)sourceUserId + targetUserId:(NSString *)targetUserId + message:(NSString *)message + extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversation.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversation.h new file mode 100644 index 0000000..26d5711 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversation.h @@ -0,0 +1,186 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCConversation.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptInfo, RCGroupReadReceiptInfoV2, RCMessageConfig; +@class RCReceivedStatusInfo, RCMessage; +@class RCEditedMessageDraft; + +/// 会话类,包含会话的所有属性。 +@interface RCConversation : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 该会话的业务标识,长度限制 20 字符 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 会话的标题 +@property (nonatomic, copy, nullable) NSString *conversationTitle; + +/// 会话中的未读消息数量 +@property (nonatomic, assign) int unreadMessageCount; + +/// 是否置顶,默认值为 NO +/// 如果设置了置顶,在 IMKit 的 RCConversationListViewController 中会将此会话置顶显示。 +@property (nonatomic, assign) BOOL isTop; + +/// 当前会话在此 tag 下的置顶状态。 +/// 仅在通过 tag 获取会话时 getConversationsFromTagByPage,此字段有效。 +@property (nonatomic, assign) BOOL isTopForTag; + +/// 会话中最后一条消息的接收状态 +@property (nonatomic, assign) RCReceivedStatus receivedStatus __deprecated_msg("Use receivedStatusInfo instead"); + +/// 会话中最后一条消息的接收状态类 (针对接收的消息生效) +/// - Since: 5.6.8 +@property (nonatomic, strong, nullable) RCReceivedStatusInfo *receivedStatusInfo; + +/// 会话中最后一条消息的发送状态 +@property (nonatomic, assign) RCSentStatus sentStatus; + +/// 会话中最后一条消息的接收时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long receivedTime; + +/// 会话中最后一条消息的发送时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long sentTime; + +/// 会话的操作时间(Unix 时间戳、毫秒),用于分页获取会话列表时传入的时间戳 +/// 初始值与 sentTime 相同,置顶等操作会更新此时间戳 +/// - Since: 5.6.7 +@property (nonatomic, assign) long long operationTime; + +/// 会话中存在的草稿 +@property (nonatomic, copy, nullable) NSString *draft; + +/// 会话中最后一条消息的类型名 +@property (nonatomic, copy, nullable) NSString *objectName; + +/// 会话中最后一条消息的发送者用户 ID +@property (nonatomic, copy, nullable) NSString *senderUserId; + +/// 会话中最后一条消息的消息 ID +@property (nonatomic, assign) long latestMessageId; + +/// 会话中最后一条消息的内容 +@property (nonatomic, strong, nullable) RCMessageContent *latestMessage; + +/// 会话中最后一条的完整消息体 +@property (nonatomic, strong, readonly, nullable) RCMessage *latestRCMessage; + +/// 会话中最后一条消息的方向 +@property (nonatomic, assign) RCMessageDirection latestMessageDirection; + +/// 会话中最后一条消息的 json Dictionary +/// +/// 此字段存放最后一条消息内容中未编码的 json 数据。 +/// SDK 内置的消息,如果消息解码失败,默认会将消息的内容存放到此字段;如果编码和解码正常,此字段会置为 nil。 +@property (nonatomic, strong, nullable) NSDictionary *jsonDict; + +/// 最后一条消息的全局唯一 ID +/// +/// 服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, copy, nullable) NSString *latestMessageUId; + +/// 会话中是否存在被 @ 的消息 +/// +/// 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此状态置成 NO。 +@property (nonatomic, assign, readonly) BOOL hasUnreadMentioned; + +/// 会话中 @ 消息的总个数(包含 @ 我的个数和 @ 所有人的个数) +/// +/// 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此值置成 0。 +@property (nonatomic, assign) int mentionedCount; + +/// 超级群会话中 @ 我的消息的个数 +/// +/// 只有超级群获取频道列表时有效 +/// 在清除会话未读数(clearMessagesUnreadStatus:targetId:)的时候,会将此值置成 0。 +@property (nonatomic, assign) int mentionedMeCount; + +/// 会话是否是免打扰状态 +@property (nonatomic, assign) RCConversationNotificationStatus blockStatus; + +/// 最后一条消息的阅读回执状态 +@property (nonatomic, strong, nullable) RCReadReceiptInfo *latestMessageReadReceiptInfo; + +/// 最后一条消息的群阅读回执状态 +/// +/// 如果是调用 RCGroupReadReceiptV2Manager 中方法实现群已读回执功能,此参数才有效,否则请使用 readReceiptInfo 属性获取阅读回执状态 +/// 如果使用 IMKit,请用 readReceiptInfo 属性 +@property (nonatomic, strong, nullable) RCGroupReadReceiptInfoV2 *latestMessageGroupReadReceiptInfoV2; + +/// 最后一条消息的消息配置 +@property (nonatomic, strong, nullable) RCMessageConfig *latestMessageMessageConfig; + +/// 最后一条消息是否可以包含扩展信息 +/// +/// 该属性在消息发送时确定,发送之后不能再做修改 +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +@property (nonatomic, assign) BOOL latestMessageCanIncludeExpansion; + +/// 最后一条消息的扩展信息列表 +/// +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +/// 默认消息扩展字典 key 长度不超过 32,value 长度不超过 4096,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300 +@property (nonatomic, strong, nullable) NSDictionary *latestMessageExpansion; + +/// 免打扰级别 +@property (nonatomic, assign) RCPushNotificationLevel notificationLevel; + +/// 超级群频道类型,只有 ConversationType 为超级群时该字段有效,非超级群时为 0 +@property (nonatomic, assign) RCUltraGroupChannelType channelType; + +/// 会话中第一条未读消息时间戳(Unix 时间戳、毫秒) +/// +/// 仅支持 超级群会话 +/// - Since: 5.2.5 +@property (nonatomic, assign) long long firstUnreadMsgSendTime; + +/// 文本消息翻译方式。 +/// +/// - Since: 5.24.0 +@property (nonatomic, assign) RCTranslateStrategy translateStrategy; + +@property (nonatomic, strong) RCEditedMessageDraft *editedMessageDraft; + +@end + +@interface RCConversation (deprecated) + +/// 会话中最后一条消息的消息 ID +@property (nonatomic, assign) long lastestMessageId __deprecated_msg("Use latestMessageId instead"); + +/// 会话中最后一条消息的内容 +@property (nonatomic, strong, nullable) RCMessageContent *lastestMessage __deprecated_msg("Use latestMessage instead"); + +/// 会话中最后一条消息的方向 +@property (nonatomic, assign) + RCMessageDirection lastestMessageDirection __deprecated_msg("Use latestMessageDirection instead"); + +/// 最后一条消息的全局唯一 ID +/// +/// 服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, copy, nullable) NSString *lastestMessageUId __deprecated_msg("Use latestMessageUId instead"); + + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationBatchDeletionParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationBatchDeletionParams.h new file mode 100644 index 0000000..02e77d6 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationBatchDeletionParams.h @@ -0,0 +1,29 @@ +// +// RCConversationBatchDeletionParams.h +// RongIMLibCore +// +// Created by RongCloud on 2025/8/5. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class RCConversationIdentifier; +@interface RCConversationBatchDeletionParams : NSObject + +/// 待删除的会话列表,最多同时删除 100 个会话 +@property (nonatomic, copy) NSArray *identifiers; + +/// 是否同步删除服务器端会话 +@property (nonatomic, assign) BOOL deleteRemotely; + +///是否同步删除会话中的历史消息 +/// 1. 当 deleteRemotely && deleteMessages 为 YES 时,将同时删除本地和远端会话中的历史消息 +/// 2. 当 deleteRemotely 为 NO 而 deleteMessages 为 YES 时,只删除本地会话中的历史消息 +/// 3. 当 deleteMessages 为 NO,只删会话 +@property (nonatomic, assign) BOOL deleteMessages; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationChannelProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationChannelProtocol.h new file mode 100644 index 0000000..c09a094 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationChannelProtocol.h @@ -0,0 +1,126 @@ +// +// RCConversationChannelProtocol.h +// RongIMLibCore +// +// Created by Sin on 2021/3/5. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#ifndef RCConversationChannelProtocol_h +#define RCConversationChannelProtocol_h + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCUserTypingStatus; +@protocol RCConversationChannelMessageReceiptDelegate +@optional +/*! + 请求消息已读回执(收到需要阅读时发送回执的请求,收到此请求后在会话页面已经展示该 messageUId 对应的消息或者调用 + getHistoryMessages 获取消息的时候,包含此 messageUId 的消息,需要调用 sendMessageReadReceiptResponse + 接口发送消息阅读回执) + + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + */ +- (void)onMessageReceiptRequest:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId; + +/*! + 消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数) + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + - Parameter userIdList: 已读userId列表 + */ +- (void)onMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId + readerList:(NSMutableDictionary *)userIdList; + +@end + +@protocol RCConversationChannelTypingStatusDelegate +/*! + 用户输入状态变化的回调 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标ID + - Parameter channelId: 所属会话的业务标识 + - Parameter userTypingStatusList: 正在输入的RCUserTypingStatus列表(nil表示当前没有用户正在输入) + + 当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUserTypingStatus列表。 + */ +- (void)onTypingStatusChanged:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + status:(nullable NSArray *)userTypingStatusList; +@end + +#pragma mark - 超级群会话代理 + +@protocol RCUltraGroupConversationDelegate + +//超级群会话列表与会话最后一条消息同步完成 +- (void)ultraGroupConversationListDidSync; +@end + +@protocol RCUltraGroupChannelDelegate + +/*! + 超级群类型变更通知 + 1. 公有频道变私有频道时,公有频道所有用户会收到该通知 + a. 在私有频道白名单内的用户,收到的变更类型是 PublicToPrivate(公有频道变私有频道前,可以提前将用户加入私有频道白名单) + b. 不在私有频道白名单的其他用户,变更类型为 PublicToPrivateUserNotIn + + 2. 私有频道变公有频道时,私有频道白名单中的用户收到通知,变更类型为 PrivateToPublic + + - Parameter infoList: 频道变更信息 + + 当客户端收到频道变更时,会回调此接口,通知发生变化的会话频道列表。 + 该功能仅支持超级群。 + */ +- (void)ultraGroupChannelTypeDidChanged:(NSArray *)infoList; + +/*! + 频道白名单用户被移除通知(当前仅支持私有频道) + 1. 公有频道时,将用户从私有频道白名单移除时,不通知 + 2. 私有频道时,将用户从白名单移除时,仅通知私有频道所有用户,含被踢的用户 + 3. 清理本地数据 + a. 当被踢用户为当前用户时:用户本地会话删除,本地会话的消息保留 + b. 当被踢用户为其他人时:不做任何处理 + + - Parameter infoList: 频道变更信息 + + 当客户端收到用户被移除频道时,会回调此接口,通知发生变化的会话频道列表。 + 该功能仅支持超级群。 + */ +- (void)ultraGroupChannelUserDidKicked:(NSArray *)infoList; + + +/*! + 删除频道通知,可以认为是频道解散。 + 1. 公有频道时,删除频道通知频道中所有人 + 2. 私有频道时,删除频道通知白名单中所有人 + 3. 清理本地数据:用户本地会话删除,本地会话的消息保留 + + - Parameter infoList: 频道变更信息 + + 当客户端收到频道解散时,会回调此接口,通知发生变化的会话频道列表。 + 该功能仅支持超级群。 + */ +- (void)ultraGroupChannelDidDisbanded:(NSArray *)infoList; + + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCConversationChannelProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationFilterOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationFilterOption.h new file mode 100644 index 0000000..af1f344 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationFilterOption.h @@ -0,0 +1,51 @@ +// +// RCConversationFilterOption.h +// RongIMLibCore +// +// Created by chinaspx on 2025/3/25. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 会话类型过滤。 +/// +/// - Since: 5.20.0 +@interface RCConversationTypeFilter : NSObject + +/// 会话类型 +@property (nonatomic, assign, readonly) RCConversationType type; + +/// 频道 ID,有效值:包含 @"" 或有效字符串,无效值:nil 不包含 channelId 的条件查询 +/// 单群聊未启用 channelId 传 nil,启用则传真实有效值 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 构造方法。 +/// - Parameter type: 会话类型。 +- (instancetype)initWithType:(RCConversationType)type; + +@end + +/// 会话列表参数配置。 +/// +/// - Since: 5.20.0 +@interface RCConversationListOption : NSObject + +/// 获取的数量,默认为 20。 +/// 当实际取回的会话数量小于 count 值时,表明已取完数据。 +@property (nonatomic, assign) NSInteger count; + +/// 会话的时间戳,单位:毫秒。获取这个时间戳之前的会话列表,0 表示从最新开始获取。 +@property (nonatomic, assign) long long startTime; + +/// 查询结果的排序方式,是否置顶优先,传 YES 表示置顶会话优先返回,否则结果只以会话时间排序。 +/// 默认为 YES。 +@property (nonatomic, assign) BOOL topPriority; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationIdentifier.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationIdentifier.h new file mode 100644 index 0000000..6b57130 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationIdentifier.h @@ -0,0 +1,44 @@ +// +// RCConversationIdentifier.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 会话标识 +@interface RCConversationIdentifier : NSObject +/// 会话类型 +@property (nonatomic, assign) RCConversationType type; +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 频道 ID +/// - Since: 5.6.7 +@property (nonatomic, copy, nullable) NSString *channelId; + + +/// 初始化方法 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +- (instancetype)initWithConversationIdentifier:(RCConversationType)type targetId:(NSString *)targetId; + +/// 初始化方法 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 id +/// - Parameter channel: 频道 id +/// - Since: 5.6.7 +- (instancetype)initWithConversationIdentifier:(RCConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationStatusInfo.h new file mode 100644 index 0000000..c2844b7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationStatusInfo.h @@ -0,0 +1,69 @@ +// +// RCConversationStatusInfo.h +// RongIMLib +// +// Created by liyan on 2020/5/13. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +#import + +/// 会话状态类型 + +typedef NS_ENUM(NSUInteger, RCConversationStatusType) { + /// 免打扰 + RCConversationStatusType_Mute = 1, + + /// 置顶 + RCConversationStatusType_Top = 2, + /// 翻译 + RCConversationStatusType_Translation = 4 +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCConversationStatusInfo : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 所属会话的业务标识 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 会话状态改变的类型 +@property (nonatomic, assign) RCConversationStatusType conversationStatusType; + +/*! + 如果 conversationStatusType = RCConversationStatusType_Mute,conversationStatusValue = 1 是提醒,conversationStatusValue = 0 是免打扰。 + + 如果 conversationStatusType = RCConversationStatusType_Top,conversationStatusValue = 0 是不置顶,conversationStatusValue = 1 是置顶。 + + 如果 conversationStatusType = RCConversationStatusType_Translation,conversationStatusValue 代表以下功能: + RCTranslateStrategyDefault = 0, 默认,会跟随用户级别的自动翻译方式。 + RCTranslateStrategyAutoOn = 1,自动翻译 + RCTranslateStrategyAutoOff = 2, 手动翻译 + + +*/ +@property (nonatomic, assign) int conversationStatusValue; + +/*! + 会话免打扰类型 + + 当 conversationStatusType = RCConversationStatusType_Mute 时,notificationLevel 值为有效值。 +*/ +@property (nonatomic, assign) RCPushNotificationLevel notificationLevel; + +@end + +@interface RCConversationStatusInfo (deprecated) + +@property (nonatomic, assign) int conversationStatusvalue __deprecated_msg("Use conversationStatusValue instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationTagInfo.h new file mode 100644 index 0000000..7397206 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationTagInfo.h @@ -0,0 +1,25 @@ +// +// ConversationTagInfo.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 会话所属的标签信息 +@interface RCConversationTagInfo : NSObject + +/// 标签 ID +@property (nonatomic, strong) RCTagInfo *tagInfo; + +/// 会话是否置顶 +@property (nonatomic, assign) BOOL isTop; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationTopOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationTopOption.h new file mode 100644 index 0000000..3e5c54c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationTopOption.h @@ -0,0 +1,31 @@ +// +// RCConversationTopOption.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/3. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 设置置顶的配置信息。 +/// +/// - Since: 5.20.0 +@interface RCConversationTopOption : NSObject + +/// 是否更新会话的操作时间。默认值为 YES。 +@property (nonatomic, assign) BOOL needUpdateTime; + +/// 会话不存在时,是否需要创建会话。默认值为 YES。 +@property (nonatomic, assign) BOOL needCreateConversation; + +/// 初始化方法。 +/// - Parameter needUpdateTime: 是否更新时间。 +/// - Parameter needCreateConversation: 是否创建会话。 +- (instancetype)initWithNeedUpdateTime:(BOOL)needUpdateTime needCreateConversation:(BOOL)needCreateConversation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationUnreadInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationUnreadInfo.h new file mode 100644 index 0000000..03d333d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCConversationUnreadInfo.h @@ -0,0 +1,42 @@ +// +// RCConversationUnreadInfo.h +// RongIMLibCore +// +// Created by shuai shao on 2023/6/2. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCConversationUnreadInfo : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 该会话的业务标识,长度限制 20 字符 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 会话中的未读消息数量 +@property (nonatomic, assign) int unreadMessageCount; + +/// 会话中 @ 消息的总个数(包含 @ 我的个数和 @ 所有人的个数) +@property (nonatomic, assign) int mentionedCount; + +/// 超级群会话中 @ 我的消息的个数 +/// 只有超级群获取频道列表时有效 +@property (nonatomic, assign) int mentionedMeCount; + +/// 免打扰级别 +@property (nonatomic, assign) RCPushNotificationLevel notificationLevel; + +/// 初始化 +- (instancetype)initWithConversation:(RCConversation *)conversation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCoreClient+Deprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCoreClient+Deprecated.h new file mode 100644 index 0000000..274fc24 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCoreClient+Deprecated.h @@ -0,0 +1,1902 @@ +// +// RCCoreClient+Deprecated.h +// RongIMLibCore +// +// Created by shuai shao on 2023/1/29. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/*! + - Since: 5.4.1 + - Warning: 本文件的方法已经过期,请您替换 RCCoreClient 中的方法。 + */ +@interface RCCoreClient (Deprecated) + +#pragma mark - SDK初始化 + +/// 初始化融云 SDK +/// +/// - Parameter appKey: 从融云开发者平台创建应用后获取到的 App Key +/// 初始化后,SDK 会监听 app 生命周期,用于判断应用处于前台、后台,根据前后台状态调整链接心跳 +/// +/// 您在使用融云 SDK 所有功能(包括显示 SDK 中或者继承于 SDK 的 View)之前,您必须先调用此方法初始化 SDK。 +/// 在 App 整个生命周期中,您只需要执行一次初始化。 +/// +/// **升级说明:** +/// **从 2.4.1 版本开始,为了兼容 Swift 的风格与便于使用,将原有的 init: 方法升级为此方法,方法的功能和使用均不变。** +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法初始化 SDK; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法初始化,而不要使用此方法。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)initWithAppKey:(NSString *)appKey __deprecated_msg("Use [RCCoreClient initWithAppKey:option:] instead"); + +#pragma mark-- 监听器 + +/// 设置 IMLibCore 的连接状态监听器 +/// +/// - Parameter delegate: IMLibCore 连接状态监听器 +/// +/// - Warning: 如果您使用 IMLibCore,可以设置并实现此 Delegate 监听连接状态变化; +/// 如果您使用 IMKit,请使用 RCIM 中的 connectionStatusDelegate 监听连接状态变化,而不要使用此方法,否则会导致 IMKit +/// 中无法自动更新 UI! +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCConnectionStatusChangeDelegate:(id)delegate + __deprecated_msg("Use [RCCoreClient addConnectionStatusChangeDelegate:] instead"); + +/// 设置 IMLibCore 的消息接收监听器 +/// +/// - Parameter delegate: IMLibCore 消息接收监听器 +/// - Parameter userData: 用户自定义的监听器 Key 值,可以为 nil +/// +/// +/// 设置 IMLibCore 的消息接收监听器请参考 RCCoreClient 的 setReceiveMessageDelegate:object:方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以设置并实现此 Delegate 监听消息接收; +/// 如果您使用 IMKit,请使用 RCIM 中的 receiveMessageDelegate 监听消息接收,而不要使用此方法,否则会导致 IMKit +/// 中无法自动更新 UI! +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setReceiveMessageDelegate:(id)delegate + object:(nullable id)userData + __deprecated_msg("Use [RCCoreClient addReceiveMessageDelegate:] instead"); + +#pragma mark - 设置导航服务器和上传文件服务器(仅限独立数据中心使用,使用前必须先联系商务开通) + +/// 设置导航服务器和上传文件服务器信息 +/// +/// - Parameter naviServer: 导航服务器地址,具体的格式参考下面的说明 +/// - Parameter fileServer: 文件服务器地址,具体的格式参考下面的说明 +/// - Returns: 是否设置成功 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。必须在 SDK init 之前进行设置。 +/// +/// naviServer 必须为有效的服务器地址,fileServer 如果想使用默认的,可以传 nil。 +/// naviServer 和 fileServer 的格式说明: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port" 或 https://cn.xxx.com 或 cn.xxx.com【SDK 默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 +/// 端口。(iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 iOS 官方开发 +/// ⽂档中的 ATS 设置说明。链接如下:https://developer.apple.com/documentation/security/preventing_insecure_network_connections#3138036) +/// +/// 本接口和 initWithAppKey:option: 中 RCInitOption 传入的 naviServer 和 fileServer 效果一致,任一种设置都生效 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (BOOL)setServerInfo:(NSString *)naviServer + fileServer:(nullable NSString *)fileServer + __deprecated_msg("Use [RCCoreClient initWithAppKey:option:] instead"); + +/// 设置统计服务器的信息 +/// +/// - Parameter statisticServer: 统计服务器地址,具体的格式参考下面的说明 +/// - Returns: 是否设置成功 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。必须在 SDK init 和 setDeviceToken 之前进行设置。 +/// +/// statisticServer 必须为有效的服务器地址,否则会造成推送等业务不能正常使用。 +/// 格式说明: +/// 1、如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK 默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2、如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 +/// 端口。(iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 iOS 官方开发 +/// ⽂档中的 ATS 设置说明。链接如下:https://developer.apple.com/documentation/security/preventing_insecure_network_connections#3138036) +/// 本接口和 initWithAppKey:option: 中 RCInitOption 传入的 statisticServer 效果一致,任一种设置都生效 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (BOOL)setStatisticServer:(NSString *)statisticServer + __deprecated_msg("Use [RCCoreClient initWithAppKey:option:] instead"); + + +#pragma mark-- config +/** + 语音消息采样率,默认 8KHz + + + 2.9.12 之前的版本只支持 8KHz。如果设置为 16KHz,老版本将无法播放 16KHz 的语音消息。 + 客服会话只支持 8KHz。 + + - Remark: 功能设置 + - Since: 5.0.0 + */ +@property (nonatomic, assign) RCSampleRate sampleRate __attribute__((deprecated)); + +#pragma mark - 消息发送 - + +/*! + 发送消息 + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, + messageId:消息的ID] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent ,用于显示;二是 pushData ,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil ,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCCoreClient sendMessage:targetId:content:pushContent:pushData:attached:success:error:] instead"); + +/*! + 发送消息 + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter option: 消息的相关配置 + - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, + messageId: 消息的 ID] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCCoreClient sendMessage:targetId:content:pushContent:pushData:option:attached:success:error:] instead"); + +/*! + 发送媒体消息(图片消息或文件消息) + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 + <= progress <= 100, messageId:消息的 ID] + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendMediaMessage:targetId:content:pushContent:pushData:attached:progress:success:error:cancel:] instead"); + +/*! + 发送媒体消息(上传图片或文件等媒体信息到指定的服务器) + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 + [uploadListener:当前的发送进度监听] + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 + <= progress <= 100, messageId:消息的ID] + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] + - Returns: 发送的消息实体 + + + 如果您需要上传图片到自己的服务器并使用 IMLibCore,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器并使用 IMLibCore,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + uploadPrepare: + (nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg("Use [RCCoreClient " + "sendMediaMessage:targetId:content:pushContent:pushData:attached:uploadPrepare:progress:success:" + "error:cancel:] instead"); + +/*! + 发送消息 + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [successMessage: 消息实体] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, errorMessage:消息实体] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent ,用于显示;二是 pushData ,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil ,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + __deprecated_msg("Use [RCCoreClient sendMessage: pushContent:pushData:attached:successBlock:errorBlock:] instead"); + +/*! + 发送媒体消息(上传图片或文件等媒体信息到指定的服务器) + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 + [uploadListener:当前的发送进度监听] + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 + <= progress <= 100, messageId:消息的ID] + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] + - Returns: 发送的消息实体 + + + 如果您需要上传图片到自己的服务器并使用 IMLibCore,构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器并使用 IMLibCore,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Remark: 消息操作 + - Since: 5.2.1 + */ +- (nullable RCMessage *)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + uploadPrepare: + (nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendMediaMessage:pushContent:pushData:attached:uploadPrepare:progress:success:error:cancel:] instead"); + +/*! + 发送媒体消息(图片消息或文件消息) + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 <= progress <= 100, progressMessage:消息实体] + - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码, errorMessage:消息实体] + - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock + __deprecated_msg( + "Use [RCCoreClient sendMediaMessage:pushContent:pushData:attached:progress:successBlock:errorBlock:cancel:] " + "instead"); + +#pragma mark - 插入消息 - + +/*! + 插入向外发送的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter sentStatus: 发送状态 + - Parameter content: 消息的内容 + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + __deprecated_msg("Use [RCCoreClient insertOutgoingMessage:targetId:sentStatus:content:completion:] instead"); + +/*! + 插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) + (该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter sentStatus: 发送状态 + - Parameter content: 消息的内容 + - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。如果 sentTime<=0,则被忽略,会以插入时的时间为准。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg( + "Use [RCCoreClient insertOutgoingMessage:targetId:sentStatus:content:sentTime:completion:] instead"); + +/*! + 插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter senderUserId: 发送者 ID + - Parameter receivedStatus: 接收状态 + - Parameter content: 消息的内容 + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + __deprecated_msg("Use [RCCoreClient " + "insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:completion:] instead"); + +/*! + 插入接收的消息(此方法如果 sentTime + 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter senderUserId: 发送者 ID + - Parameter receivedStatus: 接收状态 + - Parameter content: 消息的内容 + - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒 (传 0 会按照本地时间插入) + - Returns: 插入的消息实体 + + 此方法不支持聊天室的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + __deprecated_msg( + "Use [RCCoreClient " + "insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:sentTime:completion:] instead"); + +/// 异步插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// 此方法不支持聊天室的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg( + "Use [RCCoreClient insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:completion] instead"); + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatus: 接收状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// 此方法不支持聊天室的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatus:(RCReceivedStatus)receivedStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion + __deprecated_msg( + "Use [RCCoreClient insertIncomingMessage:targetId:senderUserId:receivedStatusInfo:content:sentTime:completion] " + "instead"); + +/*! + 批量插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) + RCMessage 下列属性会被入库,其余属性会被抛弃 + conversationType 会话类型 + targetId 会话 ID + messageUId 消息唯一 ID, 此属性入库 5.3.5 开始支持 + messageDirection 消息方向 + senderUserId 发送者 ID + receivedStatus 接收状态;消息方向为接收方,并且 receivedStatus 为 ReceivedStatus_UNREAD 时,该条消息未读 + sentStatus 发送状态 + content 消息的内容 + sentTime 消息发送的 Unix 时间戳,单位为毫秒 ,会影响消息排序 + extra RCMessage 的额外字段 + + 此方法不支持聊天室的会话类型。每批最多处理 500 条消息,超过 500 条返回 NO + 消息的未读会累加到会话的未读数上 + + - Remark: 消息操作 + - Since: 5.1.1 + */ +- (BOOL)batchInsertMessage:(NSArray *)msgs + __deprecated_msg("Use [RCCoreClient batchInsertMessage:completion:] instead"); + +#pragma mark - 定向消息 - + +/*! + 发送定向消息 + + - Parameter conversationType: 发送消息的会话类型 + - Parameter targetId: 发送消息的会话 ID + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter content: 消息的内容 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] + - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, + messageId:消息的 ID] + + - Returns: 发送的消息实体 + + 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + 如果您使用 IMLibCore,可以使用此方法发送定向消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送定向消息,否则不会自动更新 UI。 + userIdList里ID个数不能超过300,超过会被截断。 + + - Warning: 此方法目前仅支持普通群组和讨论组。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendDirectionalMessage:targetId:toUserIdList:content:pushContent:pushData:attached:success:error:] instead"); + +/*! + 发送定向消息 + + - Parameter message: 消息实体 + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] + + - Returns: 发送的消息实体 + + 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + userIdList里ID个数不能超过300,超过会被截断。 + + - Warning: 此方法目前仅支持普通群组和讨论组。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock: + (nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + __deprecated_msg( + "Use [RCCoreClient sendDirectionalMessage:toUserIdList:pushContent:pushData:attached:successBlock:errorBlock:] " + "instead"); + +/*! + 发送定向消息 + + - Parameter message: 消息实体 + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter option: 消息的相关配置 + - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] + + - Returns: 发送的消息实体 + + 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + userIdList里ID个数不能超过300,超过会被截断。 + + - Warning: 此方法目前仅支持普通群组和讨论组。 + + - Remark: 消息操作 + - Since: 5.1.2 + */ +- (nullable RCMessage *)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(RCSendMessageOption *)option + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock: + (nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + __deprecated_msg( + "Use [RCCoreClient " + "sendDirectionalMessage:toUserIdList:pushContent:pushData:option:attached:successBlock:errorBlock:] instead"); + +/*! + 发送定向媒体消息(图片消息或文件消息) + + - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) + - Parameter userIdList: 接收消息的用户 ID 列表 + - Parameter pushContent: 接收方离线时需要显示的远程推送内容 + - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 + - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度, 0 <= progress <= 100, progressMessage:消息实体] + - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] + - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码, errorMessage:消息实体] + - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] + - Returns: 发送的消息实体 + + 当接收方离线并允许远程推送时,会收到远程推送。 + 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 + + SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 + 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 + + 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, + 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, + 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 + sendMessage:targetId:content:pushContent:pushData:success:error:方法 + 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 + + - Warning: 如果您使用 IMLib,可以使用此方法发送媒体消息; + 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 + + - Remark: 消息操作 + - Since: 5.2.5 + */ +- (nullable RCMessage *) + sendDirectionalMediaMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock + __deprecated_msg("Use [RCCoreClient " + "sendDirectionalMediaMessage:toUserIdList:pushContent:pushData:attached:progress:successBlock:" + "errorBlock:cancel:] instead"); + +#pragma mark - 消息操作 - + +/*! + 获取某个会话中指定数量的最新消息实体 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + __deprecated_msg("Use [RCCoreClient getLatestMessages:targetId:count:completion:] instead"); + +/*! + 获取会话中,从指定消息之前、指定数量的最新消息实体 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter oldestMessageId: 截止的消息 ID [0或-1 代表从最近的发送时间查起] + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,oldestMessageId 之前的、指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 oldestMessageId 对应那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + 如: + oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg("Use [RCCoreClient getHistoryMessages:targetId:oldestMessageId:count:completion:] instead"); +/*! + 获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil + - Parameter oldestMessageId: 截止的消息 ID [0或-1 代表从最近的发送时间查起] + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,oldestMessageId 之前的、指定数量和消息类型的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 oldestMessageId 对应的那条消息,如果会话中的消息数量小于参数 count + 的值,会将该会话中的所有消息返回。 + 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:objectName:oldestMessageId:count:completion:] instead"); + +/*! + 获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil + - Parameter baseMessageId: 当前的消息 ID [0或-1 代表从最近的发送时间查起] + - Parameter isForward: 查询方向 true 为向前,false 为向后 + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,baseMessageId + 之前或之后的、指定数量、消息类型和查询方向的最新消息实体,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 baseMessageId 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:objectName:baseMessageId:isForward:count:completion:] instead"); + +/*! + 获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter objectNames: 消息内容的类型名称列表 + - Parameter sentTime: 当前的消息时间戳 + - Parameter isForward: 查询方向 true 为向前,false 为向后 + - Parameter count: 需要获取的消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 此方法会获取该会话中,sentTime + 之前或之后的、指定数量、指定消息类型(多个)的消息实体列表,返回的消息实体按照时间从新到旧排列。 + 返回的消息中不包含 sentTime 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:objectNames:sentTime:isForward:count:completion:] instead"); + +/*! + 在会话中搜索指定消息的前 beforeCount 数量和后 afterCount + 数量的消息。返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter sentTime: 消息的发送时间 + - Parameter beforeCount: 指定消息的前部分消息数量 + - Parameter afterCount: 指定消息的后部分消息数量 + - Returns: 消息实体 RCMessage 对象列表 + + + 获取该会话的这条消息及这条消息前 beforeCount 条和后 afterCount 条消息,如前后消息不够则返回实际数量的消息。 + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + __deprecated_msg( + "Use [RCCoreClient getHistoryMessages:targetId:sentTime:beforeCount:afterCount:completion:] instead"); + +/// 获取历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// +/// - Remark: 消息操作 +/// - Since: 5.1.2 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, RCErrorCode code))complete + __deprecated_msg("Use [RCCoreClient getMessages:targetId:option:completion:error:] instead"); + +/*! + 获取会话中 @ 提醒自己的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + + + 此方法从本地获取被@提醒的消息(最多返回 10 条信息) + - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: + 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 + + - Remark: 高级功能 + - Since: 5.0.0 + */ +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getUnreadMentionedMessages:targetId:completion:] instead"); + +/*! + 获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter count: 未读的 @ 消息,取值范围 [1,100] + - Parameter desc: 是否是降序查 + 假如有 1000 条未读的 @ 消息,取 100 条未读 + desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 + desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 + + - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: + 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 + - Since: 5.2.5 + */ +- (nullable NSArray *)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + desc:(BOOL)desc + __deprecated_msg("Use [RCCoreClient getUnreadMentionedMessages:targetId:count:desc:completion: instead"); + +/*! + 获取消息的发送时间(Unix 时间戳、毫秒) + + - Parameter messageId: 消息 ID + - Returns: 消息的发送时间(Unix 时间戳、毫秒) + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (long long)getMessageSendTime:(long)messageId + __deprecated_msg("Use [RCCoreClient getMessageSendTime:completion:] instead"); + + +/*! + 通过 messageId 获取消息实体 + + - Parameter messageId: 消息 ID(数据库索引唯一值) + - Returns: 通过消息 ID 获取到的消息实体,当获取失败的时候,会返回 nil。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)getMessage:(long)messageId + __deprecated_msg("Use [RCCoreClient getMessage:completion:] instead"); + +/*! + 通过全局唯一 ID 获取消息实体 + + - Parameter messageUId: 全局唯一 ID(服务器消息唯一 ID) + - Returns: 通过全局唯一ID获取到的消息实体,当获取失败的时候,会返回 nil。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable RCMessage *)getMessageByUId:(NSString *)messageUId + __deprecated_msg("Use [RCCoreClient getMessageByUId:completion:] instead"); + +/** + * 获取会话里第一条未读消息。 + * + * - Parameter conversationType: 会话类型 + * - Parameter targetId: 会话 ID + * - Returns: 第一条未读消息的实体。 + * - Remark: 消息操作 + * - Since: 5.0.0 + */ +- (nullable RCMessage *)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getFirstUnreadMessage:targetId:completion:] instead"); + +/*! + 删除消息 + + - Parameter messageIds: 消息 ID 的列表,元素需要为 NSNumber 类型 + - Returns: 是否删除成功 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)deleteMessages:(NSArray *)messageIds + __deprecated_msg("Use [RCCoreClient deleteMessages:completion:] instead"); + +/*! + 删除某个会话中的所有消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 是否删除成功 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient clearMessages:targetId:completion:] instead"); + +/*! + 设置消息的附加信息 + + - Parameter messageId: 消息 ID + - Parameter value: 附加信息,最大 1024 字节 + - Returns: 是否设置成功 + + 用于扩展消息的使用场景。只能用于本地使用,无法同步到远端。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)setMessageExtra:(long)messageId + value:(NSString *)value + __deprecated_msg("Use [RCCoreClient setMessageExtra:value:completion:] instead"); + +/*! + 设置消息的接收状态 + + - Parameter messageId: 消息 ID + - Parameter receivedStatus: 消息的接收状态 + - Returns: 是否设置成功 + + 用于 UI 展示消息为已读,已下载等状态。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)setMessageReceivedStatus:(long)messageId + receivedStatus:(RCReceivedStatus)receivedStatus + __deprecated_msg("Use [RCCoreClient setMessageReceivedStatus:receivedStatusInfo:completion:] instead"); + +/// 异步设置消息的接收状态 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter receivedStatus: 消息的接收状态 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于 UI 展示消息为已读,已下载等状态。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)setMessageReceivedStatus:(long)messageId + receivedStatus:(RCReceivedStatus)receivedStatus + completion:(nullable void (^)(BOOL ret))completion + __deprecated_msg("Use [RCCoreClient setMessageReceivedStatus:receivedStatusInfo:completion] instead"); +/*! + 设置消息的发送状态 + + - Parameter messageId: 消息 ID + - Parameter sentStatus: 消息的发送状态 + - Returns: 是否设置成功 + + 用于 UI 展示消息为正在发送,对方已接收等状态。 + 为了保证 UI 正常显示,5.1.8 版本起不再支持 app 将消息状态设置为 SentStatus_SENDING + + 此方法不支持超级群的会话类型。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (BOOL)setMessageSentStatus:(long)messageId + sentStatus:(RCSentStatus)sentStatus + __deprecated_msg("Use [RCCoreClient setMessageSentStatus:sentStatus:completion:] instead"); +; + +#pragma mark - 会话列表操作 - +/*! + 获取会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取会话列表。 + 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 + 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: + 分页拉取会话列表,否则有可能造成内存过大。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient getConversationList:completion:] instead"); + +/*! + 分页获取会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) + - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取) + - Returns: 会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取会话列表。 + 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getConversationList:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCCoreClient getConversationList:count:startTime:completion:] instead"); + +/*! + 获取单个会话数据 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 会话的对象 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (nullable RCConversation *)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getConversation:targetId:completion:] instead"); + +/*! + 获取会话中的消息数量 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 会话中的消息数量 + + -1 表示获取消息数量出错。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getMessageCount:targetId:completion:] instead"); + +/*! + 删除本地和服务的会话 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Returns: 本地会话是否删除成功 + + 此方法会删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 + - Warning: 此方法会同时删除本地和服务的会话。如果服务的会话删除失败,本地的会话依然会被删除 + SDK 在未连接的情况下,删除服务会话会失败 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient removeConversation:targetId:completion:] instead"); + +/// 异步删除本地会话 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Warning: 此方法会删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion + NS_SWIFT_NAME(removeConversation(_:targetId:completion:)) + __deprecated_msg("Use -[RCCoreClient removeConversation:targetId:isDeleteRemote:success:error:] instead"); + +/*! + 删除指定类型的会话 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 是否删除成功 + + 此方法会从本地存储中删除该会话,同时删除会话中的消息。 + + 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearConversations:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient clearConversations:completion:] instead"); + +/*! + 设置会话的置顶状态 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter isTop: 是否置顶 + - Returns: 设置是否成功 + + 会话不存在时设置置顶,会在会话列表生成会话。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + isTop:(BOOL)isTop + __deprecated_msg("Use [RCCoreClient setConversationToTop:targetId:isTop:completion:] instead"); + +/*! + 获取置顶的会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 置顶的会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取置顶的会话列表。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getTopConversationList:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient getTopConversationList:completion:] instead"); + +/*! + 获取会话的置顶状态 + + - Parameter conversationIdentifier: 会话信息 + + 此方法会从本地数据库中,读取该会话是否置顶。 + + - Remark: 会话 + - Since: 5.1.5 + */ +- (BOOL)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + __deprecated_msg("Use [RCCoreClient getConversationTopStatus:completion:] instead"); + +#pragma mark - 会话中的草稿操作 - +/*! + 获取会话中的草稿信息(用户输入但未发送的暂存消息) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Returns: 该会话中的草稿 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (nullable NSString *)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getTextMessageDraft:targetId:completion:] instead"); + +/*! + 保存草稿信息(用户输入但未发送的暂存消息) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Parameter content: 草稿信息 + - Returns: 是否保存成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(NSString *)content + __deprecated_msg("Use [RCCoreClient saveTextMessageDraft:targetId:content:completion:] instead"); + +/*! + 删除会话中的草稿信息(用户输入但未发送的暂存消息) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Returns: 是否删除成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient clearTextMessageDraft:targetId:completion:] instead"); + + +#pragma mark - 未读消息数 - + +/*! + 获取所有的未读消息数(聊天室会话除外) + + - Returns: 所有的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getTotalUnreadCount __deprecated_msg("Use [RCCoreClient getTotalUnreadCountWith:] instead"); + +/*! + 获取某个会话内的未读消息数(聊天室会话除外) + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标 ID + - Returns: 该会话内的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient getUnreadCount:targetId:completion:] instead"); + +/*! + 获取某个会话内的未读消息数 + + - Parameter conversationIdentifier: 会话信息 + - Parameter messageClassList: 消息类型数组 + - Returns: 该会话内的未读消息数 + + 此方法不支持聊天室和超级群的会话类型。 + + - Remark: 会话 + - Since: 5.1.5 + */ +- (int)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + __deprecated_msg("Use [RCCoreClient getUnreadCount:messageClassList:completion:] instead"); + +/*! + 获取某些会话的总未读消息数 (聊天室会话除外) + + - Parameter conversations: 会话列表 ( RCConversation 对象只需要 conversationType 和 targetId,channelId 按需使用) + - Returns: 传入会话列表的未读消息数 + + conversations会话个数不能超过300,超过会被截断。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getTotalUnreadCount:(NSArray *)conversations + __deprecated_msg("Use [RCCoreClient getTotalUnreadCount:completion:] instead"); + +/*! + 获取某些类型的会话中所有的未读消息数 (聊天室会话除外) + + - Parameter conversationTypes: 会话类型的数组 + - Parameter isContain: 是否包含免打扰消息的未读数 + - Returns: 该类型的会话中所有的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadCount:(NSArray *)conversationTypes + containBlocked:(bool)isContain + __deprecated_msg("Use [RCCoreClient getUnreadCount:containBlocked:completion:] instead"); + +/*! + 获取某个类型的会话中所有的未读消息数(聊天室会话除外) + + - Parameter conversationTypes: 会话类型的数组 + - Returns: 该类型的会话中所有的未读消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadCount:(NSArray *)conversationTypes + __deprecated_msg("Use [RCCoreClient getUnreadCount:completion:] instead"); + +/*! + 获取某个类型的会话中所有未读的被 @ 的消息数 + + - Parameter conversationTypes: 会话类型的数组 + - Returns: 该类型的会话中所有未读的被 @ 的消息数 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (int)getUnreadMentionedCount:(NSArray *)conversationTypes + __deprecated_msg("Use [RCCoreClient getUnreadMentionedCount:completion:] instead"); + +/*! + 清除某个会话中的未读消息数 + + - Parameter conversationType: 会话类型,不支持聊天室 + - Parameter targetId: 会话 ID + - Returns: 是否清除成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + __deprecated_msg("Use [RCCoreClient clearMessagesUnreadStatus:targetId:completion:] instead"); + +/*! + 清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) + + - Parameter conversationType: 会话类型,不支持聊天室 + - Parameter targetId: 会话 ID + - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳 + - Returns: 是否清除成功 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (BOOL)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + __deprecated_msg("Use [RCCoreClient clearMessagesUnreadStatus:targetId:time:completion:] instead"); + +/// 下载消息内容中的媒体信息 +/// +/// - Parameter messageId: 媒体消息的 messageId +/// - Parameter progressBlock: 消息下载进度更新的回调 [progress:当前的下载进度,0 <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 [mediaPath:下载成功后本地存放的文件路径] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 多媒体下载成功后,会更新消息体的 localPath。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (void)downloadMediaMessage:(long)messageId + progress:(nullable void (^)(int progress))progressBlock + success:(nullable void (^)(NSString *mediaPath))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancel:(nullable void (^)(void))cancelBlock + __deprecated_msg( + "Use [RCCoreClient downloadMediaMessage:progressBlock:successBlock:errorBlock:cancelBlock:] instead"); + +/// 取消下载中的媒体信息 +/// +/// - Parameter messageId: 媒体消息的 messageId +/// +/// - Returns: YES 表示取消成功,NO 表示取消失败,即已经下载完成或者消息不存在。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (BOOL)cancelDownloadMediaMessage:(long)messageId + __deprecated_msg("Use [RCCoreClient cancelDownloadMediaMessage:successBlock:errorBlock:] instead"); + +/// 取消下载中的媒体信息 +/// +/// - Parameter mediaUrl: 媒体消息 Url +/// +/// - Returns: YES 表示取消成功,NO 表示取消失败,即已经下载完成或者消息不存在。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (BOOL)cancelDownloadMediaUrl:(NSString *)mediaUrl + __deprecated_msg("Use [RCCoreClient cancelDownloadMediaUrl:successBlock:errorBlock:] instead"); + +#pragma mark - 会话的消息提醒 - + +/*! + 设置会话的消息提醒状态 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter isBlocked: 是否屏蔽消息提醒 + - Parameter successBlock: 设置成功的回调 + [nStatus:会话设置的消息提醒状态] + - Parameter errorBlock: 设置失败的回调 [status:设置失败的错误码] + + + 如果您使用 + IMLibCore,此方法会屏蔽该会话的远程推送;如果您使用IMKit,此方法会屏蔽该会话的所有提醒(远程推送、本地通知、前台提示音),该接口不支持聊天室。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)setConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + isBlocked:(BOOL)isBlocked + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient " + "setConversationChannelNotificationLevel:targetId:channelId:level:success:error:] instead"); + +/*! + 获取消息免打扰会话列表 + + - Parameter conversationTypeList: 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Returns: 消息免打扰会话 RCConversation 的列表 + + 此方法会从本地数据库中,读取消息免打扰会话列表。 + + - Remark: 会话列表 + - Since: 5.0.0 + */ +- (nullable NSArray *)getBlockedConversationList:(NSArray *)conversationTypeList + __deprecated_msg("Use [RCCoreClient getBlockedConversationList:completion:] instead"); + +#pragma mark - 全局消息提醒 - + +/*! + 全局屏蔽某个时间段的消息提醒 + + - Parameter startTime: 开始消息免打扰时间,格式为 HH:MM:SS + - Parameter spanMins: 需要消息免打扰分钟数,0 < spanMins < 1440( 比如,您设置的起始时间是 00:00, 结束时间为 01:00,则 spanMins 为 60 分钟。设置为 1439 代表全天免打扰 (23 * 60 + 59 = 1439 )) + - Parameter successBlock: 屏蔽成功的回调 + - Parameter errorBlock: 屏蔽失败的回调 [status:屏蔽失败的错误码] + + 此方法设置的屏蔽时间会在每天该时间段时生效。 + 如果您使用 IMLibCore,此方法会屏蔽所有会话在该时间段的远程推送;如果您使用 + IMKit,此方法会屏蔽所有会话在该时间段的所有提醒(远程推送、本地通知、前台提示音)。 + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)setNotificationQuietHours:(NSString *)startTime + spanMins:(int)spanMins + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient setNotificationQuietHoursLevel:spanMins:level:success:error:] instead"); + +/*! + 删除已设置的全局时间段消息提醒屏蔽 + + - Parameter successBlock: 删除屏蔽成功的回调 + - Parameter errorBlock: 删除屏蔽失败的回调 [status:失败的错误码] + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)removeNotificationQuietHours:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient removeNotificationQuietHours:success:error:] instead"); + +/*! + 查询已设置的全局时间段消息提醒屏蔽 + + - Parameter successBlock: 屏蔽成功的回调 [startTime:已设置的屏蔽开始时间, + spanMins:已设置的屏蔽时间分钟数,0 < spanMins < 1440] + - Parameter errorBlock: 查询失败的回调 [status:查询失败的错误码] + + - Remark: 会话 + - Since: 5.0.0 + */ +- (void)getNotificationQuietHours:(nullable void (^)(NSString *startTime, int spanMins))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use [RCChannelClient getNotificationQuietHoursLevel:error:] instead"); + +#pragma mark - 工具类方法 + +/*! + 获取当前手机与服务器的时间差 + + - Returns: 时间差 + 消息发送成功后,SDK 会与服务器同步时间,消息所在数据库中存储的时间就是服务器时间。 + + - Remark: 数据获取 + - Since: 5.0.0 + */ +- (long long)getDeltaTime __deprecated_msg("Use [RCCoreClient getDeltaTime:] instead"); + +#pragma mark - 搜索 + +/*! + 根据关键字搜索指定会话中的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter keyword: 关键字 + - Parameter count: 最大的查询数量 + - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间) + + - Returns: 匹配的消息列表 + + 只支持搜索已存储到本地的消息。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCCoreClient searchMessages:targetId:keyword:count:startTime:completion:] instead"); + +/*! + 根据时间,偏移量和个数搜索指定会话中的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 + - Parameter startTime: 查询 startTime 之后的消息, startTime >= 0 + - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime + - Parameter offset: 查询的消息的偏移量,offset >= 0 + - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为100,如果大于100,会默认成100。 + + - Returns: 匹配的消息列表 + + 只支持搜索已存储到本地的消息。 + + - Remark: 消息操作 + - Since: 5.1.2 + */ +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + __deprecated_msg( + "Use [RCCoreClient searchMessages:targetId:keyword:count:startTime:endTime:offset:limit:completion:] instead"); + +/*! + 按用户 ID 搜索指定会话中的消息 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter userId: 搜索用户 ID + - Parameter count: 最大的查询数量 + - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间) + + - Returns: 匹配的消息列表 + + 只支持搜索已存储到本地的消息。 + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + __deprecated_msg("Use [RCCoreClient searchMessages:targetId:userId:count:startTime:completion:] instead"); + +/*! + 根据关键字搜索会话 + + - Parameter conversationTypeList: 需要搜索的会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + - Parameter objectNameList: 需要搜索的消息类型名列表(即每个消息类方法 getObjectName 的返回值) + - Parameter keyword: 关键字,非空 + + - Returns: 匹配的会话搜索结果列表 + + 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 + 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 + + conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 + objectNameList中类型名个数不能超过300,超过会被截断。 + + conversationTypeList 传值时: + OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), + Swift 需获取到 rawValue 强转成 NSNumber 传入 + (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) + [privateType] ) + + - Remark: 消息操作 + - Since: 5.0.0 + */ +- (nullable NSArray *)searchConversations:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + __deprecated_msg("Use [RCCoreClient searchConversations:messageType:keyword:completion:] instead"); + +#pragma mark - 消息扩展 - + +/*! + 获取标签列表 + + - Returns: 标签列表 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (NSArray *)getTags __deprecated_msg("Use [RCCoreClient getTags:] instead"); + +/*! + 获取会话的所有标签 + + - Parameter conversationIdentifier: 会话信息 + - Returns: 会话所属的标签列表 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (nullable NSArray *)getTagsFromConversation: + (RCConversationIdentifier *)conversationIdentifier + __deprecated_msg("Use [RCCoreClient getTagsFromConversation:completion:] instead"); + +/*! + 分页获取标签中会话列表 + + - Parameter tagId: 标签 ID + - Parameter timestamp: 会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取) + - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) + - Returns: 会话 RCConversation 的列表 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (nullable NSArray *)getConversationsFromTagByPage:(NSString *)tagId + timestamp:(long long)timestamp + count:(int)count + __deprecated_msg("Use [RCCoreClient getConversationsFromTagByPage:timestamp:count:completion:] instead"); + +/*! + 获取标签中会话消息未读数 + + - Parameter tagId: 标签 ID + - Parameter isContain: 是否包含免打扰会话 + - Returns: 会话消息未读数 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (int)getUnreadCountByTag:(NSString *)tagId + containBlocked:(BOOL)isContain + __deprecated_msg("Use [RCCoreClient getUnreadCountByTag:containBlocked:completion:] instead"); + +/*! + 获取标签中的会话置顶状态 + + - Parameter conversationIdentifier: 会话信息 + - Parameter tagId: 标签 ID + - Returns: 置顶状态 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.1 + */ +- (BOOL)getConversationTopStatusInTag:(RCConversationIdentifier *)conversationIdentifier + tagId:(NSString *)tagId + __deprecated_msg("Use [RCCoreClient getConversationTopStatusInTag:tagId:completion:] instead"); + +/*! + 清除标签对应会话的未读消息数 + + - Parameter tagId: 标签 ID + - Returns: 是否清除成功 + + 此方法不支持超级群的会话类型。 + - Remark: 高级功能 + - Since: 5.1.5 + */ +- (BOOL)clearMessagesUnreadStatusByTag:(NSString *)tagId + __deprecated_msg("Use [RCCoreClient clearMessagesUnreadStatusByTag:completion:] instead"); + +#pragma mark-- 统计 + +/// 统计 App 启动的事件 +/// +/// - Parameter launchOptions: App 的启动附加信息 +/// +/// 此方法用于统计融云推送服务的点击率。 +/// 如果您需要统计推送服务的点击率,只需要在 AppDelegate 的-application:didFinishLaunchingWithOptions:中, +/// 调用此方法并将 launchOptions 传入即可。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recordLaunchOptionsEvent:(nullable NSDictionary *)launchOptions + __deprecated_msg("Remote notification use [RCCoreClient recordRemoteNotificationEvent:] instead, local " + "notification use [RCCoreClient recordLocalNotificationResponseEvent:] instead"); + +/// 统计本地通知的事件 +/// +/// - Parameter notification: 本地通知的内容 +/// +/// 此方法用于统计融云推送服务的点击率。 +/// 如果您需要统计推送服务的点击率,只需要在 AppDelegate 的-application:didReceiveLocalNotification:中, +/// 调用此方法并将 launchOptions 传入即可。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +- (void)recordLocalNotificationEvent:(UILocalNotification *)notification + __deprecated_msg("Use [RCCoreClient recordLocalNotificationResponseEvent:] instead"); +#pragma clang diagnostic pop + +#pragma mark-- 信息托管 + +/// 创建群组 +/// - Parameter groupInfo: 群组信息及权限,groupId、groupName 必填,否则创建失败 +/// - Parameter inviteeUserIds: 被邀请的用户 Id 列表,可以为空,一次最多允许 30 个用户加入。 +/// - Parameter success: 成功回调。 +/// - Parameter error: 失败回调 +/// +/// - Note: +/// +/// **`groupInfo` 参数说明** +/// - `groupId` 最大长度 64 个字符。支持大小写英文字母与数字的组合 +/// - `groupName` 最长不超过 64 个字符,群名称可以重复创建 +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `inviteHandlePermission` 为被邀请人需要同意才能进群时,`processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` ( 25427 ),表示需要被邀请人同意后才能进入群组。 +/// - 当群组的 `inviteHandlePermission` 为不需被邀请人同意时,`processCode` 返回 RC_SUCCESS ( 0 ),被邀请人会直接加入群组。 +/// - Since: 5.12.0 +- (void)createGroup:(RCGroupInfo *)groupInfo + inviteeUserIds:(nullable NSArray *)inviteeUserIds + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode, NSString *_Nullable errorKey))errorBlock + __deprecated_msg("Use -[RCCoreClient createGroup:inviteeUserIds:successBlock:errorBlock:] instead"); + +/// 更新群组信息 +/// - Parameter groupInfo: 群组信息,groupId 必填,否则更新失败 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)updateGroupInfo:(RCGroupInfo *)groupInfo + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode, NSString *_Nullable errorKey))errorBlock + NS_SWIFT_NAME(updateGroupInfo(_:success:error:)) + __deprecated_msg("Use -[RCCoreClient updateGroupInfo:successBlock:errorBlock:] instead"); + +/// 设置群成员资料 +/// - Parameter groupId: 群组 ID +/// - Parameter userId: 用户 ID,必填项,支持传入当前登录用户 ID +/// - Parameter nickname: 用户昵称,非必填项,长度不超过 64 个字符,传 nil 或 空字符串表示移除用户昵称 +/// - Parameter extra: 附加信息,非必填项,长度不超过 128 个字符 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setGroupMemberInfo:(NSString *)groupId + userId:(NSString *)userId + nickname:(nullable NSString *)nickname + extra:(nullable NSString *)extra + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock + __deprecated_msg("Use -[RCCoreClient setGroupMemberInfo:userId:nickname:extra:successBlock:errorBlock:] instead"); + +/// 修改自己的用户信息 +/// +/// - Parameter profile: 用户信息 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)updateMyUserProfile:(RCUserProfile *)profile + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode, NSString *_Nullable errorKey))errorBlock + __deprecated_msg("Use -[RCCoreClient updateMyUserProfile:successBlock:errorBlock:] instead"); + +/// 好友信息设置 +/// - Parameter userId: 用户 ID +/// - Parameter remark: 好友备注,最多为 64 个字符,不传或为空时清除备注名。 +/// - Parameter extProfile: 扩展信息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setFriendInfo:(NSString *)userId + remark:(nullable NSString *)remark + extProfile:(nullable NSDictionary *)extProfile + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock + __deprecated_msg("Use -[RCCoreClient setFriendInfo:remark:extProfile:successBlock:errorBlock:] instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCoreClient.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCoreClient.h new file mode 100644 index 0000000..328928b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCCoreClient.h @@ -0,0 +1,4319 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCCoreClient.h +// RongIMLibCore +// Created by xugang on 14/12/23. + +#ifndef __RongCoreClient +#define __RongCoreClient +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import + +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCIMProxy; +@class RCAppSettings; +@class RCInitOption, RCConversationTopOption; +@class RCSearchMessageParams; +@class RCSubscribeEvent, RCSubscribeInfoEvent, RCSubscribeEventRequest; +@class RCMessageIdentifier; +@class RCConversationBatchDeletionParams; +@class RCAppSettings; +@class RCGetUnreadMentionMeConversationListParams; +@class RCSubscribeUserOnlineStatus; +@class RCEditedMessageDraft; +@protocol RCSubscribeEventDelegate; + +/// 收到已读回执的 Notification +/// +/// 收到消息已读回执之后,IMLibCore 会分发此通知。 +/// +/// Notification 的 object 为 nil,userInfo 为 NSDictionary 对象, +/// 其中 key 值分别为 @"cType"、@"tId"、@"messageTime", +/// 对应的 value 为会话类型的 NSNumber 对象、会话的 targetId、已阅读的最后一条消息的 sendTime。 +/// 如: +/// ```objc +/// NSNumber *type = [notification.userInfo objectForKey:@"cType"]; +/// NSNumber *time = [notification.userInfo objectForKey:@"messageTime"]; +/// NSString *targetId = [notification.userInfo objectForKey:@"tId"]; +/// NSString *channelId = [notification.userInfo objectForKey:@"cId"]; +/// NSString *fromUserId = [notification.userInfo objectForKey:@"fId"]; +/// ``` +/// 收到这个消息之后可以更新这个会话中 messageTime 以前的消息 UI 为已读(底层数据库消息状态已经改为已读)。 +/// +/// - Remark: 事件监听 +FOUNDATION_EXPORT NSString *const RCLibDispatchReadReceiptNotification; + +#pragma mark - IMLibCore 核心类 + +/// 融云 IMLibCore 核心类 +/// +/// 您需要通过 sharedCoreClient 方法,获取单例对象。 +@interface RCCoreClient : NSObject + +/// 获取融云通讯能力库 IMLibCore 的核心类单例 +/// +/// - Returns: 融云通讯能力库 IMLibCore 的核心单例类 +/// +/// 您可以通过此方法,获取 IMLibCore 的单例,访问对象中的属性和方法。 +/// - Since: 5.0.0 ++ (instancetype)sharedCoreClient; + + +#pragma mark - SDK初始化 + +/// 初始化融云 SDK +/// +/// - Parameter appKey: 从融云开发者平台创建应用后获取到的 App Key +/// - Parameter option: 设置配置信息,详细配置项信息请查看 RCInitOption.h 文件 +/// +/// 初始化后,SDK 会监听 app 生命周期,用于判断应用处于前台、后台,根据前后台状态调整链接心跳 +/// +/// 您在使用融云 SDK 所有功能(包括显示 SDK 中或者继承于 SDK 的 View)之前,您必须先调用此方法初始化 SDK。 +/// 在 App 整个生命周期中,您只需要执行一次初始化。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法初始化 SDK; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法初始化,而不要使用此方法。 +/// +/// - Remark: 连接 +/// +/// - Since: 5.4.1 +- (void)initWithAppKey:(NSString *)appKey option:(nullable RCInitOption *)option; + +/// 设置 deviceToken(已兼容 iOS 13),用于远程推送 +/// +/// - Parameter deviceTokenData: 从系统获取到的设备号 deviceTokenData (不需要处理) +/// +/// deviceToken 是系统提供的,从苹果服务器获取的,用于 APNs 远程推送必须使用的设备唯一值。 +/// 您需要将 -application:didRegisterForRemoteNotificationsWithDeviceToken: 获取到的 deviceToken 作为参数传入此方法。 +/// +/// 如: +/// ```objc +/// - (void)application:(UIApplication *)application +/// didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { +/// [[RCCoreClient sharedCoreClient] setDeviceTokenData:deviceToken]; +/// } +/// ``` +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setDeviceTokenData:(NSData *)deviceTokenData; + +/// 设置 deviceToken,用于远程推送 +/// +/// - Parameter deviceToken: 从系统获取到的设备号 deviceToken +/// +/// +/// deviceToken 是系统提供的,从苹果服务器获取的,用于 APNs 远程推送必须使用的设备唯一值。 +/// 您需要将 -application:didRegisterForRemoteNotificationsWithDeviceToken: 获取到的 +/// deviceToken,转换成十六进制字符串,作为参数传入此方法。 +/// +/// 如: +/// ```objc +/// - (void)application:(UIApplication *)application +/// didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { +/// NSString *token = [self getHexStringForData:deviceToken]; +/// [[RCCoreClient sharedCoreClient] setDeviceToken:token]; +/// } +/// +/// - (NSString *)getHexStringForData:(NSData *)data { +/// NSUInteger length = [data length]; +/// char *chars = (char *)[data bytes]; +/// NSMutableString *hexString = [[NSMutableString alloc] init]; +/// for (NSUInteger i = 0; i < length; i ++) { +/// [hexString appendString:[NSString stringWithFormat:@"%0.2hhx", chars[i]]]; +/// } +/// return hexString; +/// } +/// ``` +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setDeviceToken:(NSString *)deviceToken; + +#pragma mark - 连接与断开服务器 + +/// 与融云服务器建立连接 +/// +/// - Parameter token: 从您服务器端获取的 token (用户身份令牌) +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID] +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码] +/// +/// 调用该接口,SDK 会在连接失败之后尝试重连,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// 如果您不想一直进行重连,可以使用 connectWithToken:timeLimit:dbOpened:success:error: 接口并设置连接超时时间 timeLimit。 +/// +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// 对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。 +/// 在此种情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法建立与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法建立与融云服务器的连接,而不要使用此方法。 +/// +/// 此方法的回调并非为原调用线程,您如果需要进行 UI 操作,请注意切换到主线程。 +/// - Since: 5.0.0 +- (void)connectWithToken:(NSString *)token + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 与融云服务器建立连接 +/// +/// - Parameter token: 从您服务器端获取的 token (用户身份令牌) +/// - Parameter timeLimit: SDK 连接的超时时间,单位:秒 +/// timeLimit <= 0,SDK 会一直连接,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// timeLimit > 0,SDK 最多连接 timeLimit 秒,超时时返回 RC_CONNECT_TIMEOUT 错误,并不再重连。 +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID] +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码] +/// +/// 调用该接口,SDK 会在 timeLimit 秒内尝试重连,直到出现下面三种情况之一: +/// 第一、连接成功,回调 successBlock(userId)。 +/// 第二、超时,回调 errorBlock(RC_CONNECT_TIMEOUT)。 +/// 第三、出现 SDK 无法处理的错误,回调 errorBlock(errorCode)(如 token 非法)。 +/// +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// 对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。 +/// 在此种情况下,您需要请求您的服务器重新获取 token 并建立连接,但是注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法建立与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法建立与融云服务器的连接,而不要使用此方法。 +/// +/// 此方法的回调并非为原调用线程,您如果需要进行 UI 操作,请注意切换到主线程。 +/// - Since: 5.0.0 +- (void)connectWithToken:(NSString *)token + timeLimit:(int)timeLimit + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 与融云服务器建立连接。 +/// +/// - Parameter userId: 融云服务器的用户 ID,与 `token` 对应。 +/// - Parameter token: 融云服务器端的用户身份令牌。 +/// - Parameter timeLimit: SDK 连接的超时时间,单位:秒。 +/// timeLimit 大于 0 时,SDK 最多连接 timeLimit 秒,超时时返回 `RC_CONNECT_TIMEOUT` 错误,并不再重连。 +/// timeLimit 小于或等于 0 时,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调。 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID]。 +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码]。对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。但要注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Note: +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// - Warning: +/// 此方法的回调线程是 SDK 的内部线程,不是该接口的调用线程。您如果需要进行 UI 操作,请注意切换到主线程。 +/// +/// - Since: 5.20.0 +- (void)connectWithUserId:(NSString *)userId + token:(NSString *)token + timeLimit:(int)timeLimit + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 与融云服务器建立连接。 +/// +/// - Parameter userId: 融云服务器的用户 ID,与 `token` 对应。 +/// - Parameter token: 融云服务器端的用户身份令牌。 +/// - Parameter timeLimit: SDK 连接的超时时间,单位:秒。 +/// timeLimit 大于 0 时,SDK 最多连接 timeLimit 秒,超时时返回 `RC_CONNECT_TIMEOUT` 错误,并不再重连。 +/// timeLimit 小于或等于 0 时,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。 +/// - Parameter dbOpenedBlock: 本地消息数据库打开的回调。 +/// - Parameter dbCreatedBlock: 本地消息数据库是否是重建的回调。 +/// - Parameter successBlock: 连接建立成功的回调 [ userId: 当前连接成功所用的用户 ID]。 +/// - Parameter errorBlock: 连接建立失败的回调,触发该回调代表 SDK 无法继续重连 [errorCode: 连接失败的错误码]。对于 errorBlock 需要特定关心 tokenIncorrect 的情况: +/// 一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey 是否一致; +/// 二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token 并再次用新的 token 建立连接。但要注意避免无限循环,以免影响 App 用户体验。 +/// +/// - Note: +/// 连接成功后,SDK 将接管所有的重连处理。当因为网络原因断线的情况下,SDK 会不停重连直到连接成功为止,不需要您做额外的连接操作。 +/// +/// - Warning: +/// 此方法的回调线程是 SDK 的内部线程,不是该接口的调用线程。您如果需要进行 UI 操作,请注意切换到主线程。 +/// +/// - Since: 5.28.0 +- (void)connectWithUserId:(NSString *)userId + token:(NSString *)token + timeLimit:(int)timeLimit + dbOpened:(nullable void (^)(RCDBErrorCode code))dbOpenedBlock + dbCreated:(nullable void (^)(BOOL isRecreated))dbCreatedBlock + success:(nullable void (^)(NSString *userId))successBlock + error:(nullable void (^)(RCConnectErrorCode errorCode))errorBlock; + +/// 断开与融云服务器的连接 +/// +/// - Parameter isReceivePush: App 在断开连接之后,是否还接收远程推送 +/// +/// +/// 因为 SDK 在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 +/// 所以除非您的 App 逻辑需要登出,否则一般不需要调用此方法进行手动断开。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法断开与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法断开与融云服务器的连接,而不要使用此方法。 +/// +/// isReceivePush 指断开与融云服务器的连接之后,是否还接收远程推送。 +/// [[RCCoreClient sharedCoreClient] disconnect:YES] 与 [[RCCoreClient sharedCoreClient] +/// disconnect] 完全一致; +/// [[RCCoreClient sharedCoreClient] disconnect:NO] 与 [ [RCCoreClient sharedCoreClient] +/// logout] 完全一致。 +/// 您只需要按照您的需求,使用 disconnect: 与 disconnect 以及 logout 三个接口其中一个即可。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)disconnect:(BOOL)isReceivePush; + +/// 断开与融云服务器的连接,但仍然接收远程推送 +/// +/// +/// 因为 SDK 在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 +/// 所以除非您的 App 逻辑需要登出,否则一般不需要调用此方法进行手动断开。 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法断开与融云服务器的连接; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法断开与融云服务器的连接,而不要使用此方法。 +/// +/// [[RCCoreClient sharedCoreClient] disconnect:YES] 与 [[RCCoreClient sharedCoreClient] +/// disconnect] 完全一致; +/// [[RCCoreClient sharedCoreClient] disconnect:NO] 与 [[RCCoreClient sharedCoreClient] +/// logout] 完全一致。 +/// 您只需要按照您的需求,使用 disconnect: 与 disconnect 以及 logout 三个接口其中一个即可。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)disconnect; + +/// 断开与融云服务器的连接,并不再接收远程推送 +/// +/// +/// 因为 SDK 在前后台切换或者网络出现异常都会自动重连,会保证连接的可靠性。 +/// 所以除非您的 App 逻辑需要登出,否则一般不需要调用此方法进行手动断开。 +/// +/// - Warning: 如果您使用 IMKit,请使用此方法断开与融云服务器的连接; +/// 如果您使用 IMLibCore,请使用 RCCoreClient 中的同名方法断开与融云服务器的连接,而不要使用此方法。 +/// +/// [[RCCoreClient sharedCoreClient] disconnect:YES] 与 [[RCCoreClient sharedCoreClient] +/// disconnect] 完全一致; +/// [[RCCoreClient sharedCoreClient] disconnect:NO] 与 [[RCCoreClient sharedCoreClient] +/// logout] 完全一致。 +/// 您只需要按照您的需求,使用 disconnect: 与 disconnect 以及 logout 三个接口其中一个即可。 +/// +/// - Remark: 连接 +/// - Since: 5.0.0 +- (void)logout; + +/// 设置断线重连时是否踢出当前正在重连的设备 +/// +/// +/// 用户没有开通多设备登录功能的前提下,同一个账号在一台新设备上登录的时候,会把这个账号在之前登录的设备上踢出。 +/// 由于 SDK 有断线重连功能,存在下面情况。 +/// 用户在 A 设备登录,A 设备网络不稳定,没有连接成功,SDK 启动重连机制。 +/// 用户此时又在 B 设备登录,B 设备连接成功。 +/// A 设备网络稳定之后,用户在 A 设备连接成功,B 设备被踢出。 +/// 这个接口就是为这种情况加的。 +/// 设置 enable 为 YES 时,SDK 重连的时候发现此时已有别的设备连接成功,不再强行踢出已有设备,而是踢出重连设备。 +/// +/// - Parameter enable: 是否踢出重连设备 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setReconnectKickEnable:(BOOL)enable; + +/// 是否允许 SDK 排重,默认值为 YES +/// +/// 排重的场景如下 +/// 发送方弱网情况下发送消息,消息到达服务但发送方没有收到服务 ack,导致发送方认为消息发送失败 +/// 此种情况下,服务端和接收方都会收到第一条消息 +/// 此时发送方重发该消息,再次达到服务,那么此时服务端会有两条消息(消息内容相同,messageUid 不同) +/// 接收方会收到两条内容相同但 messageUid 不同的消息,SDK 此时会把第二条相同内容消息排重掉 +/// 以此来保证重发的相同内容消息,发送方只有一条消息,接收方也只有一条消息 +/// +/// 当消息量少时,消息排重影响不大;但是本地存在大量消息时,排重会出现性能问题 +/// 当 APP 本地存在大量消息,且发生收消息卡顿时,建议将排重关闭 +/// 在初始化接口之后连接之前调用 +/// 该接口不支持聊天室、超级群会话类型关闭消息排重。 +/// +/// - Parameter enableCheck: 是否允许 SDK 排重 +/// +/// - Since: 5.3.4 +- (void)setCheckDuplicateMessage:(bool)enableCheck; + +#pragma mark - 连接状态监听 + +/// 添加 IMLib 连接状态监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)addConnectionStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(addConnectionStatusChangeDelegate(_:)); + +/// 移除 IMLib 连接状态监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)removeConnectionStatusChangeDelegate:(id)delegate + NS_SWIFT_NAME(removeConnectionStatusChangeDelegate(_:)); + +/// 获取当前 SDK 的连接状态 +/// +/// - Returns: 当前 SDK 的连接状态 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (RCConnectionStatus)getConnectionStatus; + +/// 获取当前的网络状态 +/// +/// - Returns: 当前的网路状态 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (RCNetworkStatus)getCurrentNetworkStatus; + +/// SDK 当前所处的运行状态 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +@property (nonatomic, assign, readonly) RCSDKRunningMode sdkRunningMode; + +/// 媒体文件上传&下载拦截器 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.2 +@property (nonatomic, weak, nullable) id downloadInterceptor; + +#pragma mark - 阅后即焚监听 + +/// +/// 设置 IMLibCore 的阅后即焚监听器 +/// +/// - Parameter delegate: 阅后即焚监听器 +/// 可以设置并实现此 Delegate 监听消息焚烧 +/// - Warning: 如果您使用 IMKit,请不要使用此监听器,否则会导致 IMKit 中无法自动更新 UI! +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCMessageDestructDelegate:(nullable id)delegate; + +#pragma mark - 用户信息 + +/// 当前登录用户的用户信息 +/// +/// 用于与融云服务器建立连接之后,设置当前用户的用户信息。 +/// +/// - Warning: 如果传入的用户信息中的用户 ID 与当前登录的用户 ID 不匹配,则将会忽略。 +/// 如果您使用 IMLibCore,请使用此字段设置当前登录用户的用户信息; +/// 如果您使用 IMKit,请使用 RCIM 中的 currentUserInfo 设置当前登录用户的用户信息,而不要使用此字段。 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +@property (nonatomic, strong, nullable) RCUserInfo *currentUserInfo; + +#pragma mark - 消息接收与发送 + +/// 注册自定义的消息类型 +/// +/// - Parameter messageClass: 自定义消息的类,该自定义消息需要继承于 RCMessageContent +/// +/// +/// 如果您需要自定义消息,必须调用此方法注册该自定义消息的消息类型,否则 SDK 将无法识别和解析该类型消息。 +/// 请在初始化 appkey 之后,token 连接之前调用该方法注册自定义消息 +/// +/// - Warning: 如果您使用 IMLibCore,请使用此方法注册自定义的消息类型; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法注册自定义的消息类型,而不要使用此方法。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)registerMessageType:(Class)messageClass; + +#pragma mark 消息发送 + +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码,messageId:消息的 ID] +/// +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId: 消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码, +/// messageId: 消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 +/// [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + uploadPrepare:(nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送媒体消息 (上传图片或文件等媒体信息到指定的服务器) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter uploadPrepareBlock: 媒体文件上传进度更新的监听 +/// [uploadListener:当前的发送进度监听] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 +/// <= progress <= 100, messageId:消息的 ID] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [messageId:消息的 ID] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + uploadPrepare:(nullable void (^)(RCUploadMediaStatusListener *uploadListener))uploadPrepareBlock + progress:(nullable void (^)(int progress, long messageId))progressBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode, long messageId))errorBlock + cancel:(nullable void (^)(long messageId))cancelBlock; + +/// 异步发送消息 +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage: 消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码,errorMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送消息 +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage: 消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode: 发送失败的错误码,errorMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您使用此方法发送图片消息,需要您自己实现图片的上传,构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// 如果您使用此方法发送文件消息,需要您自己实现文件的上传,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用此方法发送。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)sendMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 <= progress <= 100, progressMessage:消息实体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:消息实体] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock; + +/// 异步发送媒体消息(图片消息或文件消息) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 <= progress <= 100, progressMessage:消息实体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:消息实体] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCCoreClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLibCore,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.4.4 +- (void)sendMediaMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock; + +/// 取消发送中的媒体信息 +/// +/// - Parameter messageId: 媒体消息的 messageId +/// +/// - Returns: YES 表示取消成功,NO 表示取消失败,即已经发送成功或者消息不存在。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (BOOL)cancelSendMediaMessage:(long)messageId; + +/// 异步插入向外发送的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步插入向外发送的、指定时间的消息(此方法如果 sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter sentStatus: 发送状态 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)insertOutgoingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentStatus:(RCSentStatus)sentStatus + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + + +/// 异步插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter content: 消息的内容 +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Note: 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存;可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + content:(RCMessageContent *)content + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步插入接收的消息(此方法如果 sentTime +/// 有问题会影响消息排序,慎用!!)(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter senderUserId: 发送者 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter content: 消息的内容 +/// - Parameter sentTime: 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入) +/// - Parameter completion: 异步回调 [message: 发送的消息实体] +/// +/// - Note: 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存;可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// - Note: 如果 sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)insertIncomingMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + senderUserId:(NSString *)senderUserId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + content:(RCMessageContent *)content + sentTime:(long long)sentTime + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + + +/// 异步插入消息(此方法如果 message.sentTime 有问题会影响消息排序,慎用!!) +/// (该消息只插入本地数据库,实际不会发送给服务器和对方) +/// +/// - Parameter message: 将要插入的消息实体(message 中的 conversationType、targetId、messageContent、messageDirection、senderUserId 必须是有效值) +/// MessageDirection_SEND 时必须设置 sentStatus;MessageDirection_RECEIVE 时必须设置 receivedStatusInfo +/// - Parameter successBlock: 异步回调 [message: 插入消息的完整实体] +/// - Parameter errorBlock: 异步回调 [errorCode: 插入失败错误码] +/// +/// - Note: 如果 message.sentTime <= 0,则被忽略,会以插入时的时间为准。 +/// - Remark: 消息操作 +/// - Since: 5.12.2 +/** + RCTextMessage *txtMessage = [RCTextMessage messageWithContent:@"insert a message"]; + // 构造一条接收到的单聊消息,用于插入本地数据库 + RCMessage *incoming = [[RCMessage alloc] initWithType:ConversationType_PRIVATE + targetId:@"targetID" + direction:MessageDirection_RECEIVE + content:txtMessage]; + incoming.senderUserId = @"senderUserId"; + RCReceivedStatusInfo *statusInfo = [[RCReceivedStatusInfo alloc] initWithReceivedStatus:0]; + [statusInfo markAsRead]; + incoming.receivedStatusInfo = statusInfo; + incoming.disableUpdateLastMessage = YES; + + // 构造一条发送的超级群消息,用于插入本地数据库 + RCMessage *outgoing = [[RCMessage alloc] initWithType:ConversationType_PRIVATE + targetId:@"targetID" + channelId:@"channelID" + direction:MessageDirection_SEND + content:txtMessage]; + outgoing.senderUserId = @"own user id"; + outgoing.sentStatus = SentStatus_SENT; + outgoing.canIncludeExpansion = YES;// 如需后续支持扩展能力,插入前需要设置 + outgoing.disableUpdateLastMessage = YES; +*/ +- (void)insertMessage:(RCMessage *)message + successBlock:(void (^)(RCMessage *successMessage))successBlock + errorBlock:(void (^)(RCErrorCode errorCode))errorBlock; + + +/// 异步批量插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// RCMessage 下列属性会被入库,其余属性会被抛弃 +/// conversationType 会话类型 +/// targetId 会话 ID +/// messageUId 消息唯一 ID, 此属性入库 5.3.5 开始支持 +/// messageDirection 消息方向 +/// senderUserId 发送者 ID +/// receivedStatus[已废弃] 接收状态;消息方向为接收方,并且 receivedStatus 为 ReceivedStatus_UNREAD 时,该条消息未读 +/// receivedStatusInfo 接收状态对象;消息方向为接收方,并且 receivedStatusInfo.receivedStatus 为 0 时,该条消息未读 +/// sentStatus 发送状态 +/// content 消息的内容 +/// sentTime 消息发送的 Unix 时间戳,单位为毫秒,会影响消息排序 +/// extra RCMessage 的额外字段 +/// +/// - Parameter msgs: 插入的批量 RCMessage 数据(此方法不执行排重) +/// - Parameter completion: 完成回调 +/// +/// 此方法不支持聊天室和超级群的会话类型。每批最多处理 500 条消息,超过 500 条返回 NO +/// 消息的未读会累加到会话的未读数上 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)batchInsertMessage:(NSArray *)msgs completion:(nullable void (^)(BOOL ret))completion; + +/// 异步批量插入接收的消息(该消息只插入本地数据库,实际不会发送给服务器和对方) +/// RCMessage 下列属性会被入库,其余属性会被抛弃 +/// conversationType 会话类型 +/// targetId 会话 ID +/// messageUId 消息唯一 ID +/// messageDirection 消息方向 +/// senderUserId 发送者 ID +/// receivedStatus[已废弃] 接收状态;消息方向为接收方,并且 receivedStatus 为 ReceivedStatus_UNREAD 时,该条消息未读 +/// receivedStatusInfo 接收状态对象;消息方向为接收方,并且 receivedStatusInfo.receivedStatus 为 0 时,该条消息未读 +/// sentStatus 发送状态 +/// content 消息的内容 +/// sentTime 消息发送的 Unix 时间戳,单位为毫秒,会影响消息排序 +/// extra RCMessage 的额外字段 +/// +/// - Parameter msgs: 插入的批量 RCMessage 数据 +/// - Parameter checkDuplicate: 是否根据 messageUId 排重 +/// - Parameter completion: 完成回调 +/// +/// 此方法不支持聊天室和超级群的会话类型。每批最多处理 500 条消息,超过 500 条返回 NO +/// 消息的未读会累加到会话的未读数上 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.5 + +- (void)batchInsertMessage:(NSArray *)msgs + checkDuplicate:(BOOL)checkDuplicate + completion:(nullable void (^)(BOOL ret))completion; + +/// 根据文件 URL 地址下载文件内容 +/// +/// - Parameter fileName: 指定的文件名称 需要开发者指定文件后缀 (例如 rongCloud.mov) +/// - Parameter mediaUrl: 文件的 URL 地址 +/// - Parameter progressBlock: 文件下载进度更新的回调 [progress:当前的下载进度,0 <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 [mediaPath:下载成功后本地存放的文件路径 文件路径为文件消息的默认地址] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 此方法仅仅是文件下载器,不会操作消息体。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (void)downloadMediaFile:(NSString *)fileName + mediaUrl:(NSString *)mediaUrl + progress:(nullable void (^)(int progress))progressBlock + success:(nullable void (^)(NSString *mediaPath))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancel:(nullable void (^)(void))cancelBlock; + +/// 下载消息内容中的媒体信息 +/// +/// - Parameter conversationType: 消息的会话类型 +/// - Parameter targetId: 消息的会话 ID +/// - Parameter mediaType: 消息内容中的多媒体文件类型,目前仅支持图片 +/// - Parameter mediaUrl: 多媒体文件的网络 URL +/// - Parameter progressBlock: 消息下载进度更新的回调 [progress:当前的下载进度,0 +/// <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 +/// [mediaPath:下载成功后本地存放的文件路径] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 此方法仅仅是文件下载器,不会操作消息体。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.0.0 +- (void)downloadMediaFile:(RCConversationType)conversationType + targetId:(NSString *)targetId + mediaType:(RCMediaType)mediaType + mediaUrl:(NSString *)mediaUrl + progress:(nullable void (^)(int progress))progressBlock + success:(nullable void (^)(NSString *mediaPath))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancel:(nullable void (^)(void))cancelBlock; + +/// 下载消息内容中的媒体信息 +/// +/// - Parameter message: 媒体消息 +/// - Parameter progressBlock: 消息下载进度更新的回调 [progress:当前的下载进度,0 <= progress <= 100] +/// - Parameter successBlock: 下载成功的回调 [mediaPath:下载成功后本地存放的文件路径] +/// - Parameter errorBlock: 下载失败的回调 [errorCode:下载失败的错误码] +/// - Parameter cancelBlock: 用户取消了下载的回调 +/// +/// 用来获取媒体原文件时调用。如果本地缓存中包含此文件,则从本地缓存中直接获取,否则将从服务器端下载。 +/// +/// - Warning: 多媒体下载成功后,会更新消息体的 localPath。 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)downloadMediaMessage:(RCMessage *)message + progressBlock:(nullable void (^)(int progress))progressBlock + successBlock:(nullable void (^)(NSString *mediaPath))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock + cancelBlock:(nullable void (^)(void))cancelBlock; + +/// 取消发送中的媒体信息 +/// +/// - Parameter message: 媒体消息 +/// - Parameter successBlock: 取消成功 +/// - Parameter errorBlock: 取消失败 +/// +/// - Remark: 消息操作 +/// - Since: 5.6.4 +- (void)cancelDownloadMediaMessage:(RCMessage *)message + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 取消下载中的媒体信息 +/// +/// - Parameter mediaUrl: 媒体消息 Url +/// - Parameter successBlock: 成功 +/// - Parameter errorBlock: 失败 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)cancelDownloadMediaUrl:(NSString *)mediaUrl + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 暂停下载中的媒体消息,如需继续下载重新调用 download 方法即可。 +/// +/// - Parameter message: 媒体消息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)pauseDownloadMediaMessage:(RCMessage *)message + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 暂停下载中的媒体消息,如需继续下载重新调用 download 方法即可。 +/// +/// - Parameter mediaUrl: 媒体消息 Url +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 多媒体下载 +/// - Since: 5.6.4 +- (void)pauseDownloadMediaUrl:(NSString *)mediaUrl + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 可通过此接口获取文件的下载信息,包含进度、已下载文件大小、总文件大小等。 +/// +/// 1. 调用 `downloadMediaMessage:progressBlock:successBlock:errorBlock:cancelBlock:` 接口下载的文件 +/// 传入 message.remoteUrl 获取 RCDownloadInfo; +/// 如需判断文件是否已下载,可通过 message.localPath 来判断文件是否存在。 +/// +/// 2. 调用 `downloadMediaFile:mediaUrl:progress:success:error:cancel:` 接口下载的文件 +/// 传入文件远端地址获取 RCDownloadInfo; +/// 如需判断文件是否已经下载过,可通过以下代码拼接出本地路径来判断文件是否存在。 +/// ``` +/// NSString *fileLocalPath = [RCUtilities getFileStoragePath]; +/// fileLocalPath = [fileLocalPath stringByAppendingPathComponent:fileName]; +/// ``` +- (nullable RCDownloadInfo *)getDownloadInfo:(NSString *)mediaUrl; + +/// 异步发送定向消息 +/// +/// - Parameter conversationType: 发送消息的会话类型 +/// - Parameter targetId: 发送消息的会话 ID +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter content: 消息的内容 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [messageId:消息的 ID] +/// - Parameter errorBlock: 消息发送失败的回调 [errorCode:发送失败的错误码, +/// messageId:消息的 ID] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// 如果您使用 IMLibCore,可以使用此方法发送定向消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送定向消息,否则不会自动更新 UI。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + toUserIdList:(NSArray *)userIdList + content:(RCMessageContent *)content + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode, long messageId))errorBlock; + +/// 异步发送定向消息 +/// +/// - Parameter message: 消息实体 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送定向消息 +/// +/// - Parameter message: 消息实体 +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter option: 消息的相关配置 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:发送成功的消息] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:发送失败的消息] +/// +/// 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 +/// userIdList 里 ID 个数不能超过 300,超过会被截断。 +/// +/// - Warning: 此方法目前仅支持普通群组和讨论组。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + option:(nullable RCSendMessageOption *)option + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock; + +/// 异步发送定向媒体消息(图片消息或文件消息) +/// +/// - Parameter message: 将要发送的消息实体(需要保证 message 中的 conversationType,targetId,messageContent 是有效值) +/// - Parameter userIdList: 接收消息的用户 ID 列表 +/// - Parameter pushContent: 接收方离线时需要显示的远程推送内容 +/// - Parameter pushData: 接收方离线时需要在远程推送中携带的非显示数据 +/// - Parameter attachedBlock: 入库回调 [message: 已存数据库的消息体] +/// - Parameter progressBlock: 消息发送进度更新的回调 [progress:当前的发送进度,0 <= progress <= 100, progressMessage:消息实体] +/// - Parameter successBlock: 消息发送成功的回调 [successMessage:消息实体] +/// - Parameter errorBlock: 消息发送失败的回调 [nErrorCode:发送失败的错误码,errorMessage:消息实体] +/// - Parameter cancelBlock: 用户取消了消息发送的回调 [cancelMessage:消息实体] +/// +/// 当接收方离线并允许远程推送时,会收到远程推送。 +/// 远程推送中包含两部分内容,一是 pushContent,用于显示;二是 pushData,用于携带不显示的数据。 +/// +/// SDK 内置的消息类型,如果您将 pushContent 和 pushData 置为 nil,会使用默认的推送格式进行远程推送。 +/// 自定义类型的消息,需要您自己设置 pushContent 和 pushData 来定义推送内容,否则将不会进行远程推送。 +/// +/// 如果您需要上传图片到自己的服务器,需要构建一个 RCImageMessage 对象, +/// 并将 RCImageMessage 中的 imageUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// 如果您需要上传文件到自己的服务器,构建一个 RCFileMessage 对象, +/// 并将 RCFileMessage 中的 fileUrl 字段设置为上传成功的 URL 地址,然后使用 RCIMClient 的 +/// sendMessage:targetId:content:pushContent:pushData:success:error:方法 +/// 或 sendMessage:targetId:content:pushContent:success:error:方法进行发送,不要使用此方法。 +/// +/// - Warning: 如果您使用 IMLib,可以使用此方法发送媒体消息; +/// 如果您使用 IMKit,请使用 RCIM 中的同名方法发送媒体消息,否则不会自动更新 UI。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)sendDirectionalMediaMessage:(RCMessage *)message + toUserIdList:(NSArray *)userIdList + pushContent:(nullable NSString *)pushContent + pushData:(nullable NSString *)pushData + attached:(nullable void (^)(RCMessage *_Nullable message))attachedBlock + progress:(nullable void (^)(int progress, RCMessage *progressMessage))progressBlock + successBlock:(nullable void (^)(RCMessage *successMessage))successBlock + errorBlock:(nullable void (^)(RCErrorCode nErrorCode, RCMessage *errorMessage))errorBlock + cancel:(nullable void (^)(RCMessage *cancelMessage))cancelBlock; + +#pragma mark 消息接收监听 + +/// 添加 IMLib 接收消息监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)addReceiveMessageDelegate:(id)delegate + NS_SWIFT_NAME(addReceiveMessageDelegate(_:)); + +/// 移除 IMLib 接收消息监听 +/// +/// - Parameter delegate: 代理 +/// - Since: 5.1.5 +- (void)removeReceiveMessageDelegate:(id)delegate + NS_SWIFT_NAME(removeReceiveMessageDelegate(_:)); + +#pragma mark - 消息入库前预处理监听 +/// 设置消息拦截器 +/// +/// 可以设置并实现此拦截器来进行消息的拦截处理 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.2 +@property (nonatomic, weak, nullable) id messageInterceptor; + +#pragma mark - 发送消息被拦截监听 + +/// 设置发送消息被拦截的监听器 +/// +/// 可以设置并实现此拦截器来处理发送消息被拦截时的处理 +/// +/// - Remark: 功能设置 +/// - Since: 5.1.4 +@property (nonatomic, weak, nullable) id messageBlockDelegate; + +#pragma mark - 消息阅读回执 + +/// 发送某个会话中消息阅读的回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 该会话中已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此接口只支持单聊,如果使用 IMLibCore 可以注册监听 +/// RCLibDispatchReadReceiptNotification 通知,使用 IMKit 直接设置 RCIM.h +/// 中的 enabledReadReceiptConversationTypeList。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendReadReceiptMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 请求消息阅读回执 +/// +/// - Parameter message: 要求阅读回执的消息 +/// - Parameter successBlock: 请求成功的回调 +/// - Parameter errorBlock: 请求失败的回调 [nErrorCode: 失败的错误码] +/// +/// 通过此接口,可以要求阅读了这条消息的用户发送阅读回执。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendReadReceiptRequest:(RCMessage *)message + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 发送阅读回执 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter messageList: 已经阅读了的消息列表 +/// - Parameter successBlock: 发送成功的回调 +/// - Parameter errorBlock: 发送失败的回调 [nErrorCode: 失败的错误码] +/// +/// 当用户阅读了需要阅读回执的消息,可以通过此接口发送阅读回执,消息的发送方即可直接知道那些人已经阅读。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendReadReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + messageList:(NSArray *)messageList + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 同步会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 已经阅读的最后一条消息的 Unix 时间戳,单位:毫秒 +/// - Parameter successBlock: 同步成功的回调 +/// - Parameter errorBlock: 同步失败的回调 [nErrorCode: 失败的错误码] +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)syncConversationReadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +#pragma mark - 消息撤回 + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter option: 撤回消息的配置项,无配置可传 nil +/// - Parameter pushContent: 当下发 push 消息时,在通知栏里会显示这个字段,不设置将使用融云默认推送内容。将优先使用 message.messagePushConfig.pushContent 否则才会使用该方法的 pushContent +/// - Parameter successBlock: 撤回成功的回调 [message:撤回的消息体。isDelete:NO 时,该消息已经变更为新的消息 `RCRecallNotificationMessage`; isDelete:YES 时,该消息已经被删除] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// +/// - Warning: 仅支持单聊、群组、聊天室和讨论组。 +/// +/// 如果需要使用该接口的 pushContent 生效,则需要将 message.messagePushConfig 置为 nil 或者直接修改 message.messagePushConfig.pushContent +/// +/// - Remark: 高级功能 +/// - Since: 5.16.0 +- (void)recallMessage:(RCMessage *)message + option:(nullable RCRecallMessageOption *)option + pushContent:(nullable NSString *)pushContent + success:(nullable void (^)(RCMessage *message))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter pushContent: 当下发 push 消息时,在通知栏里会显示这个字段,不设置将使用融云默认推送内容。将优先使用 message.messagePushConfig.pushContent 否则才会使用该方法的 pushContent +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID,该消息已经变更为新的消息 `RCRecallNotificationMessage`] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// +/// - Warning: 仅支持单聊、群组、聊天室和讨论组。 +/// +/// 如果需要使用该接口的 pushContent 生效,则需要将 message.messagePushConfig 置为 nil 或者直接修改 message.messagePushConfig.pushContent +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recallMessage:(RCMessage *)message + pushContent:(nullable NSString *)pushContent + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 撤回消息 +/// +/// - Parameter message: 需要撤回的消息 +/// - Parameter successBlock: 撤回成功的回调 [messageId:撤回的消息 ID,该消息已经变更为新的消息 `RCRecallNotificationMessage`] +/// - Parameter errorBlock: 撤回失败的回调 [errorCode:撤回失败错误码] +/// - Warning: 仅支持单聊、群组、聊天室和讨论组。 +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recallMessage:(RCMessage *)message + success:(nullable void (^)(long messageId))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +#pragma mark - 消息操作 + +/// 异步获取某个会话中指定数量的最新消息实体 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getLatestMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,从指定消息之前、指定数量的最新消息实体 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,oldestMessageId 之前的、指定数量的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 oldestMessageId 对应那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// 如: +/// oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 获取会话中,从指定消息之前、指定数量的、指定消息类型的最新消息实体 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter oldestMessageId: 截止的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,oldestMessageId 之前的、指定数量和消息类型的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 oldestMessageId 对应的那条消息,如果会话中的消息数量小于参数 count +/// 的值,会将该会话中的所有消息返回。 +/// 如:oldestMessageId 为 10,count 为 2,会返回 messageId 为 9 和 8 的 RCMessage 对象列表。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + oldestMessageId:(long)oldestMessageId + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定消息、指定数量、指定消息类型、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectName: 消息内容的类型名,如果想取全部类型的消息请传 nil +/// - Parameter baseMessageId: 当前的消息 ID [0 或 -1 代表从最近的发送时间查起] +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,baseMessageId +/// 之前或之后的、指定数量、消息类型和查询方向的最新消息实体,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 baseMessageId 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectName:(nullable NSString *)objectName + baseMessageId:(long)baseMessageId + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取会话中,指定时间、指定数量、指定消息类型(多个)、向前或向后查找的消息实体列表(按照时间从新到旧排列) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter objectNames: 消息内容的类型名称列表 +/// - Parameter sentTime: 当前的消息时间戳,单位:毫秒 +/// - Parameter isForward: 查询方向 true 为向前,false 为向后 +/// - Parameter count: 需要获取的消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法会获取该会话中,sentTime +/// 之前或之后的、指定数量、指定消息类型(多个)的消息实体列表,返回的消息实体按照时间从新到旧排列。 +/// 返回的消息中不包含 sentTime 对应的那条消息,如果会话中的消息数量小于参数 count 的值,会将该会话中的所有消息返回。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + objectNames:(NSArray *)objectNames + sentTime:(long long)sentTime + isForward:(BOOL)isForward + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 在会话中异步搜索指定消息的前 beforeCount 数量和后 afterCount +/// 数量的消息。返回的消息列表中会包含指定的消息。消息列表时间顺序从新到旧。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter sentTime: 消息的发送时间,单位:毫秒 +/// - Parameter beforeCount: 指定消息的前部分消息数量 +/// - Parameter afterCount: 指定消息的后部分消息数量 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 获取该会话的这条消息及这条消息前 beforeCount 条和后 afterCount 条消息,如前后消息不够则返回实际数量的消息。 +/// +/// 此方法不支持超级群的会话类型。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + sentTime:(long long)sentTime + beforeCount:(int)beforeCount + afterCount:(int)afterCount + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + + +/// 从服务器端清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter recordTime: 清除消息时间戳,【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 +/// 清除所有消息,其他值清除小于等于 recordTime 的消息】,单位:毫秒 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [status:清除失败的错误码] +/// +/// +/// 此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 清除成功后只能获取该时间戳之后的历史消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)clearRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + recordTime:(long long)recordTime + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 清除历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter recordTime: 清除消息时间戳,【0 <= recordTime <= 当前会话最后一条消息的 sentTime,0 +/// 清除所有消息,其他值清除小于等于 recordTime 的消息】,单位:毫秒 +/// - Parameter clearRemote: 是否同时删除服务端消息 +/// - Parameter successBlock: 获取成功的回调 +/// - Parameter errorBlock: 获取失败的回调 [ status:清除失败的错误码] +/// +/// +/// 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 +/// 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 并设置 clearRemote 为 YES +/// 清除消息,成功后只能获取该时间戳之后的历史消息。如果 clearRemote 传 NO, +/// 只会清除本地消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)clearHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + recordTime:(long long)recordTime + clearRemote:(BOOL)clearRemote + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter recordTime: 截止的消息发送时间戳,单位:毫秒 +/// - Parameter count: 需要获取的消息数量,1 < count <= 100 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// 本地数据库可以查到的消息,该接口不会再返回,所以建议先用 getHistoryMessages +/// 相关接口取本地历史消息,本地消息取完之后再通过该接口获取远端历史消息 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + recordTime:(long long)recordTime + count:(int)count + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 从服务器端获取之前的历史消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter option: 可配置的参数 +/// - Parameter successBlock: 获取成功的回调 [messages:获取到的历史消息数组,isRemaining 是否还有剩余消息 YES +/// 表示还有剩余,NO 表示无剩余] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码] +/// +/// +/// 此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)getRemoteHistoryMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + option:(RCRemoteHistoryMsgOption *)option + success:(nullable void (^)(NSArray *messages, BOOL isRemaining))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 获取历史消息 +/// 获取指定会话的连续消息,会先从本地数据库获取指定数量消息,然后根据这些消息所在会话的连续 +/// 置信区间来判断,这些消息中间是否有断档遗漏(即本地存储消息与服务端存储不同步)如果本地数据库的消息有断档, +/// 会触发一次从服务端获取断档处的消息,然后跟本地消息合并再返回给调用者。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter option: 可配置的参数 +/// - Parameter complete: 获取成功的回调 [messages:获取到的历史消息数组;code : 获取是否成功,0 表示成功,非 0 表示失败,此时 messages 数组可能存在断档] +/// - Parameter errorBlock: 获取失败的回调 [status:获取失败的错误码],参数合法性检查不通过会直接回调 errorBlock +/// +/// - Note: 以下为单群聊场景下的详细说明: +/// +/// 产生消息断档的典型情况有: +/// 1. 超过消息离线存储最长时间未登录。例如默认离线消息的最长存储时间是 7 天,若用户连续 10 天未登录,当再次登录时, +/// 服务器只会推送最近 7 天的离线消息,那么更早的 3 天内的消息本地就没有,这段期间称为断档。 +/// 2. 客户启用了群组离线消息存储条数配置。例如配置群组离线消息存储条数为 100 条,若用户离线期间, +/// 该群离线消息超过 100 条,当再次登录时,服务器只会推送最后的 100 条消息,那么更早的消息本地也没有,这段期间称为断档。 +/// +/// 本地存储消息是否断档的判断逻辑: +/// 当连接成功后,服务器主动下发消息分为两种情况,一种是单条直发,一种是通知拉取(一般是会话消息量较大的情况)。还有一种 +/// 是客户端主动拉取消息。对于通知拉取和主动拉取,服务端返回结果中都带有连续置信区间的起始和终止时间戳,客户端会将这段时 +/// 间记录在本地数据库中,视为该会话的连续置信区间。如果用户一直在线情况下,收到单条直发消息,也会将当前消息的时间戳与本 +/// 地存储的该会话置信区间做拼接,视为连续置信区间。当用户调用此接口时,会根据用户传入的获取消息条数 count 来从本地数据库 +/// 中获取,如果获取的所有消息时间戳都在连续置信区间内,就视为无断档,可直接返回给用户。否则会以断档处时间戳为起点,向服 +/// 务端拉取历史消息,拉回来消息的同时,会更新该会话的连续置信区间,并将入库类型消息与本地数据库的消息合并,再返回给用户。 +/// +/// 结果回调中,messages 为本次拉取到的消息列表,timestamp 为下次拉取的起始时间戳,isRemaining 为服务器是否还有未拉取的消息。 +/// 分为以下几种情况: +/// 1. messages 数量等于 count。代表本次的调用已拉取到 count 条消息,且消息是连续的。用户可根据 isRemaining +/// 结果决定是否要继续拉取。 +/// 2. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 false。 +/// 代表本次调用已拉取到所有连续消息,且服务端也无更多消息可供拉取。 +/// 3. messages 数量小于 count(包括 0 的情况),且 isRemaining 为 true。 +/// 代表本次调用只拉取到这么多连续消息,虽然尝试从服务端拉取断档处消息,但拉回来的都是不存储类型的消息。 +/// 同时服务端还有更多消息可供拉取,需要用户使用返回的 timestamp 继续拉取。 +/// +/// 以下情况需要注意: +/// 1. 调用此接口返回的消息,会在本地标记为连续消息。如果后面调用了删除消息相关接口从本地数据库删除了已连续的消息, +/// 会认为此处仍然连续无断档。下次再调用此接口时,不会从服务端拉取此处已删除的消息。 +/// 2. 当用户一直在线时,如果服务端通过 ServerAPI 将当前用户踢出某群,过一段时间再加回来。 +/// 如果服务端执行以上操作的同时什么都不做,客户端是无感知的。用户在被踢出群的这段时间内,此群消息接收不到, +/// 等加回来后又可以收之后的消息,但 SDK 会认为此间消息一直连续无断档,下次调用此接口时,不会从服务端拉取退群期间的消息。 +/// 如果想补偿这段时间消息,需要调用拉取该时段的远端消息接口。为避免执行上述操作时,客户端无感知, +/// 建议在服务端执行踢人操作前,同时发送一条小灰条消息通知被踢人,避免用户误解。 +/// +/// - Warning: +/// 必须开通历史消息云存储功能。 +/// 此方法先从本地获取历史消息,本地有缺失的情况下会从服务端同步缺失的部分。当本地没有更多消息的时候,会从服务器拉取 +/// 从服务端同步失败的时候会返回非 0 的 errorCode,同时把本地能取到的消息回调上去。 +/// 在获取远端消息的时候,可能会拉到信令消息,信令消息会被 SDK 排除掉,导致 messages.count 小于 option.count,此时只要 isRemaining 为 YES,那么下次拉取消息的时候,请用 timestamp 当做 option.recordTime 再去拉取;如果 isRemaining 为 NO,则代表远端不再有消息了 +/// +/// - Remark: 消息操作 +/// - Since: 5.14.0 +- (void)getMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + option:(RCHistoryMessageOption *)option + complete:(nullable void (^)(NSArray *_Nullable messages, long long timestamp, BOOL isRemaining, + RCErrorCode code))complete + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话中 @ 提醒自己的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 此方法从本地获取被@提醒的消息 (最多返回 10 条信息) +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 +/// +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(NSArray *_Nullable messages))completion; +/// 异步获取本地指定会话的未读条数的 @ 消息列表,仅支持群组 +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter count: 未读的 @ 消息,取值范围 [1,100] +/// - Parameter desc: 是否是降序查 +/// - Parameter completion: 异步回调 [消息实体 RCMessage 对象列表] +/// +/// +/// 假如有 1000 条未读的 @ 消息,取 100 条未读 +/// desc 为 true 时获取后 100 条消息,messageList 的顺序是 901 到 1000 +/// desc 为 false 是获取前 100 条消息,messageList 的顺序是 1 到 100 +/// +/// - Warning: 使用 IMKit 注意在进入会话页面前调用,否则在进入会话清除未读数的接口 clearMessagesUnreadStatus: targetId: +/// 以及 设置消息接收状态接口 setMessageReceivedStatus:receivedStatus:会同步清除被提示信息状态。 +/// - Since: 5.3.0 +- (void)getUnreadMentionedMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + count:(int)count + desc:(BOOL)desc + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 异步获取消息的发送时间(Unix 时间戳、毫秒) +/// +/// - Parameter messageId: 消息 ID +/// - Parameter completion: 异步回调 [消息的发送时间(Unix 时间戳、毫秒)] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getMessageSendTime:(long)messageId completion:(nullable void (^)(long long time))completion; + +/// 异步通过 messageId 获取消息实体 +/// +/// - Parameter messageId: 消息 ID(数据库索引唯一值) +/// - Parameter completion: 异步回调 [消息实体,当获取失败的时候,会返回 nil] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getMessage:(long)messageId completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步通过全局唯一 ID 获取消息实体 +/// +/// - Parameter messageUId: 全局唯一 ID(服务器消息唯一 ID) +/// - Parameter completion: 异步回调 [消息实体,当获取失败的时候,会返回 nil] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getMessageByUId:(NSString *)messageUId completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// +/// 获取会话里第一条未读消息。 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [第一条未读消息的实体] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)getFirstUnreadMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(RCMessage *_Nullable message))completion; + +/// 异步删除消息 +/// +/// - Parameter messageIds: 消息 ID 的列表,元素需要为 NSNumber 类型 +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)deleteMessages:(NSArray *)messageIds completion:(nullable void (^)(BOOL ret))completion; + +/// 删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法删除数据库中该会话的消息记录,同时会整理压缩数据库,减少占用空间 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)deleteMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 批量删除某个会话中的指定远端消息(同时删除对应的本地消息) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 目标会话 ID +/// - Parameter messages: 将被删除的消息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 此方法会同时删除远端和本地消息。 +/// 一次批量操作仅支持删除属于同一个会话的消息,请确保消息列表中的所有消息来自同一会话 +/// 一次最多删除 100 条消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.0.0 +- (void)deleteRemoteMessage:(RCConversationType)conversationType + targetId:(NSString *)targetId + messages:(NSArray *)messages + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除某个会话中的所有消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)clearMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置消息的附加信息 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter value: 附加信息,最大 1024 字节 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于扩展消息的使用场景。只能用于本地使用,无法同步到远端。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)setMessageExtra:(long)messageId + value:(nullable NSString *)value + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置消息的接收状态 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter receivedStatusInfo: 消息接收状态的 RCReceivedStatusInfo 对象 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于 UI 展示消息为已读,已下载等状态。 +/// 新接口使用 RCReceivedStatusInfo 类来记录已读、已下载、已听等状态,通过按位计算的方式,支持多种状态并存 +/// 可以通过 RCReceivedStatusInfo 对外接口直接获取是否已读/已下载/已听等 +/// +/// - Warning: 新、旧接口原则上不混用,否则接收状态可能出现偏差 +/// - Remark: 消息操作 +/// - Since: 5.6.8 +- (void)setMessageReceivedStatus:(long)messageId + receivedStatusInfo:(RCReceivedStatusInfo *)receivedStatusInfo + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置消息的发送状态 +/// +/// - Parameter messageId: 消息 ID +/// - Parameter sentStatus: 消息的发送状态 +/// - Parameter completion: 异步回调 [是否设置成功] +/// +/// 用于 UI 展示消息为正在发送,对方已接收等状态。 +/// 为了保证 UI 正常显示,5.1.8 版本起不再支持 app 将消息状态设置为 SentStatus_SENDING +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)setMessageSentStatus:(long)messageId + sentStatus:(RCSentStatus)sentStatus + completion:(nullable void (^)(BOOL ret))completion; + +/// 开始焚烧消息(目前仅支持单聊) +/// +/// - Parameter message: 消息类 +/// 仅限接收方调用 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)messageBeginDestruct:(RCMessage *)message; + +/// 停止焚烧消息(目前仅支持单聊) +/// +/// - Parameter message: 消息类 +/// 仅限接收方调用 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)messageStopDestruct:(RCMessage *)message; + +#pragma mark - 会话列表操作 + +/// 获取 @我未读消息的会话列表 +/// - Parameters: param 详见 RCGetUnreadMentionMeConversationListParams 定义 +/// - completion: 异步回调 [会话 RCConversation 的列表] [code : 获取是否成功,0 表示成功,非 0 表示失败] +/// +/// - Since: 5.28.0 +- (void)getUnreadMentionMeConversationList:(RCGetUnreadMentionMeConversationListParams *)params + completion:(nullable void(^)(NSArray *conversations, + RCErrorCode code))completion; + + +/// 拉取远端会话列表 +/// - Parameters: +/// - successBlock: 接口调用成功的回调 +/// - errorBlock: 接口调用失败的回调 [携带错误码] +/// 此方法会从 IM 服务器中拉取会话列表。结果回调只代码接口是否成功,不会返回具体的会话列表数据。 +/// 拉取完成的回调,请监听 -[RCConversationDelegate remoteConversationListDidSync:] 。 +/// - Warning: 不支持超级群 +/// - Remark: 远端会话列表 +/// - Since 5.20.0 +- (void)getRemoteConversationListWithSuccess:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 异步获取会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// 当您的会话较多且没有清理机制的时候,强烈建议您使用 getConversationList: count: startTime: +/// 分页拉取会话列表,否则有可能造成内存过大。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步分页获取会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getConversationList:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; +/// 异步分页获取会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter startTime: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒) +/// - Parameter topPriority: 查询结果的排序方式,是否置顶优先,传 true 表示置顶会话优先返回,否则结果只以会话时间排序 +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// +/// - Remark: 会话列表 +/// - Since: 5.6.6 +- (void)getConversationList:(NSArray *)conversationTypeList + count:(int)count + startTime:(long long)startTime + topPriority:(BOOL)topPriority + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 获取所有的未读会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取会话列表。 +/// 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.2 +- (void)getUnreadConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取单个会话数据 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [会话的对象] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(RCConversation *_Nullable conversation))completion; + +/// 批量获取会话数据 +/// +/// - Parameter conversationIdentifiers: 会话信息列表,每次获取会话个数最大为 100 +/// - Parameter success: 成功回调 [会话的对象] +/// - Parameter error: 错误回调 [错误码] +/// +/// 此方法会从本地数据库中读取会话,支持单聊、群聊、系统会话。 +/// - Remark: 会话 +/// - Since: 5.8.2 +- (void)getConversations:(NSArray *)conversationIdentifiers + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取会话中的消息数量 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [会话中的消息数量] +/// +/// -1 表示获取消息数量出错。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getMessageCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(int count))completion; + +/// 异步获取会话中某段时间范围内的消息数量 (子线程回调,如有 UI 操作,请切回主线程) +/// +/// - Parameter conversationType 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter startTime 查询 startTime 之后的消息,startTime >= 0 +/// - Parameter endTime 查询 endTime 之前的消息,endTime > startTime +/// - Parameter success 异步回调 [会话中的消息数量] +/// - Parameter error 错误回调 [错误码] +/// +/// - Remark: 会话 +/// - Since: 5.6.4 +- (void)getMessageCountByTimeRange:(RCConversationType)conversationType + targetId:(NSString *)targetId + startTime:(long long)startTime + endTime:(long long)endTime + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步删除指定类型的会话 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// 此方法会从本地存储中删除该会话,同时删除会话中的消息。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearConversations:(NSArray *)conversationTypeList + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步删除本地和服务的会话 +/// +/// - Parameter conversationType: 会话类型 +/// - conversationType: 会话类型 +/// - targetId: 会话 ID +/// - isDeleteRemote: 是否删除服务的会话 +/// - successBlock: 删除成功的回调 +/// - errorBlock: 删除失败的回调 [携带错误码] +/// 此方法会删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 +/// - Warning: 此方法会同时删除本地和服务的会话。如果服务的会话删除失败,本地的会话不会被删除 +/// SDK 在未连接的情况下,删除服务会话会失败 +/// +/// - Remark: 会话 +/// - Since: 5.10.2 +- (void)removeConversation:(RCConversationType)conversationType + targetId:(NSString *)targetId + isDeleteRemote:(BOOL)isDeleteRemote + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + + +/// 批量删除会话 +/// - Parameters: RCConversationBatchDeletionParams: 批量删除会话的参数 +/// - params: 批量删除会话的参数,具体参数请参考 `RCConversationBatchDeletionParams` 类 +/// - successBlock: 删除成功的回调 +/// - errorBlock: 删除失败的回调 [携带错误码] +/// - Since 5.26.0 +- (void)batchDeleteConversations:(RCConversationBatchDeletionParams *)params + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter isTop: 是否置顶 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + isTop:(BOOL)isTop + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步设置会话的置顶状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter isTop: 是否置顶 +/// - Parameter needUpdateTime: 是否更新时间 +/// - Parameter completion: 异步回调 [设置是否成功] +/// +/// 会话不存在时设置置顶,会在会话列表生成会话。 +/// +/// - Remark: 会话 +- (void)setConversationToTop:(RCConversationType)conversationType + targetId:(NSString *)targetId + isTop:(BOOL)isTop + needUpdateTime:(BOOL)needUpdateTime + completion:(nullable void (^)(BOOL result))completion; + +/// 更新会话的置顶状态。 +/// - Parameters: +/// - conversationIdentifiers: 需要更新的会话。 +/// - isTop: 是否置顶。 +/// - option: 置顶状态信息。 +/// - completion: 结果回调。 +/// +/// - Since: 5.20.0 +- (void)setConversationsToTop:(NSArray *)conversationIdentifiers + isTop:(BOOL)isTop + option:(nullable RCConversationTopOption *)option + completion:(nullable void (^)(RCErrorCode code))completion; + +/// 异步获取置顶的会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [置顶的会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取置顶的会话列表。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getTopConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +/// 异步获取会话的置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter completion: 异步回调 [是否获取成功] +/// +/// 此方法会从本地数据库中,读取该会话是否置顶。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getConversationTopStatus:(RCConversationIdentifier *)conversationIdentifier + completion:(nullable void (^)(BOOL ret))completion; + +/// 设置实时会话监听 +/// - Parameter delegate: 代理 +/// - Since: 5.1.2 +- (void)setRCConversationDelegate:(nullable id)delegate; + +#pragma mark 会话中的草稿操作 + +/// 异步获取会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter completion: 异步回调 [该会话中的草稿] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(NSString *_Nullable draft))completion; + +/// 异步保存草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter content: 草稿信息 +/// - Parameter completion: 异步回调 [是否保存成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)saveTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + content:(NSString *)content + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步删除会话中的草稿信息(用户输入但未发送的暂存消息) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter completion: 异步回调 [是否删除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearTextMessageDraft:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion; + +#pragma mark 未读消息数 + +/// 获取所有的未读消息数(聊天室会话除外) +/// - Parameter completion: 异步回调 [所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCountWith:(nullable void (^)(int unreadCount))completion; + +/// 异步获取某个会话内的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(int count))completion; + +/// 异步获取某个会话内的未读消息数 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter messageClassList: 消息类型数组 +/// - Parameter completion: 异步回调 [该会话内的未读消息数] +/// +/// 此方法不支持聊天室和超级群的会话类型。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(RCConversationIdentifier *)conversationIdentifier + messageClassList:(NSArray *)messageClassList + completion:(nullable void (^)(int count))completion; + +/// 异步获取某些会话的总未读消息数(聊天室会话除外) +/// +/// - Parameter conversations: 会话列表(RCConversation 对象只需要 conversationType 和 targetId,channelId 按需使用) +/// - Parameter completion: 异步回调 [传入会话列表的未读消息数] +/// +/// conversations 会话个数不能超过 300,超过会被截断。 +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getTotalUnreadCount:(NSArray *)conversations + completion:(nullable void (^)(int count))completion; + +/// 异步获取某些类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter isContain: 是否包含免打扰消息的未读数 +/// - Parameter completion: 异步回调 [该类型的会话中所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(NSArray *)conversationTypes + containBlocked:(bool)isContain + completion:(nullable void (^)(int count))completion; + +/// 异步获取某个类型的会话中所有的未读消息数(聊天室会话除外) +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter completion: 异步回调 [该类型的会话中所有的未读消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadCount:(NSArray *)conversationTypes completion:(nullable void (^)(int count))completion; + +/// 异步获取某个类型的会话中所有未读的被@的消息数 +/// +/// - Parameter conversationTypes: 会话类型的数组 +/// - Parameter completion: 异步回调 [该类型的会话中所有未读的被@的消息数] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)getUnreadMentionedCount:(NSArray *)conversationTypes + completion:(nullable void (^)(int count))completion; + +/// 异步清除某个会话中的未读消息数 +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步清除某个会话中的未读消息数(该会话在时间戳 timestamp 之前的消息将被置成已读。) +/// +/// - Parameter conversationType: 会话类型,不支持聊天室 +/// - Parameter targetId: 会话 ID +/// - Parameter timestamp: 该会话已阅读的最后一条消息的发送时间戳,单位:毫秒 +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// - Remark: 会话 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + time:(long long)timestamp + completion:(nullable void (^)(BOOL ret))completion; + +#pragma mark - 会话的消息提醒 + +/// 查询会话的消息提醒状态 +/// +/// - Parameter conversationType: 会话类型(不支持聊天室,聊天室是不接受会话消息提醒的) +/// - Parameter targetId: 会话 ID +/// - Parameter successBlock: 查询成功的回调 [nStatus:会话设置的消息提醒状态] +/// - Parameter errorBlock: 查询失败的回调 [status:设置失败的错误码] +/// +/// - Remark: 会话 +/// - Since: 5.0.0 +- (void)getConversationNotificationStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + success:(nullable void (^)(RCConversationNotificationStatus nStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 异步获取消息免打扰会话列表 +/// +/// - Parameter conversationTypeList: 会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter completion: 异步回调 [消息免打扰会话 RCConversation 的列表] +/// +/// 此方法会从本地数据库中,读取消息免打扰会话列表。 +/// +/// - Remark: 会话列表 +/// - Since: 5.3.0 +- (void)getBlockedConversationList:(NSArray *)conversationTypeList + completion:(nullable void (^)(NSArray *_Nullable conversationList))completion; + +#pragma mark - 输入状态提醒 + +/// typing 状态更新的时间,默认是 6s +/// +/// - Remark: 功能设置 +/// - Since: 5.1.1 +@property (nonatomic, assign) NSInteger typingUpdateSeconds; + +/// 设置输入状态的监听器 +/// +/// - Parameter delegate: IMLibCore 输入状态的的监听器 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCTypingStatusDelegate:(nullable id)delegate; + +/// 向会话中发送正在输入的状态 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话目标 ID +/// - Parameter objectName: 正在输入的消息的类型名 +/// +/// +/// contentType 为用户当前正在编辑的消息类型名,即 RCMessageContent 中 getObjectName 的返回值。 +/// 如文本消息,应该传类型名"RC:TxtMsg"。 +/// +/// - Warning: 目前仅支持单聊。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)sendTypingStatus:(RCConversationType)conversationType + targetId:(NSString *)targetId + contentType:(NSString *)objectName; + +#pragma mark - 黑名单 + +/// 将某个用户加入黑名单 +/// +/// - Parameter userId: 需要加入黑名单的用户 ID +/// - Parameter successBlock: 加入黑名单成功的回调 +/// - Parameter errorBlock: 加入黑名单失败的回调 [status:失败的错误码] +/// +/// 将对方加入黑名单后,对方再发消息时,就会提示“您的消息已经发出,但被对方拒收”。但您仍然可以给对方发送消息。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)addToBlacklist:(NSString *)userId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + NS_SWIFT_NAME(addToBlacklist(_:success:error:)); + +/// 将某个用户移出黑名单 +/// +/// - Parameter userId: 需要移出黑名单的用户 ID +/// - Parameter successBlock: 移出黑名单成功的回调 +/// - Parameter errorBlock: 移出黑名单失败的回调 [status:失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)removeFromBlacklist:(NSString *)userId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + NS_SWIFT_NAME(removeFromBlacklist(_:success:error:)); + +/// 查询某个用户是否已经在黑名单中 +/// +/// - Parameter userId: 需要查询的用户 ID +/// - Parameter successBlock: 查询成功的回调 +/// [bizStatus:该用户是否在黑名单中。0 表示已经在黑名单中,101 表示不在黑名单中] +/// - Parameter errorBlock: 查询失败的回调 [status:失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)getBlacklistStatus:(NSString *)userId + success:(nullable void (^)(int bizStatus))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 查询已经设置的黑名单列表 +/// +/// - Parameter successBlock: 查询成功的回调 +/// [blockUserIds:已经设置的黑名单中的用户 ID 列表] +/// - Parameter errorBlock: 查询失败的回调 [status:失败的错误码] +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)getBlacklist:(nullable void (^)(NSArray *blockUserIds))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +#pragma mark - 推送业务数据统计 + +/// 统计本地通知的点击事件 +/// +/// - Parameter userInfo: 本地通知的内容 +/// +/// 此方法用于统计本地通知的点击率。 +/// + +/// 杀掉 app 通过 AppDelegate 的 -application:didFinishLaunchingWithOptions: 获取本地推送内容; +/// 如: +/// - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { +/// NSDictionary *userInfo; +/// if (@available(iOS 10.0, *)) { +/// userInfo = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]; +/// } else { +/// UILocalNotification *localNotification = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]; +/// userInfo = localNotification.userInfo; +/// } +/// if (userInfo) { +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:userInfo]; +/// } +/// return YES; +/// } +/// +/// app 在后台或者前台时,点击通知 +/// 在 iOS 10 以下版本中,通过在 AppDelegate 的 -application:didReceiveLocalNotification: 获取远程推送内容, +/// - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:notification.userInfo]; +/// } +/// +/// 在 iOS 10 及以上版本中,只通过在 AppDelegate 实现 UNUserNotificationCenterDelegate 的方法 -userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:,获取 response.notification.request.content.userInfo, +/// 如: +/// - (void)userNotificationCenter:(UNUserNotificationCenter *)center +/// didReceiveNotificationResponse:(UNNotificationResponse *)response +/// withCompletionHandler:(void (^)(void))completionHandler { +/// // 不需要 app 层区分本地通知和远程推送,recordLocalNotificationResponseEvent 内部判断只在本地时统计 +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:response.notification.request.content.userInfo]; +/// completionHandler(); +/// } +/// +/// - Since: 5.14.0 +- (void)recordLocalNotificationResponseEvent:(NSDictionary *)userInfo; + +/// 统计收到远程推送的事件 +/// +/// - Parameter userInfo: 远程推送的内容 +/// +/// 此方法用于统计融云推送服务的到达率。 +/// 如果您需要统计推送服务的到达率,需要在 App 中实现通知扩展,并在 NotificationService 的 -didReceiveNotificationRequest: withContentHandler: 中 +/// 先初始化 appkey 再调用此方法并将推送内容 userInfo 传入即可。 +/// +/// 如果有单独的统计服务地址,还需要在初始化之后设置独立的统计服务地址 +/// +/// 如: +/// +/// - (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { +/// self.contentHandler = contentHandler; +/// self.bestAttemptContent = [request.content mutableCopy]; +/// +/// NSDictionary *userInfo = self.bestAttemptContent.userInfo; +/// [[RCCoreClient sharedCoreClient] initWithAppKey:RONGCLOUD_IM_APPKEY]; +/// if (RONGCLOUD_STATS_SERVER.length > 0) { +/// [[RCCoreClient sharedCoreClient] setStatisticServer:RONGCLOUD_STATS_SERVER]; +/// } +/// [[RCCoreClient sharedCoreClient] recordReceivedRemoteNotificationEvent:userInfo]; +/// +/// self.contentHandler(self.bestAttemptContent); +/// } +/// +/// - Remark: 高级功能 +/// - Since: 5.1.3 +- (void)recordReceivedRemoteNotificationEvent:(NSDictionary *)userInfo; + +/// 统计远程推送的点击事件 +/// +/// - Parameter userInfo: 远程推送的内容 +/// +/// 此方法用于统计融云推送服务的点击率。 +/// 杀掉 app 通过 AppDelegate 的 -application:didFinishLaunchingWithOptions: 获取远程推送内容; + +/// - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { +/// NSDictionary *remoteNotification = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]; +/// if (remoteNotification) { +/// [[RCCoreClient sharedCoreClient] recordRemoteNotificationEvent:remoteNotification]; +/// } +/// return YES; +/// } +/// +/// app 在后台或者前台时,点击推送 +/// 在 iOS 10 以下版本中,通过在 AppDelegate 的 -application:didReceiveRemoteNotification: 获取远程推送内容, +/// - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { +/// [[RCCoreClient sharedCoreClient] recordRemoteNotificationEvent:userInfo]; +/// } +/// 在 iOS 10 及以上版本中,只通过在 AppDelegate 实现 UNUserNotificationCenterDelegate 的方法 -userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler:,获取 response.notification.request.content.userInfo, +/// 如: +/// - (void)userNotificationCenter:(UNUserNotificationCenter *)center +/// didReceiveNotificationResponse:(UNNotificationResponse *)response +/// withCompletionHandler:(void (^)(void))completionHandler { +/// // 不需要 app 层区分本地通知和远程推送,recordLocalNotificationResponseEvent 内部判断只在远程推送时统计 +/// [[RCCoreClient sharedCoreClient] recordLocalNotificationResponseEvent:response.notification.request.content.userInfo]; +/// completionHandler(); +/// } +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)recordRemoteNotificationEvent:(NSDictionary *)userInfo; + +/// 获取点击的启动事件中,融云推送服务的扩展字段 +/// +/// - Parameter launchOptions: App 的启动附加信息 +/// - Returns: 收到的融云推送服务的扩展字段,nil 表示该启动事件不包含来自融云的推送服务 +/// +/// 此方法仅用于获取融云推送服务的扩展字段。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (nullable NSDictionary *)getPushExtraFromLaunchOptions:(nullable NSDictionary *)launchOptions; + +/// 获取点击的远程推送中,融云推送服务的扩展字段 +/// +/// - Parameter userInfo: 远程推送的内容 +/// - Returns: 收到的融云推送服务的扩展字段,nil 表示该远程推送不包含来自融云的推送服务 +/// +/// 此方法仅用于获取融云推送服务的扩展字段。 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (nullable NSDictionary *)getPushExtraFromRemoteNotification:(NSDictionary *)userInfo; + +#pragma mark - 工具类方法 + +/// 获取当前 IMLibCore SDK 的版本号 +/// +/// - Returns: 当前 IMLibCore SDK 的版本号,如:@"2.0.0" +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 ++ (NSString *)getVersion; + +/// 获取当前手机与服务器的时间差 +/// +/// - Parameter completion: 回调 +/// 消息发送成功后,SDK 会与服务器同步时间,消息所在数据库中存储的时间就是服务器时间,单位:毫秒。 +/// +/// - Remark: 数据获取 +/// - Since: 5.3.0 +- (void)getDeltaTime:(nullable void (^)(long long))completion; + +/// 将 AMR 格式的音频数据转化为 WAV 格式的音频数据,数据开头携带 WAVE 文件头 +/// +/// - Parameter data: AMR 格式的音频数据,必须是 AMR-NB 的格式 +/// - Returns: WAV 格式的音频数据 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (nullable NSData *)decodeAMRToWAVE:(NSData *)data; + +/// 将 AMR 格式的音频数据转化为 WAV 格式的音频数据,数据开头不携带 WAV 文件头 +/// +/// - Parameter data: AMR 格式的音频数据,必须是 AMR-NB 的格式 +/// - Returns: WAV 格式的音频数据 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (nullable NSData *)decodeAMRToWAVEWithoutHeader:(NSData *)data; + +#pragma mark - 语音消息设置 + +/// 语音消息类型,默认 RCVoiceMessageTypeHighQuality +/// +/// 老版本 SDK 不兼容新版本语音消息 +/// 2.9.19 之前的版本无法播放高音质语音消息; +/// 2.9.19 及之后的版本可以同时兼容普通音质语音消息和高音质语音消息; +/// 客服会话类型 (ConversationType_CUSTOMERSERVICE) 不支持高音质语音消息。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +@property (nonatomic, assign) RCVoiceMessageType voiceMsgType; + +#pragma mark - 搜索 + +/// 搜索本地消息。 +/// +/// - Parameters: +/// - params: 搜索参数。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.22.0 +- (void)searchMessagesWithParams:(RCSearchMessageParams *)params + completionHandler:(RCSearchMessageListCompletion)completionHandler; + +/// 根据关键字异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字 +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间),单位:毫秒 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据时间,偏移量和个数异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter keyword: 关键字,传空默认为是查全部符合条件的消息 +/// - Parameter startTime: 查询 startTime 之后的消息,startTime >= 0,单位:毫秒 +/// - Parameter endTime: 查询 endTime 之前的消息,endTime > startTime,单位:毫秒 +/// - Parameter offset: 查询的消息的偏移量,offset >= 0 +/// - Parameter limit: 最大的查询数量,limit 需大于 0,最大值为 100,如果大于 100,会默认成 100。 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + limit:(int)limit + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 按用户 ID 异步搜索指定会话中的消息 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter userId: 搜索用户 ID +/// - Parameter count: 最大的查询数量 +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示不限时间),单位:毫秒 +/// - Parameter completion: 异步回调 [匹配的消息列表] +/// +/// 只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchMessages:(RCConversationType)conversationType + targetId:(NSString *)targetId + userId:(NSString *)userId + count:(int)count + startTime:(long long)startTime + completion:(nullable void (^)(NSArray *_Nullable messages))completion; + +/// 根据关键字搜索指定会话中,指定消息类型的本地历史消息 +/// +/// - Parameter conversationIdentifier: 会话类型、会话 ID +/// - Parameter keyword: 关键字,非空 +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值),非空 +/// - Parameter limit: 最大的查询数量 [最大 100,超过则使用 100] +/// - Parameter startTime: 查询 startTime 之前的消息(传 0 表示从最新消息开始搜索),单位:毫秒 +/// - Parameter success: 异步成功回调 [匹配的消息列表] +/// - Parameter error: 异步失败回调 [错误码] +/// +/// 超级群会话类型只支持搜索已存储到本地的消息。 +/// +/// - Remark: 消息操作 +/// - Since: 5.8.1 +- (void)searchMessages:(RCConversationIdentifier *)conversationIdentifier + keyword:(NSString *)keyword + objectNameList:(NSArray *)objectNameList + limit:(int)limit + startTime:(long long)startTime + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 根据关键字异步搜索会话 +/// +/// - Parameter conversationTypeList: 需要搜索的会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// - Parameter objectNameList: 需要搜索的消息类型名列表 (即每个消息类方法 getObjectName 的返回值) +/// - Parameter keyword: 关键字,非空 +/// - Parameter completion: 异步回调 [匹配的会话搜索结果列表] +/// +/// 目前,SDK 内置的文本消息、文件消息、图文消息支持搜索。 +/// 自定义的消息必须要实现 RCMessageContent 的 getSearchableWords 接口才能进行搜索。 +/// +/// conversationTypeList 包含超级群会话类型时,超级群会话只搜索已存储到本地的消息记录。 +/// objectNameList 中类型名个数不能超过 300,超过会被截断。 +/// +/// conversationTypeList 传值时: +/// OC 需转成 NSNumber 传入(例如 @[ @(ConversationType_PRIVATE) ]), +/// Swift 需获取到 rawValue 强转成 NSNumber 传入 +/// (例如 let privateType = NSNumber(value: RCConversationType.ConversationType_PRIVATE.rawValue) +/// [privateType] ) +/// +/// - Remark: 消息操作 +/// - Since: 5.3.0 +- (void)searchConversations:(NSArray *)conversationTypeList + messageType:(NSArray *)objectNameList + keyword:(NSString *)keyword + completion:(nullable void (^)(NSArray *_Nullable results))completion; +#pragma mark - 日志 + +/// 设置日志级别 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +@property (nonatomic, assign) RCLogLevel logLevel; + +/// 设置 IMLibCore 日志的监听器 +/// +/// - Parameter delegate: IMLibCore 日志的监听器 +/// +/// 您可以通过 logLevel 来控制日志的级别。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCLogInfoDelegate:(nullable id)delegate; + +#pragma mark - File Storage + +/// 文件消息下载路径 +/// +/// 默认值为沙盒下的 Documents/MyFile 目录。您可以通过修改 RCConfig.plist 中的 RelativePath 来修改该路径。 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +@property (nonatomic, strong, readonly) NSString *fileStoragePath; + +#pragma mark - 第三方平台厂商接口 +/// 获取 Vendor token. 仅供融云第三方服务厂家使用。 +/// +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (void)getVendorToken:(nullable void (^)(NSString *vendorToken))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 远程推送相关设置 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +@property (nonatomic, strong, readonly) RCPushProfile *pushProfile; + +#pragma mark - 历史消息 + +/// 设置离线消息在服务端的存储时间(以天为单位) +/// +/// - Parameter duration: 存储时间,范围【1~7 天】 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setOfflineMessageDuration:(int)duration + success:(nullable void (^)(void))successBlock + failure:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/// 获取离线消息时间(以天为单位) +/// +/// - Returns: 离线消息存储时间 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (int)getOfflineMessageDuration; + +/// 异步获取离线消息时间(以天为单位) +/// - Parameter completion: 异步回调 [离线消息存储时间] +/// +/// - Remark: 数据获取 +/// - Since: 5.3.0 +- (void)getOfflineMessageDuration:(nullable void (^)(int duration))completion; + +/// 上报客户 App 版本信息。服务端支持按上报的 App 版本处理自定义消息的推送内容。 +/// +/// setAppVer 接口需要在 connect 接口前调用 +/// - Parameter appVer: 用户 APP 的版本信息,String 类型,非空,长度小于 20,示例如 "1.1.0"。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setAppVer:(NSString *)appVer; + +/// GIF 消息大小限制,以 KB 为单位,超过这个大小的 GIF 消息不能被发送 +/// +/// - Returns: GIF 消息大小,以 KB 为单位 +/// +/// - Remark: 数据获取 +/// - Since: 5.0.0 +- (NSInteger)getGIFLimitSize; + +/// 小视频消息时长限制,以 秒 为单位,超过这个时长的小视频消息不能在相册中被选择发送 +/// +/// - Returns: 小视频消息时长,以 秒 为单位 +/// - Since: 5.1.0 +- (NSTimeInterval)getVideoDurationLimit; + +#pragma mark - 会话状态同步,免打扰,置顶 + +/// 设置会话状态(包含置顶,消息免打扰)同步的监听器 +/// +/// - Parameter delegate: 会话状态同步的监听器 +/// +/// 可以设置并实现此 delegate 来进行会话状态同步。SDK 会在回调的 conversationStatusChange:方法中通知您会话状态的改变。 +/// +/// - Remark: 功能设置 +/// - Since: 5.0.0 +- (void)setRCConversationStatusChangeDelegate:(nullable id)delegate; + +/// 添加会话状态(包含置顶,消息免打扰)同步的监听器。 +/// +/// - Parameter delegate: 会话状态同步的监听器。 +/// +/// - Since: 5.24.0 +- (void)addConversationStatusChangeDelegate:(nullable id)delegate + NS_SWIFT_NAME(addConversationStatusChangeDelegate(_:)); + +/// 移除会话状态(包含置顶,消息免打扰)同步的监听器。 +/// +/// - Parameter delegate: 会话状态同步的监听器。 +/// +/// - Since: 5.24.0 +- (void)removeConversationStatusChangeDelegate:(nullable id)delegate + NS_SWIFT_NAME(removeConversationStatusChangeDelegate(_:)); + +#pragma mark - 消息扩展 + +/// 更新消息扩展信息 +/// +/// - Parameter expansionDic: 要更新的消息扩展信息键值对 +/// - Parameter messageUId: 消息 messageUId +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Warning: 调用更新扩展的一方必须通过 successBlock 来处理本端的数据刷新。仅被动接收扩展变更的用户(包含本用户的其他端)通过监听方法 [RCMessageExpansionDelegate messageExpansionDidUpdate:message:] 获取通知。 +/// +/// 消息扩展信息是以字典形式存在。设置的时候从 expansionDic 中读取 key,如果原有的扩展信息中 key 不存在则添加新的 KV 对,如果 key 存在则替换成新的 value。 +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +/// 扩展信息字典中的 Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 32;Value 最长长度,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)updateMessageExpansion:(NSDictionary *)expansionDic + messageUId:(NSString *)messageUId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 删除消息扩展信息中特定的键值对 +/// +/// - Parameter keyArray: 消息扩展信息中待删除的 key 的列表 +/// - Parameter messageUId: 消息 messageUId +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Warning: 调用删除扩展的一方必须通过 successBlock 来处理本端的数据刷新。仅被动接收扩展变更的用户(包含本用户的其他端)通过监听方法 [RCMessageExpansionDelegate messageExpansionDidRemove:message:] 通知的 +/// +/// 扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +- (void)removeMessageExpansionForKey:(NSArray *)keyArray + messageUId:(NSString *)messageUId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置 IMLibCore 的消息扩展监听器 +/// +/// 代理回调在非主线程 +/// +/// - Remark: 高级功能 +/// - Since: 5.0.0 +@property (nonatomic, weak, nullable) id messageExpansionDelegate; + +#pragma mark - 标签 +/// 添加标签 +/// +/// - Parameter tagInfo: 标签信息。只需要设置标签信息的 tagId 和 tagName。 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 最多支持添加 20 个标签 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)addTag:(RCTagInfo *)tagInfo + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 移除标签 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)removeTag:(NSString *)tagId + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 更新标签信息 +/// +/// - Parameter tagInfo: 标签信息。只支持修改标签信息的 tagName +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)updateTag:(RCTagInfo *)tagInfo + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取标签列表 +/// - Parameter completion: 异步回调 [标签列表] +/// +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getTags:(nullable void (^)(NSArray *))completion; + +/// 标签变化监听器 +/// +/// 标签添加移除更新会触发此监听器,用于多端同步 +/// 本端添加删除更新标签,不会触发此监听器,在相关调用方法的 block 块直接回调 +/// +/// - Remark: 高级功能 +/// - Since: 5.1.1 +@property (nonatomic, weak, nullable) id tagDelegate; + +/// 添加会话到指定标签 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter conversationIdentifiers: 会话信息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 每次添加会话个数最大为 1000。最多支持添加 1000 个会话,如果标签添加的会话总数已超过 1000,会自动覆盖早期添加的会话 +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)addConversationsToTag:(NSString *)tagId + conversationIdentifiers:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 从指定标签移除会话 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter conversationIdentifiers: 会话信息列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 每次移除会话个数最大为 1000 +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)removeConversationsFromTag:(NSString *)tagId + conversationIdentifiers:(NSArray *)conversationIdentifiers + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 从指定会话中移除标签 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter tagIds: 标签 ID 列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)removeTagsFromConversation:(RCConversationIdentifier *)conversationIdentifier + tagIds:(NSArray *)tagIds + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 异步获取会话的所有标签 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter completion: 异步回调 [会话所属的标签列表] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getTagsFromConversation:(RCConversationIdentifier *)conversationIdentifier + completion:(nullable void (^)(NSArray *_Nullable results))completion; + +/// 异步分页获取标签中会话列表 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter timestamp: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒) +/// - Parameter count: 获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据) +/// - Parameter completion: 异步回调 [会话 RCConversation 的列表] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getConversationsFromTagByPage:(NSString *)tagId + timestamp:(long long)timestamp + count:(int)count + completion:(nullable void (^)(NSArray *_Nullable results))completion; + +/// 异步分页获取未打标签的会话列表。 +/// +/// - Parameter timestamp: 会话的时间戳(获取这个时间戳之前的会话列表,0 表示从最新开始获取,单位:毫秒)。 +/// - Parameter count: 获取的数量,有效值 [1, 100]。(当实际取回的会话数量小于 count 值时,表明已取完数据)。 +/// - Parameter topPriority: 查询结果的排序方式,是否置顶优先,传 YES 表示置顶会话优先返回,否则结果只以会话时间排序。 +/// - Parameter completion: 异步回调 [ 会话 RCConversation 的列表 ]。 +/// +/// - Note: `count` 小于 1 时,取 20,大于 100 时,取 100。 +/// +/// - Remark: 高级功能 +/// +/// - Since: 5.7.8 +- (void)getUntaggedConversationListByPage:(long long)timestamp + count:(NSInteger)count + topPriority:(BOOL)topPriority + completionHandler: + (void (^)(NSArray *conversations, RCErrorCode code))completionHandler; + +/// 异步获取标签中会话消息未读数 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter isContain: 是否包含免打扰会话 +/// - Parameter completion: 异步回调 [会话消息未读数] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getUnreadCountByTag:(NSString *)tagId + containBlocked:(BOOL)isContain + completion:(nullable void (^)(int count))completion; + +/// 设置标签中的会话置顶 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter top: 是否置顶 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +- (void)setConversationToTopInTag:(NSString *)tagId + conversationIdentifier:(RCConversationIdentifier *)conversationIdentifier + isTop:(BOOL)top + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 异步获取标签中的会话置顶状态 +/// +/// - Parameter conversationIdentifier: 会话信息 +/// - Parameter tagId: 标签 ID +/// - Parameter completion: 异步回调 [置顶状态] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)getConversationTopStatusInTag:(RCConversationIdentifier *)conversationIdentifier + tagId:(NSString *)tagId + completion:(nullable void (^)(BOOL ret))completion; + +/// 异步清除标签对应会话的未读消息数 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter completion: 异步回调 [是否清除成功] +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.3.0 +- (void)clearMessagesUnreadStatusByTag:(NSString *)tagId completion:(nullable void (^)(BOOL ret))completion; + + +/// 删除标签对应的会话 +/// +/// - Parameter tagId: 标签 ID +/// - Parameter option: 可配置的参数 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// 会话标签功能仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.5 +- (void)clearConversationsByTag:(NSString *)tagId + option:(RCClearConversationOption *)option + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 会话标签变化监听器 +/// +/// 会话标签添加移除更新会触发此监听器,用于多端同步 +/// 本端操作会话标签,不会触发此监听器,在相关调用方法的 block 块直接回调 +/// +/// 此监听器仅支持单群聊会话、系统会话 +/// - Remark: 高级功能 +/// - Since: 5.1.1 +@property (nonatomic, weak, nullable) id conversationTagDelegate; + +/// 缩略图压缩配置 +/// +/// - Remark: 缩略图压缩配置,如果此处设置了配置就按照这个配置进行压缩。如果此处没有设置,会按照 RCConfig.plist 中的配置进行压缩。 +/// - Since: 5.1.1 +@property (nonatomic, strong, nullable) RCImageCompressConfig *imageCompressConfig; + +/// 子模块是否正在使用声音通道,特指 RTCLib +/// - Since: 5.1.2 +- (BOOL)isAudioHolding; + +/// 子模块是否正在使用摄像头,特指 RTCLib +/// - Since: 5.1.2 +- (BOOL)isCameraHolding; + +#pragma mark - socks proxy +/// 在初始化之前设置代理,目前仅支持 socks5 代理 +/// 设置 socks 代理 +/// - Returns: 代理设置是否成功 +/// - Parameter proxy: RCIMProxy 具体的代理配置,为空或者无效则代表为取消代理设置 +/// +/// 不需认证的代理,只需要设置代理信息的 host 和 port;如需认证还需设置 userName 和 password。 +/// 如果需要再次设置代理,那么 app 先要 disconnect 将上次连接给断掉再设置 并且需要设置代理后需要重新调用 connect 接口,SDK 使用新代理连接 +/// +/// - Warning: 建议开发者在 testProxy 成功后再调用该接口设置代理,以此来保证用户手动输入的代理是正确的 +/// // 如果开发者设置错误的 proxy,SDK 也会直接使用,出现问题就是 SDK 连接不上 +/// // SDK 的代理设置只保存在内存中,杀死 app 重打开代理就失效了,需要 app 每次启动后重新设置 +/// - Remark: 高级功能 +/// - Since: 5.3.0 + +- (BOOL)setProxy:(nullable RCIMProxy *)proxy; + +/// 获取当前 socks 代理配置 +/// +/// - Returns: getCurrentProxy RCIMProxy 具体的代理配置 +/// - Remark: 高级功能 +/// - Since: 5.3.0 + +- (nullable RCIMProxy *)getCurrentProxy; + +/// 检测代理是否可用,SDK 使用代理参数连接 testHost,检测代理配置是否可用 +/// 检测 http 协议的可用性,不支持验证 tcp udp 的有效性验证 +/// +/// - Parameter proxy: RCIMProxy 具体的代理配置,proxy 必须为有效值,否则返回失败回调 +/// - Parameter testHost: NSString 建议设置为 AppServer 的域名,需要 http 头或者 https 头,否则 SDK 会为其拼接 https:// 前缀 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// callback 测试结果,超时时间 5 秒,callback 在非 UI 线程返回 +/// - Remark: 高级功能 +/// - Since: 5.3.0 + +- (void)testProxy:(RCIMProxy *)proxy + testHost:(NSString *)testHost + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode code))errorBlock; + +/// 配置 AppGroupId 与代理 +/// +/// - Parameter identifier: AppGroupId +/// - Parameter isMainApp: 是否为宿主 app +/// +/// 保存 AppGroupId,并设置 APP & NotificationService 的跨进程监听 +/// 该方法仅限于推送统计,若无统计需求无需调用 +/// 当做推送到达统计时需要同时做到两点 +/// 1. 在 push extension 中初始化后先调用该接口,再调用 recordReceivedRemoteNotificationEvent 方法 +/// 2. 在主进程中在初始化后调用该接口 +/// +/// - Since: 5.3.0 +- (void)configApplicationGroupIdentifier:(NSString *)identifier isMainApp:(BOOL)isMainApp API_AVAILABLE(ios(10.0)); + +#pragma mark - 已读回执V4 + + +/// 获取某条消息的已读回执信息 +/// - Parameters: +/// - targetId: 会话 ID +/// - channelId: 业务 ID +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 +- (void)getMessageReadReceiptV4:(nonnull NSString *)targetId + messageUID:(nonnull NSString *)messageUID + successBlock:(nullable void (^)(NSInteger readCount, NSInteger totalCount, + NSArray *list))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + + +/// 发送消息的已读回执,会将区间内的消息在服务端全部添加已读状态,本地不进行处理。需要 lib 自己调用清除未读等相关接口处理其他业务。 +/// - Parameters: +/// - conversationType: 会话类型 +/// - targetId: 会话 ID +/// - startMessageUID: 开始的消息 UID +/// - endMessageUID: 结束的消息 UID +/// - successBlock: 成功回调 +/// - errorBlock: 失败回调 +/// - Since: 5.6.7 +- (void)sendReadReceiptMessageV4:(RCConversationType)conversationType + targetId:(nonnull NSString *)targetId + startMessageUID:(nullable NSString *)startMessageUID + endMessageUID:(nonnull NSString *)endMessageUID + successBlock:(nullable void (^)(void))successBlock + errorBlock:(nullable void (^)(RCErrorCode status))errorBlock; + +/// v4 已读回执代理 +/// - Parameter delegate: 代理 +/// - Since: 5.6.7 +- (void)setReadReceiptV4Delegate:(nullable id)delegate; + +/// 已读状态代理 (设置该代理可忽略 RCLibDispatchReadReceiptNotification) +/// - Parameter delegate: 代理 +/// - Since: 5.6.7 +- (void)setConversationReadStatusDelegate: + (nullable id)delegate; + +#pragma mark - 订阅事件相关 + +/// 订阅事件。 +/// 当订阅事件的状态发生变化时,将通过回调接口通知调用者。 +/// 订阅接口 一次最多订阅 200 个订阅对象,订阅上限查看开发文档 +/// +/// - Parameter request: 订阅请求对象,包含了需要订阅事件状态的必要信息。 +/// request 必须包含(subscribeType、expiry、userIds) +/// - Parameter completion: 结果回调,用于接收订阅操作的结果或状态更新通知。 +/// - Since: 5.8.1 +- (void)subscribeEvent:(RCSubscribeEventRequest *)request + completion:(void (^)(RCErrorCode status, NSArray *_Nullable failedUserIds))completion; + + +/// 取消订阅事件。 +/// +/// - Parameter request: 取消订阅的请求对象,包含了需要取消订阅事件状态的必要信息。 +/// request 必须包含(subscribeType、userIds) +/// - Parameter completion: 结果回调,用于接收取消订阅操作的结果。 +/// - Since: 5.8.1 +- (void)unSubscribeEvent:(RCSubscribeEventRequest *)request + completion:(void (^)(RCErrorCode status, NSArray *_Nullable failedUserIds))completion; + +/// 查询已订阅事件状态数据。 +/// 此方法用于获取指定对象,指定订阅类型的订阅事件状态信息。 +/// +/// - Parameter request: 查询请求对象,可按订阅类型、指定对象,查询具体订阅事件状态信息。 +/// request 必须包含(subscribeType、userIds) +/// - Parameter completion: 查询操作完成后,订阅事件状态的列表通过此回调返回。 +/// - Since: 5.8.1 +- (void)querySubscribeEvent:(RCSubscribeEventRequest *)request + completion:(void (^)(RCErrorCode status, + NSArray *_Nullable subscribeEvents))completion; + +/// 分页查询已订阅的所有事件状态数据。 +/// 此方法用于分页获取指定订阅类型的所有订阅事件状态信息。 +/// +/// - Parameter request: 查询请求对象,可按订阅类型,查询所有具体订阅事件状态信息。 +/// request 必须包含(subscribeType) +/// - Parameter pageSize: 分页大小 [1~200]。 +/// - Parameter startIndex: 第一页传 0,下一页取返回所有数据的数组数量(比如 pageSize = 20,第二页传 20,第三页传 40)。 +/// - Parameter completion: 查询操作完成后,订阅事件状态的列表通过此回调返回。 +/// +/// ```objc +///@property (nonatomic, strong) NSMutableArray *subscribeEventList; +///- (void)queryAllSubscribeEventWithStartIndex:(NSInteger)index { +/// RCSubscribeEventRequest *request = [[RCSubscribeEventRequest alloc] init]; +/// request.subscribeType = RCSubscribeTypeOnlineStatus; +/// [[RCCoreClient sharedCoreClient] querySubscribeEvent:request pageSize:20 startIndex:index completion:^(RCErrorCode status, NSArray * _Nullable subscribeEvents) { +/// if (RC_SUCCESS == status && subscribeEvents.count > 0) { +/// [self.subscribeEventList addObjectsFromArray:subscribeEvents]; +/// [self queryAllSubscribeEventWithStartIndex:self.subscribeEventList.count]; +/// } +/// }]; +///} +/// +/// ``` +/// +/// - Since: 5.8.1 +- (void)querySubscribeEvent:(RCSubscribeEventRequest *)request + pageSize:(NSInteger)pageSize + startIndex:(NSInteger)startIndex + completion:(nullable void (^)(RCErrorCode status, + NSArray *_Nullable subscribeEvents))completion; + +/// 添加订阅事件监听器。 +/// 用于添加一个监听器来接收所有订阅的用户状态变化事件。 +/// +/// - Parameter delegate: 订阅事件监听器。 +/// - Since: 5.8.1 +- (void)addSubscribeEventDelegate:(id)delegate NS_SWIFT_NAME(addSubscribeEventDelegate(_:)); + +/// 移除订阅事件监听器。 +/// +/// - Parameter delegate: 订阅事件监听器。 +/// - Since: 5.8.1 +- (void)removeSubscribeEventDelegate:(id)delegate + NS_SWIFT_NAME(removeSubscribeEventDelegate(_:)); + +/// 查询已订阅用户的在线状态 +/// - Parameters: +/// - userIds: 用户id集合,限制范围在 [0 ~ 200] 超出限制或者长度为0 会报错 34215 +/// - completion: 结果回调 +/// - Since: 5.28.0 +- (void)getSubscribeUsersOnlineStatus:(NSArray *)userIds + completion:(void(^)(RCErrorCode code, + NSArray *status))completion; +#pragma mark - 用户信息托管 + +/// 设置自己的信息访问权限 +/// +/// - Parameter visibility: 用户信息的访问权限 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)updateMyUserProfileVisibility:(RCUserProfileVisibility)visibility + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取自己的信息访问权限 +/// +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)getMyUserProfileVisibility:(nullable void (^)(RCUserProfileVisibility visibility))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 修改自己的用户信息 +/// +/// - Parameter profile: 用户信息 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.16.0 +- (void)updateMyUserProfile:(RCUserProfile *)profile + successBlock:(nullable void (^)(void))successBlock + errorBlock: + (nullable void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + +/// 查询自己的用户信息 +/// +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)getMyUserProfile:(nullable void (^)(RCUserProfile *userProfile))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 批量获取用户信息 +/// +/// - Parameter userIds: 用户 ID 列表 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调 +/// +/// - Since: 5.10.0 +- (void)getUserProfiles:(NSArray *)userIds + success:(nullable void (^)(NSArray *userProfiles))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + + +/// 按用户应用号精确搜索 +/// +/// - Parameter uniqueId: 用户应用号 +/// - Parameter successBlock: 成功的回调 +/// - Parameter errorBlock: 失败的回调,如果搜不到用户,会返回错误码 RC_USER_PROFILE_USER_NOT_EXIST (24366) +/// +/// - Since: 5.10.0 +- (void)searchUserProfileByUniqueId:(NSString *)uniqueId + success:(nullable void (^)(RCUserProfile *userProfile))successBlock + error:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +#pragma mark - 数据库 + +/// 添加数据库状态监听器(连接前调用) +/// +/// - Parameter delegate: 添加数据库状态监听器。 +/// - Since: 5.10.4 +- (void)addDatabaseStatusDelegate:(id)delegate NS_SWIFT_NAME(addDatabaseStatusDelegate(_:)); + +/// 移除数据库状态监听器 +/// +/// - Parameter delegate: 数据库状态监听器。 +/// - Since: 5.10.4 +- (void)removeDatabaseStatusDelegate:(id)delegate + NS_SWIFT_NAME(removeDatabaseStatusDelegate(_:)); + +#pragma mark - Group + +/// 添加群组事件回调代理 +/// - Since: 5.12.0 +- (void)addGroupEventDelegate:(id)delegate NS_SWIFT_NAME(addGroupEventDelegate(_:)); + +/// 移除群组事件回调代理 +/// - Since: 5.12.0 +- (void)removeGroupEventDelegate:(id)delegate NS_SWIFT_NAME(removeGroupEventDelegate(_:)); + +/// 创建群组 +/// - Parameter groupInfo: 群组信息及权限,groupId、groupName 必填,否则创建失败 +/// - Parameter inviteeUserIds: 被邀请的用户 Id 列表,可以为空,一次最多允许 30 个用户加入。 +/// - Parameter success: 成功回调。 +/// - Parameter error: 失败回调 +/// +/// - Note: +/// +/// **`groupInfo` 参数说明** +/// - `groupId` 最大长度 64 个字符。支持大小写英文字母与数字的组合 +/// - `groupName` 最长不超过 64 个字符,群名称可以重复创建 +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `inviteHandlePermission` 为被邀请人需要同意才能进群时,`processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` ( 25427 ),表示需要被邀请人同意后才能进入群组。 +/// - 当群组的 `inviteHandlePermission` 为不需被邀请人同意时,`processCode` 返回 RC_SUCCESS ( 0 ),被邀请人会直接加入群组。 +/// - Since: 5.16.0 +- (void)createGroup:(RCGroupInfo *)groupInfo + inviteeUserIds:(nullable NSArray *)inviteeUserIds + successBlock:(void (^)(RCErrorCode processCode))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + + +/// 更新群组信息 +/// - Parameter groupInfo: 群组信息,groupId 必填,否则更新失败 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.16.0 +- (void)updateGroupInfo:(RCGroupInfo *)groupInfo + successBlock:(void (^)(void))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock + NS_SWIFT_NAME(updateGroupInfo(_:successBlock:errorBlock:)); + +/// 批量获取群组资料 +/// - Parameter groupIds: 群组 ID 列表,一次最多允许 20 个群组 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Note: 每秒钟最多查询 5 次 +/// - Since: 5.12.0 +- (void)getGroupsInfo:(NSArray *)groupIds + success:(void (^)(NSArray *groupInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 踢出群成员 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,一次最多允许 100 个用户 +/// - Parameter config: 移除成员配置 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)kickGroupMembers:(NSString *)groupId + userIds:(NSArray *)userIds + config:(nullable RCQuitGroupConfig *)config + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 主动退出群组 +/// 用户退出后,群会话信息仍然保留,但不再能接收此群的消息,本地历史消息不删除 +/// - Parameter groupId: 群组 ID +/// - Parameter config: 退出群组配置 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)quitGroup:(NSString *)groupId + config:(nullable RCQuitGroupConfig *)config + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 解散群组 +/// 只有群主,可以解散自已创建的群组 +/// - Parameter groupId: 群组 ID,必填项 +/// - Parameter success: 成功回调,无参数 +/// - Parameter error: 失败回调,包含错误信息 +/// +/// - Since: 5.12.0 +- (void)dismissGroup:(NSString *)groupId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 转让群组 +/// - Parameter groupId: 群组 ID +/// - Parameter newOwnerId: 新群主用户 ID +/// - Parameter quitGroup: 是否退出群组 +/// - Parameter config: 转让群组配置 +/// - Parameter success: 成功回调 +/// - Parameter error: 失败回调 +/// +/// - Since: 5.12.0 +- (void)transferGroupOwner:(NSString *)groupId + newOwnerId:(NSString *)newOwnerId + quitGroup:(BOOL)quitGroup + config:(nullable RCQuitGroupConfig *)config + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 添加群管理员 +/// - Parameter groupId: 群组 ID,必填项 +/// - Parameter userIds: 用户 ID 数组,必填项。用户 ID 必须为群成员,一次最多设置 10 个群成员为管理员,管理员上限为 10 个。群主不支持设置为管理员 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调,包含错误信息 +/// +/// - Since: 5.12.0 +- (void)addGroupManagers:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 移除群管理员 +/// - Parameter groupId: 群组 ID,必填项 +/// - Parameter userIds: 用户 ID 数组,必填项。一次最多操作 10 个管理员 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调,包含错误信息 +/// +/// - Since: 5.12.0 +- (void)removeGroupManagers:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 分页获取群成员信息 +/// - Parameter groupId: 群组 ID +/// - Parameter role: 群成员角色 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 100 条)、是否正序查询(默认按加入群组时间倒序) +/// - Parameter successBlock: 成功回调,此接口不返回分页数据的总条数 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupMembersByRole:(NSString *)groupId + role:(RCGroupMemberRole)role + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock + NS_SWIFT_NAME(getGroupMembersByRole(_:role:option:success:error:)); + + +/// 获取已加入指定群成员信息 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,一次最多不超过 100 个 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupMembers:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(NSArray *groupMembers))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置群成员资料 +/// - Parameter groupId: 群组 ID +/// - Parameter userId: 用户 ID,必填项,支持传入当前登录用户 ID +/// - Parameter nickname: 用户昵称,非必填项,长度不超过 64 个字符,传 nil 或 空字符串表示移除用户昵称 +/// - Parameter extra: 附加信息,非必填项,长度不超过 128 个字符 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.16.0 +- (void)setGroupMemberInfo:(NSString *)groupId + userId:(NSString *)userId + nickname:(nullable NSString *)nickname + extra:(nullable NSString *)extra + successBlock:(void (^)(void))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + +/// 根据群成员昵称查询群成员 +/// - Parameter groupId: 群组 ID +/// - Parameter name: 群成员昵称,必填,不能为空最长不超过 64 个字符。 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 200 条)、是否正序查询(默认倒序) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: 优先匹配群成员昵称 nickname,再匹配群成员用户名 name。只要其中一个字段匹配成功,即返回搜索结果。 +/// - Since: 5.12.0 +- (void)searchGroupMembers:(NSString *)groupId + name:(NSString *)name + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + + +/// 主动加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter successBlock: 成功回调。 +/// - Parameter errorBlock: 失败回调 +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `joinPermission` 为需要群主或管理员审批时,`processCode` 返回 `RC_GROUP_JOIN_GROUP_NEED_MANAGER_ACCEPT` ( 25424 ),表示需要等待群主或管理员的审批。 +/// - 当群组的 `joinPermission` 为不用验证时,`processCode` 返回 RC_SUCCESS ( 0 ),表示加入群组成功。 +/// - Since: 5.12.0 +- (void)joinGroup:(NSString *)groupId + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 邀请用户加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,一次最多不超过 30 个 +/// - Parameter successBlock: 邀请成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当群组的 `joinPermission` 为需要群主或管理员审批时,`processCode` 返回 `RC_GROUP_JOIN_GROUP_NEED_MANAGER_ACCEPT` ( 25424 ),表示需要等待群主或管理员审批。 +/// - 当群组的 `joinPermission` 为不用验证,同时 `inviteHandlePermission` 为需要被邀请人同意时,`processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` ( 25427 ),表示需要被邀请人同意后才能进入群组。 +/// - Since: 5.12.0 +- (void)inviteUsersToGroup:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 用户同意加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请者 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)acceptGroupInvite:(NSString *)groupId + inviterId:(NSString *)inviterId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 用户拒绝加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请者 ID +/// - Parameter reason: 拒绝原因,非必填项,拒绝时可选择是否输入拒绝原因,内容不超过 128 个字符。 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)refuseGroupInvite:(NSString *)groupId + inviterId:(NSString *)inviterId + reason:(nullable NSString *)reason + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + + +/// 群主或管理员同意用户加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请人用户 ID,非必填,如果是邀请入群,则传邀请人 ID;如果是用户主动加群,可以为空。 +/// - Parameter applicantId: 申请入群用户 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// +/// - 当群组的 `inviteHandlePermission` 为需要被邀请人同意时,若 `processCode` 返回 `RC_GROUP_NEED_INVITEE_ACCEPT` (25427),表示需等待被邀请人同意方可加入群组。 +/// - 当群组的 `inviteHandlePermission` 为无需被邀请人同意时,若 `processCode` 返回 `RC_SUCCESS` (0),表示被邀请人已成功加入群组。 +/// +/// 以上仅适用于邀请加入群组的情况,当用户主动申请加入群组时,`processCode` 始终为 `RC_SUCCESS` (0)。 +/// - Since: 5.12.0 +- (void)acceptGroupApplication:(NSString *)groupId + inviterId:(nullable NSString *)inviterId + applicantId:(NSString *)applicantId + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 群主或管理员拒绝用户加入群组 +/// - Parameter groupId: 群组 ID +/// - Parameter inviterId: 邀请人用户 ID,非必填,如果是邀请入群,则传邀请人 ID;如果是主动加群,可以为空。 +/// - Parameter applicantId: 申请者 ID +/// - Parameter reason: 拒绝原因,内容不超过 128 个字符。 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)refuseGroupApplication:(NSString *)groupId + inviterId:(nullable NSString *)inviterId + applicantId:(NSString *)applicantId + reason:(nullable NSString *)reason + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 分页获取群组申请列表 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 200 条)、是否正序查询(默认倒序) +/// - Parameter directions: 申请方向 `RCGroupApplicationDirection` 数组 +/// - Parameter status: 状态类型 `RCGroupApplicationStatus` 数组 +/// - Parameter successBlock: 成功回调,此接口不支持返回请求总数。 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupApplications:(RCPagingQueryOption *)option + directions:(NSArray *)directions + status:(NSArray *)status + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 按角色获取已加入群组的资料 +/// - Parameter role: 群成员角色 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 100 条)、是否正序查询(默认倒序) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getJoinedGroupsByRole:(RCGroupMemberRole)role + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 按群名称搜索已加入群组的资料 +/// - Parameter groupName: 群名称,不能为空最长不超过 64 个字符 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 200 条)、是否正序查询(默认倒序) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)searchJoinedGroups:(NSString *)groupName + option:(RCPagingQueryOption *)option + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取指定已加入群组的资料 +/// - Parameter groupIds: 群 ID 列表,一次最多查询 20 个群组 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getJoinedGroups:(NSArray *)groupIds + success:(void (^)(NSArray *groupInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置群组备注名 +/// - Parameter groupId: 群组 ID +/// - Parameter remark: 群备注,字符串长度不超过 64 个字符。传 nil 或 空字符串 表示移除群备注 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setGroupRemark:(NSString *)groupId + remark:(nullable NSString *)remark + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 添加群组特别关注用户 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,单次最多关注 100 个用户 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)addGroupFollows:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 删除群组特别关注用户 +/// - Parameter groupId: 群组 ID +/// - Parameter userIds: 用户 ID 列表,单次取消关注 100 个用户 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)removeGroupFollows:(NSString *)groupId + userIds:(NSArray *)userIds + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取群组特别关注用户 +/// - Parameter groupId: 群组 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getGroupFollows:(NSString *)groupId + success:(void (^)(NSArray *followInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + + +#pragma mark - Friend + +/// 添加好友事件监听 +/// - Since: 5.12.0 +- (void)addFriendEventDelegate:(id)delegate NS_SWIFT_NAME(addFriendEventDelegate(_:)); + +/// 移除好友事件监听 +/// - Since: 5.12.0 +- (void)removeFriendEventDelegate:(id)delegate NS_SWIFT_NAME(removeFriendEventDelegate(_:)); + +/// 添加好友 +/// - Parameter userId: 用户 ID +/// - Parameter directionType: 好友方向类型 +/// - Parameter extra: 发送好友请求时的附加信息,长度不超过 128 个字符。 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Note: +/// +/// **`successBlock` 的 `processCode` 参数说明** +/// - 当对方添加好友权限为需要同意才能添加好友时,`processCode` 返回 `RC_FRIEND_NEED_ACCEPT` ( 25461 ),表示对方需要同意之后才能添加为好友。 +/// - 当对方添加好友权限为不需要同意时,`processCode` 返回 `RC_SUCCESS` ( 0 ),好友直接添加成功。 +/// - Since: 5.12.0 +- (void)addFriend:(NSString *)userId + directionType:(RCDirectionType)directionType + extra:(nullable NSString *)extra + success:(void (^)(RCErrorCode processCode))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 删除好友 +/// - Parameter userIds: 用户 ID 列表,一次最多解除 100 个用户 +/// - Parameter directionType: 好友方向类型 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)deleteFriends:(NSArray *)userIds + directionType:(RCDirectionType)directionType + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 同意加为好友 +/// - Parameter userId: 用户 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)acceptFriendApplication:(NSString *)userId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 拒绝加为好友 +/// - Parameter userId: 用户 ID +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)refuseFriendApplication:(NSString *)userId + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 好友信息设置 +/// - Parameter userId: 用户 ID +/// - Parameter remark: 好友备注,最多为 64 个字符,不传或为空时清除备注名。 +/// - Parameter extProfile: 扩展信息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.16.0 +- (void)setFriendInfo:(NSString *)userId + remark:(nullable NSString *)remark + extProfile:(nullable NSDictionary *)extProfile + successBlock:(void (^)(void))successBlock + errorBlock:(void (^)(RCErrorCode errorCode, NSArray *_Nullable errorKeys))errorBlock; + +/// 检查好友关系 +/// - Parameter userIds: 用户 ID 列表,一次最多查询 100 个用户 +/// - Parameter directionType: 好友方向类型,目前只支持双向检查 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)checkFriends:(NSArray *)userIds + directionType:(RCDirectionType)directionType + success:(void (^)(NSArray *friendRelations))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取好友列表 +/// - Parameter directionType: 好友方向类型 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriends:(RCQueryFriendsDirectionType)directionType + success:(void (^)(NSArray *friendInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 分页获取好友请求列表 +/// - Parameter option: 查询选项,包含 页面标识(非必填,不填返回第一页数据)、每页条数(最大不超过 100 条)、是否正序查询(默认倒序) +/// - Parameter types: 请求类型数组 RCFriendApplicationType +/// - Parameter status: 申请状态数组 RCFriendApplicationStatus +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriendApplications:(RCPagingQueryOption *)option + types:(NSArray *)types + status:(NSArray *)status + success:(void (^)(RCPagingQueryResult *result))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据用户 ID 获取好友信息 +/// - Parameter userIds: 用户 ID 列表,一次最多获取 100 个好友信息 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriendsInfo:(NSArray *)userIds + success:(void (^)(NSArray *friendInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 根据好友昵称搜索好友信息 +/// - Parameter name: 用户昵称,不能为空最长不超过 64 个字符 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// - Note: 默认先匹配好友备注名 remark,再匹配好友名称 name。只要其中一个字段匹配成功,即返回搜索结果。 +/// - Since: 5.12.0 +- (void)searchFriendsInfo:(NSString *)name + success:(void (^)(NSArray *friendInfos))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置加好友权限 +/// - Parameter permission: 加好友权限 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)setFriendAddPermission:(RCFriendAddPermission)permission + success:(void (^)(void))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +/// 获取加好友权限 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +/// +/// - Since: 5.12.0 +- (void)getFriendAddPermission:(void (^)(RCFriendAddPermission permission))successBlock + error:(void (^)(RCErrorCode errorCode))errorBlock; + +#pragma mark - Stream + +/// 添加流式消息请求事件监听。 +/// - Since: 5.16.0 +- (void)addStreamMessageRequestEventDelegate:(id)delegate + NS_SWIFT_NAME(addStreamMessageRequestEventDelegate(_:)); + +/// 移除流式消息请求事件监听。 +/// - Since: 5.16.0 +- (void)removeStreamMessageRequestEventDelegate:(id)delegate + NS_SWIFT_NAME(removeStreamMessageRequestEventDelegate(_:)); + +/// 请求流式消息。 +/// 请求事件会在 RCStreamMessageRequestEventDelegate 代理中回调。 +/// +/// - Parameters: +/// - params: 请求参数对象。 +/// - completionHandler: 发起请求结果回调。流式消息的接收回调在 `RCStreamMessageRequestEventDelegate` 中。 +/// +/// - Since: 5.16.0 +- (void)requestStreamMessageWithParams:(RCStreamMessageRequestParams *)params + completionHandler:(void (^)(RCErrorCode code))completionHandler; + + + +/// 保存撤回消息编辑草稿 +/// @param draft 详见 RCEditedMessageDraft 定义 +/// @param identifier - identifier.type 只允许单聊,群聊,超级群,identifier.targetId 必填参数,identifier.channeld 非必填 +/// @param completion 结果回调 +/// +/// - Since 5.28.0 +- (void)saveEditedMessageDraft:(nullable RCEditedMessageDraft *)draft + identifier:(RCConversationIdentifier *)identifier + completion:(void(^)(RCErrorCode code))completion; + +/// 获取撤回消息编辑草稿 +/// @param identifier identifier.type 只允许单聊,群聊,超级群,identifier.targetId 必填参数,identifier.channeld 非必填 +/// @param completion 结果回调 +/// +/// - Since 5.28.0 +- (void)getEditedMessageDraft:(RCConversationIdentifier *)identifier + completion:(void(^)(RCErrorCode code, RCEditedMessageDraft * _Nullable draft))completion; + +/// 清除撤回消息编辑草稿 +/// @param identifier identifier.type 只允许单聊,群聊,超级群,identifier.targetId 必填参数,identifier.channeld 非必填 +/// @param completion 结果回调 +/// +/// - Since 5.28.0 +- (void)clearEditedMessageDraft:(RCConversationIdentifier *)identifier + completion:(void(^)(RCErrorCode code))completion; +@end + +@protocol RCReadReceiptV5Delegate; + +@interface RCCoreClient (ReadReceiptV5) + +/// 发送已读回执(V5)。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUIds: 消息唯一 Id 列表,最多 100 条。 +/// - completion: 结果回调。 +/// +/// - Note: +/// 消息中 `needReceipt` 为 YES 时,接收方调用本接口,通知消息发送方已读。 +/// 消息发送方会收到 `didReceiveMessageReadReceiptInfo:` 回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUIds` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)sendReadReceiptResponseV5:(RCConversationIdentifier *)identifier + messageUIds:(NSArray *)messageUIds + completion:(nullable void (^)(RCErrorCode code))completion; + +/// 批量获取已发送消息回执信息。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUIds: 消息唯一 ID 数组,最多 100 条。 +/// - completion: 结果回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUIds` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)getMessageReadReceiptInfoV5:(RCConversationIdentifier *)identifier + messageUIds:(NSArray *)messageUIds + completion:(RCReadReceiptInfoListCompletion)completion; + +/// 批量获取已发送消息回执信息。 +/// +/// - Parameters: +/// - identifiers: 消息标识数组,最多 100 个。 +/// - completion: 结果回调。 +/// +/// - Since: 5.20.2 +- (void)getMessageReadReceiptInfoV5ByIdentifiers:(NSArray *)identifiers + completion:(RCReadReceiptInfoListCompletion)completion; + +/// 分页查询已读回执用户列表。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUId: 消息唯一 ID。 +/// - option: 查询条件。 +/// - completion: 结果回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUId` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)getMessagesReadReceiptUsersByPageV5:(RCConversationIdentifier *)identifier + messageUId:(NSString *)messageUId + option:(RCReadReceiptUsersOption *)option + completion:(RCMessageReadDetailCompletion)completion; + +/// 查询指定的用户列表已读回执状态。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUId: 消息唯一 ID。 +/// - userIds: 用户 Id 数组,最多 100 个用户。 +/// - completion: 结果回调。 +/// +/// - Warning: +/// `identifier` 只支持单群聊,`messageUId` 必须是会话中的消息。 +/// +/// - Since: 5.20.0 +- (void)getMessagesReadReceiptByUsersV5:(RCConversationIdentifier *)identifier + messageUId:(NSString *)messageUId + userIds:(NSArray *)userIds + completion:(RCMessageReadDetailCompletion)completion; + +/// 添加已读回执 V5 事件监听。 +/// +/// - Parameter delegate: 事件代理。 +/// +/// - Since: 5.20.0 +- (void)addReadReceiptV5Delegate:(id)delegate NS_SWIFT_NAME(addReadReceiptV5Delegate(_:)); + +/// 移除已读回执 V5 事件监听。 +/// +/// - Parameter delegate: 事件代理。 +/// +/// - Since: 5.20.0 +- (void)removeReadReceiptV5Delegate:(id)delegate + NS_SWIFT_NAME(removeReadReceiptV5Delegate(_:)); + +@end + +@protocol RCSpeechToTextDelegate; + +/// 语音转文字。 +/// +/// - Since: 5.22.0 +@interface RCCoreClient (STT) + +/// 发起语音转换文本请求。 +/// +/// - Parameter messageUId: 消息唯一 ID。 +/// - Parameter completionHandler: 结果回调。 +/// +/// - Note: `completionHandler` 是发起请求的结果回调,转换完成的结果会通过全局代理 `RCSpeechToTextDelegate` 回调。 +/// +/// - Since: 5.22.0 +- (void)requestSpeechToTextForMessage:(NSString *)messageUId + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 设置语音转换文本功能的可见性。 +/// +/// - Parameters: +/// - messageId: 消息本地 ID。 +/// - isVisible: 是否可见。 +/// - completionHandler: 结果回调。 +/// +/// - Note: 可见状态会同步到本地数据库。 +/// +/// - Since: 5.20.0 +- (void)setMessageSpeechToTextVisible:(NSUInteger)messageId + isVisible:(BOOL)isVisible + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 添加语音转文本代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.20.0 +- (void)addSpeechToTextDelegate:(id)delegate NS_SWIFT_NAME(addSpeechToTextDelegate(_:)); + +/// 移除语音转文本代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.20.0 +- (void)removeSpeechToTextDelegate:(id)delegate NS_SWIFT_NAME(removeSpeechToTextDelegate(_:)); + +@end + +@class RCTranslateMessagesParams; +@class RCTranslateTextsParams; +@protocol RCTranslationDelegate; + +@interface RCCoreClient (Translate) + +/// 批量翻译文本消息。 +/// +/// - Parameters: +/// - params: 翻译的消息参数。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)translateMessagesWithParams:(RCTranslateMessagesParams *)params + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 批量翻译文本内容。 +/// +/// - Parameters: +/// - params: 翻译的文本参数。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)translateTextsWithParams:(RCTranslateTextsParams *)params + completionHandler:(nullable void (^)(RCErrorCode code))completionHandler; + +/// 设置用户级别的翻译语言。 +/// +/// - Parameters: +/// - language: 语言。 +/// - completionHandler: 结果回调。 +/// +/// - Note: 设置的 `language`,请使用开发者文档中支持的语言设置。 +/// +/// - Since: 5.24.0 +- (void)setTranslationLanguage:(NSString *)language completionHandler:(void (^)(RCErrorCode code))completionHandler; + +/// 获取用户级别的翻译语言。 +/// +/// - Parameters: +/// - successBlock: 成功回调。 +/// - errorBlock: 失败回调。 +/// +/// - Since: 5.24.0 +- (void)getTranslationLanguage:(nullable void (^)(NSString *language))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 设置用户级别的自动翻译是否开启。 +/// +/// - Parameters: +/// - isEnable: 是否自动翻译。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)setAutoTranslateState:(BOOL)isEnable completionHandler:(void (^)(RCErrorCode code))completionHandler; + +/// 获取用户级别的自动翻译是否开启。 +/// +/// - Parameters: +/// - successBlock: 成功回调。 +/// - errorBlock: 失败回调。 +/// +/// - Since: 5.24.0 +- (void)getAutoTranslateEnabled:(nullable void (^)(BOOL isEnable))successBlock + errorBlock:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +/// 批量设置会话翻译策略。 +/// +/// - Parameters: +/// - identifiers: 会话列表。 +/// - strategy: 翻译策略。 +/// - completionHandler: 结果回调。 +/// +/// - Since: 5.24.0 +- (void)batchSetConversationTranslateStrategy:(NSArray *)identifiers + strategy:(RCTranslateStrategy)strategy + completionHandler:(void (^)(RCErrorCode code))completionHandler; + +/// 添加翻译事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.24.0 +- (void)addTranslationDelegate:(id)delegate NS_SWIFT_NAME(addTranslationDelegate(_:)); + +/// 移除翻译事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.24.0 +- (void)removeTranslationDelegate:(id)delegate NS_SWIFT_NAME(removeTranslationDelegate(_:)); + +@end + +#pragma mark - Settings - + +@class RCAppSettings; + +/// 设置相关。 +@interface RCCoreClient (Settings) + +/// 连接成功后,AppKey 对应的配置。 +/// +/// - Since: 5.22.0 +- (nullable RCAppSettings *)getAppSettings; + +/// 添加用户配置事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.7.8 +- (void)addUserSettingsDelegate:(id)delegate NS_SWIFT_NAME(addUserSettingsDelegate(_:)); + +/// 移除用户配置事件代理。 +/// +/// - Parameter delegate: 代理。 +/// +/// - Since: 5.7.8 +- (void)removeUserSettingsDelegate:(id)delegate NS_SWIFT_NAME(removeUserSettingsDelegate(_:)); + +@end + +@class RCMessageResult; +@class RCModifyMessageParams; +@class RCRefreshReferenceMessageParams; + +/// 消息编辑。 +/// +/// - Since: 5.26.0 +@interface RCCoreClient (RCMessageModify) + +/// 消息修改。 +/// +/// - Parameters: +/// - params: 消息修改参数对象。 +/// - completionHandler: 回调结果。 +- (void)modifyMessageWithParams:(RCModifyMessageParams *)params + completionHandler:(void (^)(RCMessage *message, RCErrorCode code))completionHandler; + +/// 批量查询需要刷新的引用消息。 +/// +/// - Parameter params: 刷新引用消息参数对象。 +/// - Parameter localMessageBlock: 获取到的本地消息回调。 +/// - Parameter remoteMessageBlock: 获取到的远端消息回调。 +/// - Parameter errorBlock: 错误回调。 +/// +/// - Note: +/// 通过 `params.messageUIds` 获取的消息分为两部分: +/// 1. 先从本地查找消息,查询到之后,将结果通过 `localMessageBlock` 回调返回。 +/// 2. 本地没有查到的消息,会从服务器查询,并将结果通过 `remoteMessageBlock` 回调返回。 +- (void)refreshReferenceMessageWithParams:(RCRefreshReferenceMessageParams *)params + localMessageBlock:(void (^)(NSArray *results))localMessageBlock + remoteMessageBlock:(void (^)(NSArray *results))remoteMessageBlock + errorBlock:(void (^)(RCErrorCode code))errorBlock; + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCDownloadInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCDownloadInfo.h new file mode 100644 index 0000000..568fc7b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCDownloadInfo.h @@ -0,0 +1,27 @@ +// +// RCDownloadInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/1/30. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 文件下载信息 +@interface RCDownloadInfo : NSObject + +/// 文件总大小 +@property (nonatomic, assign) long totalLength; + +/// 文件当前下载的大小 +@property (nonatomic, assign) long currentLength; + +/// 文档当前的下载进度 0 - 100 +@property (nonatomic, assign) int currentProgress; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCDownloadItem.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCDownloadItem.h new file mode 100644 index 0000000..9e72bec --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCDownloadItem.h @@ -0,0 +1,115 @@ +// +// RCEDownloadItem.h +// RongEnterpriseApp +// +// Created by zhaobingdong on 2018/5/15. +// Copyright © 2018 年 rongcloud. All rights reserved. +// +/// +/// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] +/// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] +/// + +#import + +/** + 下载状态枚举 + + - RCDownloadItemStateWaiting: 等待 + - RCDownloadItemStateChecking: 正在检测是否支持 Range + - RCDownloadItemStateRunning: 正在下载 + - RCDownloadItemStateSuspended: 暂停 + - RCDownloadItemStateCanceled: 已取消 + - RCDownloadItemStateCompleted: 完成 + - RCDownloadItemStateFailed: 失败 + */ +typedef NS_ENUM(NSInteger, RCDownloadItemState) { + RCDownloadItemStateWaiting = 0, + RCDownloadItemStateChecking, + RCDownloadItemStateRunning, + RCDownloadItemStateSuspended, + RCDownloadItemStateCanceled, + RCDownloadItemStateCompleted, + RCDownloadItemStateFailed +}; + +NS_ASSUME_NONNULL_BEGIN +@class RCDownloadItem; +@protocol RCDownloadItemDelegate + +/** + 下载任务状态变化时调用 + + - Parameter item: 下载任务对象 + - Parameter state: 状态 + */ +- (void)downloadItem:(RCDownloadItem *)item state:(RCDownloadItemState)state; + +/** + 下载进度上报时调用 + + - Parameter item: 下载任务 + - Parameter progress: 下载进度 + */ +- (void)downloadItem:(RCDownloadItem *)item progress:(float)progress; + +/** + 任务结束时调用 + + - Parameter item: 下载任务 + - Parameter error: 错误信息对象,成功时为 nil + - Parameter path: 下载完成后文件的路径,此路径为相对路径,相对于沙盒根目录 NSHomeDirectory + */ +- (void)downloadItem:(RCDownloadItem *)item + didCompleteWithError:(nullable NSError *)error + filePath:(nullable NSString *)path; +@end + +__deprecated_msg("Use [RCCoreClient getDownloadInfo:] instead") + /// + /// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] + /// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] + /// + @interface RCDownloadItem : NSObject + +/// 下载状态 +@property (nonatomic, assign, readonly) + RCDownloadItemState state __deprecated_msg("Use [RCDownloadInfo getDownloadInfo:] instead"); + +/// 文件总大小 单位字节 +@property (nonatomic, assign, readonly) + long long totalLength __deprecated_msg("Use [RCDownloadInfo totalLength] instead"); + +/// 文件当前的大小 +@property (nonatomic, assign, readonly) + long long currentLength __deprecated_msg("Use [RCDownloadInfo totalLength] currentLength"); + +/// 文件对应的网络 URL +@property (nonatomic, strong, readonly, nullable) NSURL *URL; + +/// 标识是否可恢复下载。YES 表示可恢复,支持 Range。NO 表示不支持 Range。 +@property (nonatomic, assign, readonly) BOOL resumable; + +/// 下载任务的标识符 +@property (nonatomic, copy, readonly, nullable) NSString *identify; + +/// 下载任务的代理对象 +@property (nonatomic, weak, nullable) id delegate; + ++ (instancetype)new NS_UNAVAILABLE; + +/// 开始下载 +- (void) + downLoad __deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead"); + +/// 暂停下载 +- (void)suspend __deprecated_msg("Use [RCCoreClient pauseDownloadMediaUrl:successBlock:errorBlock:] instead"); + +/// 恢复下载 +- (void)resume __deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead"); + +/// 取消下载 +- (void)cancel __deprecated_msg("Use [RCCoreClient cancelDownloadMediaUrl:successBlock:errorBlock:] instead"); + +@end +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCEditedMessageDraft.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCEditedMessageDraft.h new file mode 100644 index 0000000..5aeae6e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCEditedMessageDraft.h @@ -0,0 +1,20 @@ +// +// RCEditedMessageDraft.h +// RongIMLibCore +// +// Created by huan xu on 2025/9/8. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +/// - Since 5.28.0 +@interface RCEditedMessageDraft : NSObject +/// 消息唯一标识(必填参数) +@property (nonatomic, copy) NSString *messageUId; +/// 草稿内容(可选参数) +@property (nonatomic, copy, nullable) NSString *content; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCErrorCode.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCErrorCode.h new file mode 100644 index 0000000..e487462 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCErrorCode.h @@ -0,0 +1,1923 @@ +/** + * Copyright (c) 2014-2023, RongCloud. + * All rights reserved. + */ + +// RCErrorCode.h +// 融云 IM 错误码 +// 本文件由 ErrorCodeGenerator 自动生成,请勿擅自修改 + +#import + +#ifndef RCErrorCode_h +#define RCErrorCode_h + +typedef NS_ENUM(NSInteger, RCErrorCode) { + /// 成功 + /// + RC_SUCCESS = 0, + + /// 已被对方加入黑名单,消息发送失败 + /// + REJECTED_BY_BLACKLIST = 405, + + /// 对方开启了只接收白名单的信息,但己方不在白名单中,发送消息失败 + /// + NOT_IN_WHITELIST = 407, + + /// 鉴权错误 + /// + RC_SERVICE_REQUEST_UNAUTHORIZED = 1004, + + /// 系统会话不支持发送该消息 + /// + /// - Since: 5.6.2 + RC_CONVERSATION_NOT_SUPPORT_MESSAGE = 20109, + + /// 消息内容存在敏感词 + /// + /// - Since: 5.26.0 + RC_DANGEROUS_CONTENT = 20112, + + /// 消息内容未通过审核 + /// + /// - Since: 5.26.0 + RC_CONTENT_REVIEW_REJECTED = 20113, + + /// 消息超过可修改时间 + /// + /// - Since: 5.26.0 + MESSAGE_OVER_MODIFY_TIME_FAIL = 20114, + + /// 消息尺寸超出限制 + /// + /// - Since: 5.26.0 + RC_MESSAGE_SIZE_EXCEEDED = 20115, + + /// 消息不支持修改 + /// + /// - Since: 5.26.0 + MESSAGE_UNSUPPORTED_MODIFY = 20116, + + /// appkey的数据中心与请求云控的数据中心不匹配 + /// + /// - Since: 5.6.6 + CLOUD_DATA_CENTER_INVALID = 20512, + + /// 发送消息频率过高,1 秒钟最多只允许发送 5 条消息 + /// + SEND_MSG_FREQUENCY_OVERRUN = 20604, + + /// 操作被禁止,此错误码已被弃用 + /// + RC_OPERATION_BLOCKED = 20605, + + /// 操作不支持,仅私有云有效,服务端禁用了该操作 + /// + RC_OPERATION_NOT_SUPPORT = 20606, + + /// 请求超出了调用频率限制,请稍后再试 + /// + RC_REQUEST_OVERFREQUENCY = 20607, + + /// 不在讨论组 + /// + NOT_IN_DISCUSSION = 21406, + + /// 发送的消息中包含敏感词 (发送方发送失败,接收方不会收到消息) + /// + RC_MSG_BLOCKED_SENSITIVE_WORD = 21501, + + /// 消息中敏感词已经被替换 (接收方可以收到被替换之后的消息) + /// + RC_MSG_REPLACED_SENSITIVE_WORD = 21502, + + /// 原始消息不存在。 + /// + /// - Since: 5.2.0 + RC_ORIGINAL_MESSAGE_NOT_EXIST = 22201, + + /// 超级群扩展消息,但是原始消息不支持扩展 + /// + /// - Since: 5.2.0 + RC_ORIGINAL_MESSAGE_CANT_EXPAND = 22202, + + /// 超级群扩展消息,扩展内容格式错误 + /// + /// - Since: 5.2.0 + RC_MESSAGE_EXPAND_FORMAT_ERROR = 22203, + + /// 超级群扩展消息,无操作权限 + /// + /// - Since: 5.2.0 + RC_MESSAGE_EXPAND_NOT_AUTHORIZED = 22204, + + /// 不在该群组中 + /// + NOT_IN_GROUP = 22406, + + /// 在群组中已被禁言。 + /// + FORBIDDEN_IN_GROUP = 22408, + + /// 不在该聊天室中。 + /// + NOT_IN_CHATROOM = 23406, + + /// 聊天室禁言白名单人数超限(最多5个) + /// 创建聊天室时,禁言白名单用户列表,支持批量设置,最多不超过 20 个 + /// + RC_GET_USER_INFO_ERROR = 23407, + + /// 在该聊天室中已被禁言 + /// + FORBIDDEN_IN_CHATROOM = 23408, + + /// 已被踢出并禁止加入聊天室。被禁止的时间取决于服务端调用踢出接口时传入的时间。 + /// + KICKED_FROM_CHATROOM = 23409, + + /// 聊天室不存在 + /// + RC_CHATROOM_NOT_EXIST = 23410, + + /// 聊天室成员超限,开发者可以提交工单申请聊天室人数限制变更。 + /// + RC_CHATROOM_IS_FULL = 23411, + + /// 聊天室接口参数无效。请确认参数是否为空或者有效。 + /// + RC_PARAMETER_INVALID_CHATROOM = 23412, + + /// 聊天室云存储业务未开通 + /// + RC_ROAMING_SERVICE_UNAVAILABLE_CHATROOM = 23414, + + /// 聊天室的 KV 属性个数超限,单个聊天室默认上限为 100 个 + /// + RC_EXCCED_MAX_KV_SIZE = 23423, + + /// 没有权限修改聊天室中已存在的属性值 + /// + RC_TRY_OVERWRITE_INVALID_KEY = 23424, + + /// 超过聊天室中状态设置频率,1 个聊天室 1 秒钟最多设置和删除状态 100 次 + /// + RC_EXCCED_MAX_CALL_API_SIZE = 23425, + + /// 聊天室属性自定义设置,您可以在开发者后台免费基础功能页面中开启该功能。 + /// + RC_KV_STORE_NOT_AVAILABLE = 23426, + + /// 聊天室属性不存在 + /// + RC_KEY_NOT_EXIST = 23427, + + /// 聊天室批量设置或删除KV部分不成功 + /// + RC_KV_STORE_NOT_ALL_SUCCESS = 23428, + + /// 聊天室批量设置或删除KV数量超限(最多一次10条) + /// + RC_KV_STORE_OUT_OF_LIMIT = 23429, + + /// 聊天室设置 KV 失败,出现在两人或者多端同时操作一个 KV。 如果出现该错误,为避免和其他端同时操作,请延时一定时间再试 + /// + RC_KV_CONCURRENT_SET_ERROR = 23431, + + /// 加入聊天室附加信息长度超限,默认最大长度为 128 个字符,服务可配置 + /// + /// - Since: 5.10.3 + RC_CHATROOM_EXTRA_SIZE_LIMIT_EXCEED = 23437, + + /// 没有设置该用户托管属性的权限 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_KEY_NOT_ALLOW_SDK_SET = 24360, + + /// 用户托管基本属性的key列表中没有此key + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_KEY_NOT_EXIST = 24361, + + /// 用户托管扩展属性的 key 列表中没有此 key + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_EXT_KEY_NOT_EXIST = 24362, + + /// 超过了可以设置的用户托管扩展属性的最大上限 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_EXT_KV_COUNT_EXCEED_LIMIT = 24363, + + /// 用户托管基本属性或扩展属性的Value,字符超过最大上限 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_VALUE_LENGTH_EXCEED_LIMIT = 24364, + + /// 批量查询用户托管资料的数量超过了可以查询的上限 100 个 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_QUERY_COUNT_EXCEED_LIMIT = 24365, + + /// 没有此用户 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_USER_NOT_EXIST = 24366, + + /// 用户托管此属性 Value 只能是数字 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_VALUE_CAN_ONLY_BE_NUMBERS = 24367, + + /// 用户托管此属性 Value 值超过设置取值范围 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_VALUE_EXCEED_RANGE = 24368, + + /// 未开启用户信息托管功能 + /// + /// - Since: 5.10.0 + RC_USER_PROFILE_SERVICE_UNAVAILABLE = 24369, + + /// 超级群功能未开通 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_DISABLED = 24401, + + /// 超级群服务异常 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_SERVICE_ABNORMAL = 24402, + + /// 超级群参数错误 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_PARAMETER_ERROR = 24403, + + /// 超级群未知异常 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_UNKNOWN_ERROR = 24404, + + /// 非超级群成员 + /// + /// - Since: 5.2.0 + RC_NOT_IN_ULTRA_GROUP = 24406, + + /// 超级群成员禁言 + /// + /// - Since: 5.2.0 + RC_FORBIDDEN_IN_ULTRA_GROUP = 24408, + + /// 超级群不存在 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_NOT_EXIST = 24410, + + /// 超级群成员超限制 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_MEMBERS_EXCEED_LIMIT = 24411, + + /// 用户加入超级群数量超限 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_NUMBER_EXCEED_LIMIT = 24412, + + /// 创建超级群频道,频道数超限 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_CHANNELS_EXCEED_LIMIT = 24413, + + /// 超级群频道 ID 不存在 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_CHANNEL_ID_NOT_EXIST = 24414, + + /// 超级群频道发送消息超限:超级群下每个频道有消息发送频率限制,默认每秒 30 条 频道内每秒发送消息总量超过限制会收到该错误码,建议延时发送或重试发送 + /// + /// - Since: 5.2.1 + RC_ULTRA_GROUP_CHANNEL_MESSAGE_EXCEED_LIMIT = 24415, + + /// 用户不在超级群私有频道中 + /// + /// - Since: 5.2.4 + RC_ULTRA_GROUP_USER_NOT_IN_PRIVATE_CHANNEL = 24416, + + /// 撤回消息参数无效,请确认撤回消息参数是否正确的填写 + /// + RC_RECALLMESSAGE_PARAMETER_INVALID = 25101, + + /// 未开通单群聊云存储服务 + /// + RC_MESSAGE_STORAGE_SERVICE_UNAVAILABLE = 25102, + + /// 未知异常 + /// + /// - Since: 5.6.7 + RC_SERVER_UNKNOWN_ERROR = 25104, + + /// IMLib 撤回消息可以撤回自己发送的消息和别人发送的消息,IM 服务有开关,控制只可以撤回自己发送的消息,当服务该开关打开时,撤回别人的消息会报这个错误。 + /// + /// - Since: 5.2.4 + RC_RECALL_MESSAGE_USER_INVALID = 25107, + + /// 托管服务异常 + /// + /// - Since: 5.12.0 + RC_ENTRUST_SERVER_ERROR = 25402, + + /// 托管服务参数错误 + /// + /// - Since: 5.12.0 + RC_ENTRUST_SERVER_PARAMETER_ERROR = 25403, + + /// 非法操作,非群主修改群权限相关,msg中返回传的对应的key + /// + /// - Since: 5.12.0 + RC_GROUP_ILLEGAL_ERROR = 25404, + + /// 没有权限操作 + /// + /// - Since: 5.12.0 + RC_GROUP_AUTHORITY_ERROR = 25405, + + /// 参数异常,存在长度超限 + /// + /// - Since: 5.12.0 + RC_GROUP_PARAMETER_LENGTH_EXCEED_LIMIT = 25406, + + /// 参数异常,非法字符 + /// + /// - Since: 5.12.0 + RC_GROUP_PARAMETER_FORMAT_ERROR = 25407, + + /// 参数值必须是数字 + /// + /// - Since: 5.12.0 + RC_GROUP_PARAMETER_VALUE_CAN_ONLY_BE_NUMBERS = 25408, + + /// 群组 ID 已存在 + /// + /// - Since: 5.12.0 + RC_GROUP_ID_ALREADY_EXIST = 25409, + + /// 群 ID 不存在 + /// + /// - Since: 5.12.0 + RC_GROUP_ID_NOT_EXIST = 25410, + + /// 群成员超限 + /// + /// - Since: 5.12.0 + RC_GROUP_MEMBERS_COUNT_EXCEED_LIMIT = 25411, + + /// 群成员 ID 已在当前群组中 + /// + /// - Since: 5.12.0 + RC_GROUP_MEMBERS_ALREADY_IN_GROUP = 25412, + + /// 不允许通过 SDK 进行此操作 + /// + /// - Since: 5.12.0 + RC_GROUP_NOT_ALLOW_SDK_OPERATION = 25413, + + /// 不允许任何人加入,无法加入群组 + /// + /// - Since: 5.12.0 + RC_GROUP_NOT_ALLOW_JOIN = 25414, + + /// 扩展信息 Key 值不存在 + /// + /// - Since: 5.12.0 + RC_GROUP_EXT_KEY_NOT_EXIST = 25415, + + /// 查询频率超限 + /// + /// - Since: 5.12.0 + RC_GROUP_REQUEST_OVERFREQUENCY = 25416, + + /// 群主不能被踢出/退出群组 + /// + /// - Since: 5.12.0 + RC_GROUP_OWNER_NOT_ALLOW_QUIT_OR_KICK = 25417, + + /// 用户ID不在群组中 + /// + /// - Since: 5.12.0 + RC_GROUP_USER_NOT_IN_GROUP = 25418, + + /// 管理员/关注 人数超过上限 + /// + /// - Since: 5.12.0 + RC_GROUP_MANAGER_OR_FOLLOW_COUNT_EXCEED_LIMIT = 25419, + + /// 用户 ID 不在当前群管理员 + /// + /// - Since: 5.12.0 + RC_GROUP_USER_IS_NOT_MANAGER_IN_GROUP = 25420, + + /// 无对应群 ID 和用户 ID 的邀请请求 + /// + /// - Since: 5.12.0 + RC_GROUP_APPLICATION_NOT_EXIST = 25421, + + /// 查询群信息个数超限 + /// + /// - Since: 5.12.0 + RC_GROUP_QUERY_GROUP_COUNT_EXCEED_LIMIT = 25422, + + /// 群名称不能为空 + /// + /// - Since: 5.12.0 + RC_GROUP_NAME_INVALID = 25423, + + /// 申请进群需要等待管理员审批 + /// + /// - Since: 5.12.0 + RC_GROUP_JOIN_GROUP_NEED_MANAGER_ACCEPT = 25424, + + /// 群主不支持设置为管理员 + /// + /// - Since: 5.12.0 + RC_GROUP_OWNER_NOT_ALLOW_BE_MANAGER = 25425, + + /// 邀请人进群时没有权限 + /// + /// - Since: 5.12.0 + RC_GROUP_NO_INVITE_PERMISSION = 25426, + + /// 邀请进群需要被邀请人同意 + /// + /// - Since: 5.12.0 + RC_GROUP_NEED_INVITEE_ACCEPT = 25427, + + /// 管理员或群主处理请求时,别的管理员已处理 + /// + /// - Since: 5.12.0 + RC_GROUP_APPLICATION_ALREADY_HANDLE = 25428, + + /// 老的群不支持调用托管接口,需要导入后才能调用 + /// + /// - Since: 5.12.0 + RC_GROUP_OLD_GROUP_NOT_ENTRUST = 25429, + + /// 群ID不合法,包含特殊字符 + /// + /// - Since: 5.12.0 + RC_GROUP_ID_INVALID = 25430, + + /// pagetoken解析失败 + /// + /// - Since: 5.12.0 + RC_PAGE_TOKEN_PARSING_FAILED = 25432, + + /// 已经互为好友,操作无效 + /// + /// - Since: 5.12.0 + RC_FRIEND_ALREADY_FRIEND = 25460, + + /// 待对方同意后才能加为好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NEED_ACCEPT = 25461, + + /// 在目标用户黑名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_IN_OTHER_BLACK_LIST = 25462, + + /// 不在目标用户白名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_IN_OTHER_WHITE_LIST = 25463, + + /// 目标用户在当前用户黑名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_IN_MY_BLACK_LIST = 25464, + + /// 不在当前用户白名单中,不能添加好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_IN_MY_WHITE_LIST = 25465, + + /// 操作无效,该好友请求不存在或已经过期 + /// + /// - Since: 5.12.0 + RC_FRIEND_APPLICATION_NOT_EXIST = 25466, + + /// 当前用户好友数超出上限 + /// + /// - Since: 5.12.0 + RC_FRIEND_MY_FRIEND_COUNT_EXCEED_LIMIT = 25467, + + /// 目标用户好友数超出上限 + /// + /// - Since: 5.12.0 + RC_FRIEND_OTHER_FRIEND_COUNT_EXCEED_LIMIT = 25468, + + /// 非好友关系,不能执行此操作 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_FRIEND = 25469, + + /// 好友自定义属性超出上限 + /// + /// - Since: 5.12.0 + RC_FRIEND_FIELDS_LENGTH_EXCEED_LIMIT = 25470, + + /// 对方设置了不允许加为好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_OTHER_NOT_ALLOW_ADD_FRIEND = 25471, + + /// 好友不存在 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_EXIST = 25472, + + /// 不能添加自己为好友 + /// + /// - Since: 5.12.0 + RC_FRIEND_NOT_ALLOW_ADD_SELF = 25473, + + /// 不支持添加机器人为好友 + /// + RCErrorCodeRc_friend_not_support_robot = 25474, + + /// 托管资料信息审核不通过 + /// + /// - Since: 5.16.0 + RC_SERVICE_INFORMATION_AUDIT_FAILED = 25480, + + /// 用户级设置服务 请求参数不合法 + /// + RC_PUSHSETTING_PARAMETER_INVALID = 26001, + + /// 表示客户端版本号低,需要同步版本号,可以提交工单申请打开用户级别配置开关 + /// + RC_SETTING_SYNC_FAILED = 26002, + + /// 服务内部错误 + /// + RC_SERVICE_INTERNAL_ERROR = 26003, + + /// 用户会话标签个数超限,最多支持添加 20 个标签 + /// + RC_TAG_LIMIT_EXCEED = 26004, + + /// 未开通v4已读回执 + /// + /// - Since: 5.6.7 + RC_READ_RECEIPT_V4_INVALID = 26005, + + /// 未开通会话驱动 + /// + /// - Since: 5.6.7 + RC_SERVER_DRIVE_UNREAD_COUNT_INVALID = 26006, + + /// 消息 id 顺序错误 + /// + /// - Since: 5.6.7 + RC_SERVER_PARAMETER_MESSAGEUIDS_CONFUSED = 26007, + + /// 上报时间不支持同步 + /// + /// - Since: 5.6.9 + RC_SERVER_PARAMETER_TIMESTAMP_NOT_SUPPORT_SYNC = 26008, + + /// 消息id不合法 + /// + /// - Since: 5.6.7 + RC_SERVER_PARAMETER_MESSAGEUID_INVALID = 26009, + + /// 参数有误 + /// + /// - Since: 5.6.7 + RC_SERVER_PARAMETER_INVALID = 26010, + + /// 未开启在线状态订阅功能 + /// + RC_SUBSCRIBE_ONLINE_SERVICE_UNAVAILABLE = 26020, + + /// 用户被订阅量达到上限, 详细查看开发文档。 + /// + /// - Solution 比如A/B/C等很多用户都订阅了用户X, 如果再有a/b/c等继续订阅X, 用户X的被订阅量超过上限 + RC_BESUBSCRIBED_USERIDS_COUNT_EXCEED_LIMIT = 26021, + + /// 订阅用户数达到上限, 详细查看开发文档。 + /// + RC_SUBSCRIBED_USERIDS_EXCEED_LIMIT = 26022, + + /// 小视频服务未开通。可以在融云开发者后台中开启该服务。 + /// (已经不需要开通) + /// + RC_SIGHT_SERVICE_UNAVAILABLE = 26101, + + /// 上传文件超过最大限制 + /// + RC_FILE_SIZE_EXCEED_LIMIT = 26106, + + /// 开启限制未传 size 参数 + /// + INVALID_PARAMETER_SIZE_NOT_FOUND = 26107, + + /// 未开通v5 + /// + /// + RC_SERVICE_RRSV5_UNAVAILABLE = 26314, + + /// 不支持的已读回执方式 + /// + RC_SERVICE_RRSV5_READ_RECEIPT_NOT_SUPPORT = 26315, + + /// 参数长度超限 + /// + RC_SERVICE_RRSV5_PARAM_LENGTH_EXCEED = 26316, + + /// 不支持的会话类型 + /// + RC_SERVICE_RRSV5_CONVERSATION_NOT_SUPPORT = 26317, + + /// 不支持的已读查询类型 + /// + RC_SERVICE_RRSV5_QUERY_NOT_SUPPORT = 26318, + + /// 非消息发送者 + /// + RC_SERVICE_RRSV5_MESSAGE_SENDER_MISMATCH = 26320, + + /// 消息为不需要回执类型 + /// + RC_SERVICE_RRSV5_MESSAGE_RECEIPT_NEEDLESS = 26321, + + /// 消息不存在(私有云在用,公有云没用) + /// + RC_SERVICE_RRSV5_MESSAGE_NOT_EXIST = 26322, + + /// 语音转换服务未开启 + /// + RC_SERVICE_STT_UNAVAILABLE = 28300, + + /// stt转换失败 + /// + RC_SERVICE_STT_CONVERTED_FAILED = 28304, + + /// 语音转文本服务异常 + /// + RC_SERVICE_STT_INTERNAL_ERROR = 28305, + + /// 语音转文本参数缺失 + /// + RC_SERVICE_STT_PARAM_MISS = 28306, + + /// 用量超过限制 + /// + RC_SERVICE_STT_USAGE_EXCEED = 28307, + + /// Translation service not open + /// + /// - Since: 5.24.0 + RC_TRANS_SERVICE_NOT_OPEN = 28400, + + /// Translation failed + /// + /// - Since: 5.24.0 + RC_TRANS_FAILED = 28401, + + /// Translation Server error. + /// + /// - Since: 5.24.0 + RC_TRANS_INTERNAL_ERROR = 28402, + + /// Missing required parameters. Please review and retry. + /// + /// - Since: 5.24.0 + RC_TRANS_PARAM_MISSING = 28403, + + /// Invalid parameter format + /// + /// - Since: 5.24.0 + RC_TRANS_PARAM_ERROR = 28404, + + /// Over the usage quota. + /// + /// - Since: 5.24.0 + RC_TRANS_QUOTA_LIMIT = 28405, + + /// Text length exceeds limit + /// + /// - Since: 5.24.0 + RC_TRANS_TEXT_LENGTH_EXCEEDS_LIMIT = 28406, + + /// Language not support + /// + /// - Since: 5.24.0 + RC_TRANS_LANGUAGE_NOT_SUPPORT = 28407, + + /// 消息的流不存在。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_NO_STREAM = 29002, + + /// 超时30秒无数据结束。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DELTA_TIME_OVER = 29003, + + /// 流超出30分钟截断。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DELTA_TIME_LIMIT = 29004, + + /// 审核不过,流数据被删除。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REVIEW_FAILED = 29005, + + /// 流数据大于 128 k 截断 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DATA_TRUNCATED = 29006, + + /// 流消息服务内部异常 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_SERVER_INTERNAL_ERROR = 29007, + + /// (MP)公众号默认已关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_DEFFOLLOWED = 29102, + + /// (MP)公众号已关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_FOLLOWED = 29103, + + /// 公众号默认已取消关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// (错误码已废弃) + /// + RC_APP_PUBLICSERVICE_DEFUNFOLLOWED = 29104, + + /// (MP)公众号已经取消关注,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_UNFOLLOWED = 29105, + + /// (MP)未关注此公众号,针对会话类型:ConversationType_APP_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_UNFOLLOW = 29106, + + /// 无效的公众号。(由会话类型和 Id 所标识的公众号会话是无效的) + /// 针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_APP_PUBLICSERVICE_ERROR_TYPE = 29201, + + /// 公众号默认已关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_DEFFOLLOWED = 29202, + + /// 公众号已关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_FOLLOWED = 29203, + + /// 公众号默认已取消关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// (错误码已废弃) + /// + RC_PUBLICSERVICE_DEFUNFOLLOWED = 29204, + + /// 公众号已经取消关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_UNFOLLOWED = 29205, + + /// 公众号未关注,针对会话类型:ConversationType_PUBLIC_SERVICE + /// + RC_PUBLICSERVICE_UNFOLLOW = 29206, + + /// 请求大模型失败 + /// + RC_SERVICE_LLM_REQUEST_FAIL = 29301, + + /// 大模型响应错误 + /// + RC_SERVICE_LLM_RESPONSE_ERROR = 29302, + + /// 大模型响应超时 + /// + RC_SERVICE_LLM_RESPONSE_TIMEOUT = 29303, + + /// 请求中的 agentId 不存在 + /// + RC_SERVICE_ASSISTANT_NOT_FOUND = 29310, + + /// 不支持的大模型服务商 + /// + RC_SERVICE_LLM_CHAT_CLIENT_NOT_FOUND = 29311, + + /// 请求参数的格式不对,json 反序列化失败或者空 json + /// + RC_SERVICE_INVALID_PARAMETER_FORMAT = 29320, + + /// channelType 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_CHANNELTYPE = 29321, + + /// channelId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_CHANNELID = 29322, + + /// targetId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_TARGETID = 29323, + + /// message 中 userId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_USERID = 29324, + + /// message 中 messageId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_MESSAGEID = 29325, + + /// message 中 username 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_USERNAME = 29326, + + /// message 中 type 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_TYPE = 29327, + + /// message 中 content 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_CONTENT = 29328, + + /// message 中 timestamp 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_MESSAGE_TIMESTAMP = 29329, + + /// agentId 请求参数错误 + /// + RC_SERVICE_INVALID_PARAMETER_AGENTID = 29330, + + /// customInfo 请求参数错误中 key 的数量超限 + /// + RC_SERVICE_INVALID_PARAMETER_CUSTOMEINFO_KEY_EXCEED = 29331, + + /// customInfo 请求参数错误中 key/value 的长度超限 + /// + RC_SERVICE_INVALID_PARAMETER_CUSTOMEINFO_LENGTH_EXCEED = 29332, + + /// 未知的错误,http 状态码会是 500未知的错误,http 状态码会是 500 + /// + RC_SERVICE_UNKOWN_ERROR = 29399, + + /// 当前连接已经被释放 + /// + RC_CHANNEL_INVALID = 30001, + + /// 当前连接不可用 + /// + RC_NETWORK_UNAVAILABLE = 30002, + + /// 客户端发送消息请求,融云服务端响应超时 + /// + RC_MSG_RESPONSE_TIMEOUT = 30003, + + /// 请求连接导航地址失败 + /// + RC_NAVIGATION_REQUEST_TIMEOUT = 30005, + + /// 导航操作时,HTTP 接收失败 + /// + RC_NAVIGATION_RESPONSE_ERROR = 30006, + + /// 导航数据解析后,其中不存在有效 IP 地址 + /// + RC_DOMAIN_NOT_FOUND = 30009, + + /// 连接过于频繁 + /// + RC_CONNECT_OVER_FREQUENCY = 30015, + + /// 消息大小超限,消息体(序列化成 json 格式之后的内容)最大 128k bytes + /// + RC_MSG_SIZE_OUT_OF_LIMIT = 30016, + + /// 消息类型不支持发送。 + /// + /// - Since: 5.16.0 + MESSAGE_NOT_SUPPORT_SENDING = 30017, + + /// 网络连接不可用 + /// + RC_NETWORK_IS_DOWN_OR_UNREACHABLE = 30019, + + /// tcp 连接成功,rmtp 连接失败 + /// + RC_RMTP_CONNECTED_ERROR = 30021, + + /// 客户端 info 字段格式错误,正确格式:{平台类型}-{设备信息}-{sdk版本}。 其中设备信息:{手机类型}|{手机型号}|{网络类型,4G/WIFI}|{运营商标识, 移动/电信/联通} + /// + RC_CONN_ID_REJECT = 31002, + + /// Token 无效;AppKey 和 Token 不匹配;Token 过期 + /// + RC_CONN_TOKEN_INCORRECT = 31004, + + /// App 校验未通过(开通了 App 校验功能,但是校验未通过) + /// + RC_CONN_NOT_AUTHRORIZED = 31005, + + /// 包名与后台注册信息不匹配 + /// + RC_CONN_PACKAGE_NAME_INVALID = 31007, + + /// AppKey 被封禁或已删除 + /// + RC_CONN_APP_BLOCKED_OR_DELETED = 31008, + + /// 连接失败,用户被封禁(客户端主动连接失败返回) + /// + RC_CONN_USER_BLOCKED = 31009, + + /// 用户被踢下线 + /// + RC_DISCONN_KICK = 31010, + + /// Token 已过期 + /// + RC_CONN_TOKEN_EXPIRE = 31020, + + /// 开启禁止把已在线客户端踢下线开关后,该错误码标识已有同类型端在线 + /// + RC_CONN_OTHER_DEVICE_LOGIN = 31023, + + /// 连接总数量超过服务设定的并发限定值(私有云专属) + /// + CONCURRENT_LIMIT_ERROR = 31024, + + /// 客户端连错环境,引发连接拒绝;如使用开发环境 Appkey 连接到生产环境 + /// + RC_CONN_CLUSTER_ERROR = 31025, + + /// 开启AppServer联合鉴权功能后,到AppServer认证失败 + /// + RC_CONN_APP_AUTH_FAILED = 31026, + + /// 该 token 已经被使用过,无法进行连接 一次性 token 只能连接一次,之后再使用会上报此错误 + /// + RC_CONN_DISPOSABLE_TOKEN_USED = 31027, + + /// 用户已销户 + /// + /// - Since: 5.3.0 + RC_CONN_USER_ABANDON = 31029, + + /// 私有云 License 检查不通过;APP License 过期 + /// + /// - Since: 5.3.0 + RC_CONN_APP_LICENSE_EXPIRED = 31030, + + /// channelType 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_CHANNELTYPE = 31031, + + /// 无效的agent 提示词类型 + /// + RC_AGENT_INVALID_PARAMETER_CUSTOMINFO = 31032, + + /// Agent 服务不可用 + /// + RC_AGENT_SERVICE_UNAVAILABLE = 31033, + + /// message 中 userId 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_USERID = 31034, + + /// message 中 messageId 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_MESSAGEID = 31035, + + /// message 中 username 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_USERNAME = 31036, + + /// message 中 type 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_TYPE = 31037, + + /// message 中 content 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_CONTENT = 31038, + + /// message 中 timestamp 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_MESSAGE_TIMESTAMP = 31039, + + /// agentId 请求参数错误 + /// + RC_AGENT_INVALID_PARAMETER_AGENTID = 31040, + + /// 请求agent api 的参数 recommendationParams 类型错误 + /// + /// + RC_AGENT_INVALID_PARAMETER_RECOMMENDATIONPARAMS = 31041, + + /// 请求 agent api 的上下文消息列表类型错误 + /// + RC_AGENT_INVALID_CONTEXT_MESSAGE_LIST = 31042, + + /// 请求agent api 的上下文消息类型错误 + /// + RC_AGENT_INVALID_CONTEXT_MESSAGE = 31043, + + /// 请求agent api 的上下文消息数量超过最大值 + /// + RC_AGENT_CONTEXT_MESSAGE_LIST_EXCEED_MAX = 31044, + + /// 协议层内部错误,查询,上传,下载过程中数据错误 + /// + RC_QUERY_ACK_NO_DATA = 32001, + + /// 协议层内部错误 + /// + RC_MESSAGE_DATA_INCOMPLETE = 32002, + + /// 服务器主动断开连接(仅 quic 协议下触发) + /// + RC_UDP_DISCONNECTED = 32011, + + /// 链接被服务器中断,可能原因是运营商认为此链接非法或无效,直接断开 出现此错误码后,SDK 会自动触发重连,App 无需处理 + /// + RC_CONNECTION_RESET_BY_PEER = 32054, + + /// 将消息存储到本地数据时失败。 发送或插入消息时,消息需要存储到本地数据库,当存库失败时,会回调此错误码 + /// + BIZ_SAVE_MESSAGE_ERROR = 33000, + + /// 协议栈未初始化(可能原因:1,没有调用SDK初始化接口;2,SDK的so未正常加载) + /// + CLIENT_NOT_INIT = 33001, + + /// 数据库错误 + /// + DATABASE_ERROR = 33002, + + /// 开发者接口调用时传入的参数错误 + /// + INVALID_PARAMETER = 33003, + + /// 历史消息云存储业务未开通 + /// + MSG_ROAMING_SERVICE_UNAVAILABLE = 33007, + + /// 消息存入本地数据库失败 + /// + RC_PROTOCOL_MESSAGE_INSERTED_ERROR = 33008, + + /// 聊天室被回收 + /// + RC_CHATROOM_RESET = 33009, + + /// 标签不存在 + /// + RC_TAG_NOT_EXIST = 33100, + + /// 标签已存在 + /// + RC_TAG_ALREADY_EXISTS = 33101, + + /// 标签不在会话中 + /// + RC_TAG_INVALID_FOR_CONVERSATION = 33102, + + /// 被编辑消息是接收的或者没有发送成功的 + /// + /// - Since: 5.26.0 + RC_MODIFIED_MESSAGE_IS_NOT_SENT = 33401, + + /// 被编辑的消息超过修改时限 + /// + /// - Since: 5.26.0 + RC_MODIFIED_MESSAGE_TIMEOUT = 33402, + + /// 连接已存在 + /// + RC_CONNECTION_EXIST = 34001, + + /// 小视频时间长度超出限制,默认小视频时长上限为 2 分钟 + /// + RC_SIGHT_MSG_DURATION_LIMIT_EXCEED = 34002, + + /// GIF 消息文件大小超出限制 + /// + RC_GIF_MSG_SIZE_LIMIT_EXCEED = 34003, + + /// 聊天室状态未同步完成,刚加入聊天室时调用获取 KV 接口,极限情况下会存在本地数据和服务器未同步完成的情况,建议延时一段时间再获取 + /// + RC_KV_STORE_NOT_SYNC = 34004, + + /// 连接环境不正确 + /// + RC_ENVIRONMENT_ERROR = 34005, + + /// 连接超时 + /// + RC_CONNECT_TIMEOUT = 34006, + + /// 查询的公共服务信息不存在,请确认查询的公共服务的类型和公共服务 id 是否匹配 + /// + RC_PUBLIC_SERVICE_PROFILE_NOT_EXIST = 34007, + + /// 消息不能被扩展,只支持单群聊,其他类型消息会返回此错误,消息在发送时,Message 对象的属性 canIncludeExpansion 置为 true 才能进行扩展 + /// + RC_MESSAGE_CANT_EXPAND = 34008, + + /// 消息扩展失败,一般是网络原因导致的,请确保网络状态良好,并且融云 SDK 连接正常 + /// + RC_MESSAGE_EXPAND_FAIL = 34009, + + /// 消息扩展大小超出限制, 默认消息扩展字典 key 长度不超过 32 个字符,value 长度不超过 4096 个字符,设置的 Expansion 键值对不超过 300 个 + /// + RC_MSG_EXPANSION_SIZE_LIMIT_EXCEED = 34010, + + /// 媒体消息媒体文件 http 上传失败 + /// + RC_FILE_UPLOAD_FAILED = 34011, + + /// 指定的会话类型不支持标签功能,会话标签仅支持单群聊会话、系统会话 + /// + RC_CONVERSATION_TAG_INVALID_CONVERSATION_TYPE = 34012, + + /// 标签中添加/删除的会话数量超限,最多支持添加/删除 1000 个会话 + /// + RC_CONVERSATION_TAG_LIMIT_EXCEED = 34013, + + /// 群已读回执版本不支持 + /// + RC_Group_Read_Receipt_Version_Not_Support = 34014, + + /// 视频压缩失败 + /// + RC_SIGHT_COMPRESS_FAILED = 34015, + + /// 用户级别设置未开通 + /// + RC_USER_SETTING_DISABLED = 34016, + + /// 消息拦截器处理接口返回的消息为空 + /// + RC_MESSAGE_NULL_EXCEPTION = 34017, + + /// 媒体文件上传异常,媒体文件不存在或文件大小为 0 + /// + RC_MEDIA_EXCEPTION = 34018, + + /// 上传媒体文件格式不支持 + /// + RC_MEDIA_FILETYPE_INVALID = 34019, + + /// 文件已过期或被清理 小视频文件默认存储 7 天,其它文件默认存储 6个月。到期后自动清理 + /// + RC_FILE_EXPIRED = 34020, + + /// 消息未被注册 + /// + RC_MESSAGE_NOT_REGISTERED = 34021, + + /// 该接口不支持超级群会话 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_NOT_SUPPORT = 34022, + + /// 超级群频道不存在 + /// + /// - Since: 5.2.0 + RC_ULTRA_GROUP_CHANNEL_NOT_EXIST = 34024, + + /// 扩展消息失败,因为消息中的会话类别与接口支持的会话类别不一致 + /// + /// - Since: 5.4.4 + RC_MESSAGE_EXPAND_CONVERSATION_TYPE_NOT_MATCH = 34025, + + /// 此请求不允许重定向,请使用文件真实地址 + /// + RC_NO_REDIRECT_ALLOWED = 34028, + + /// 消息不支持发送已读回执。 + /// + /// - Since: 5.20.0 + MESSAGE_READ_RECEIPT_NOT_SUPPORT = 34029, + + /// 在下载文件时遇到了 403 禁止访问的错误 + /// + /// - Solution encountered a 403 Forbidden error while downloading the file! + RC_MEDIA_DOWNLOAD_FORBIDDEN = 34030, + + /// 连接时connection option 为空 + /// + INVALID_PARAMETER_CONNECTOPTIONNULL = 34129, + + /// 开发者接口调用时传入的语言非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_LAUGUAGE = 34200, + + /// 开发者调用的接口不支持传入的会话类型 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CONVERSATIONTYPENOTSUPPORT = 34201, + + /// 开发者接口调用时传入的时间戳非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TIMESTAMP = 34202, + + /// 开发者接口调用时传入的 uid (服务器消息唯一 id)非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGEUID = 34203, + + /// 开发者接口调用时传入的 messageId 非法或者找不到对应的 Message + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGEID = 34204, + + /// 开发者接口调用时传入的 Message 非法,或者 MessageContent 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGECONTENT = 34205, + + /// 开发者接口调用时传入的 messageList 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGELIST = 34206, + + /// 开发者接口调用时传入的 mediaType 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MEDIATYPE = 34207, + + /// 开发者接口调用时传入的 requestUrl 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_REQUESTURL = 34208, + + /// 开发者接口调用时传入的 ConversationType 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CONVERSATIONTYPE = 34209, + + /// 开发者接口调用时传入的 targetId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TARGETID = 34210, + + /// 开发者调用频道相关接口时传入的 channelId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CHANNELID = 34211, + + /// 开发者接口调用时传入的 tagId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TAGID = 34212, + + /// 开发者接口调用时传入的 tagName 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TAGNAME = 34213, + + /// 开发者接口调用时传入的 userId 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_USERID = 34214, + + /// 开发者接口调用时传入的 userIdList 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_USERIDLIST = 34215, + + /// 开发者接口调用时传入的 UserOnlineStatus 非法。 可能原因: 用户自定义的在线状态(1 < customerStatus <= 255), 设置自定义的在线状态,默认的在线状态值为 1,若离线则为 0 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_USERONLINESTATUS = 34216, + + /// 开发者接口调用时传入的 downloadMediaFileName 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_DOWNLOADMEDIAFILENAME = 34217, + + /// 开发者调用接口 setOfflineMessageDuration 传入的参数非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_SETOFFLINEMESSAGEDURATION = 34218, + + /// 开发者接口调用时传入的 HistoryMessageOption 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_RCHISTORYMESSAGEOPTION_COUNT = 34219, + + /// 开发者接口调用时传入的 MessageExpansion 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_MESSAGEEXPANSION = 34220, + + /// 开发者接口调用时传入的UltraGroupMessageExpansion keyArray 非法 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_ULTRAGROUPMESSAGEEXPANSION_KEYARRAY = 34221, + + /// uploadVoIPDeviceToken 接口检测到无效的 VoIP DeviceToken + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_UPLOADVOIPDEVICETOKEN = 34222, + + /// 开发者sendMediaMessage 传入的 Message.content 不是多媒体消息 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_NOTMEDIAMESSAGE = 34223, + + /// 开发者调用接口传入的时间(字符串)参数非法。可能原因:开发者调用接口传入的时间(字符串)参数类型不是字符串或者字符串为空。 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_TIMESTRING = 34224, + + /// RCConversationIdentifier 参数非法。 可能原因:开发者调用接口传入的 RCConversationIdentifier 参数类型不对或者参数为空 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_CONVERSATIONIDENTIFIER = 34225, + + /// 开发者调用接口 GetBlockPush 接口获取失败 + /// + /// - Since: 5.2.2 + RC_GETBLOCKPUSH_FAILED = 34226, + + /// 开发者调用数据库查询接口,查询失败 + /// + /// - Since: 5.2.2 + RC_DB_QUERY_ERROR = 34227, + + /// PushNotificationLevel 无效 + /// + /// - Since: 5.2.2 + INVALID_PARAMETER_NOTIFICATION_LEVEL = 34228, + + /// 无效的超级群频道类型 + /// + /// - Since: 5.2.4 + INVALID_PARAMETER_CHANNEL_TYPE = 34231, + + /// 开发者接口调用时传入的 count 非法 + /// + /// - Since: 5.2.5 + INVALID_PARAMETER_COUNT = 34232, + + /// 开发者接口调用时传入的 sendTime 非法 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_SEND_TIME = 34233, + + /// 开发者调用接口传入的 local path 地址不存在 + /// + INVALID_PARAMETER_LOCAL_PATH = 34234, + + /// 开发者调用接口传入的 mediaUrl 地址为空 + /// + INVALID_PARAMETER_MEDIA_URL = 34235, + + /// 开发者调用接口传入的 uniqueId 为空或者"" + /// + INVALID_PARAMETER_UNIQUE_ID = 34236, + + /// 开发者调用接口传入的 MessageTag 为空 或者MessageTag.value()为空或者 "" + /// + INVALID_PARAMETER_MSG_TAG = 34237, + + /// 非法的代理配置,RongIMProxy 为空或者非法 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_PROXY = 34238, + + /// 开发者接口调用 testProxy 时传入的代理测试服务非法 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_TESTHOST = 34239, + + /// 开发者接口调用 testProxy 接口时无法联通 + /// + /// - Since: 5.3.0 + INVALID_CONNECT_TESTHOST_FAILED = 34240, + + /// 开发者接口调用recallUltraGroupMessage时,撤回了不支持的消息类型 + /// + /// - Since: 5.3.0 + INVALID_PARAMETER_ULTRA_GROUP_MESSAGE_OBJECT_NAME = 34241, + + /// 开发者调用接口传入的 conversations 参数为 null 或者 conversations 数组包含 null 对象 + /// + INVALID_PARAMETER_CONVERSATIONS = 34242, + + /// 开发者调用接口传入的 message 参数为空 + /// + INVALID_PARAMETER_MESSAGE = 34243, + + /// 开发者调用接口传入的 Message.SentStatus 参数为 null + /// + INVALID_PARAMETER_SENT_STATUS = 34244, + + /// 设置的代理地址不可用 + /// + RC_CONN_PROXY_UNAVAILABLE = 34245, + + /// 文件保存失败 + /// + FILE_SAVED_FAILED = 34251, + + /// 文件不存在 + /// + FILE_NOT_EXIST = 34252, + + /// 文件长度错误 + /// + FILE_SIZE_ERROR = 34253, + + /// 下载链接无效 + /// + DOWNLOAD_URL_INVALID = 34254, + + /// 分片索引错误 + /// + SLICE_INDEX_ERROR = 34255, + + /// 上传ID无效 + /// + UPLOAD_ID_INVALID = 34256, + + /// App Key 无效 + /// + INVALID_APP_KEY = 34257, + + /// 参数 JoinMode 非法 + /// + INVALID_PARAMETER_JOIN_MODE = 34258, + + /// 参数 rtcRoomID 非法 + /// + INVALID_PARAMETER_RTCROOMID = 34259, + + /// 参数 key 非法 + /// + INVALID_PARAMETER_KEY = 34260, + + /// 参数keys 非法 + /// + INVALID_PARAMETER_KEYS = 34261, + + /// 参数 value 非法 + /// + INVALID_PARAMETER_VALUE = 34262, + + /// 参数 entries 非法 + /// + INVALID_PARAMETER_ENTRIES = 34263, + + /// 参数 notificationExtra 非法 + /// + INVALID_PARAMETER_NOTIFICATION_EXTRA = 34264, + + /// 参数 ChatRoomMemberOrder 非法 + /// + INVALID_PARAMETER_CHATROOM_MEMBER_ORDER = 34265, + + /// 参数 TimestampOrder 非法 + /// + INVALID_PARAMETER_TIMESTAMP_ORDER = 34266, + + /// 参数 status 非法 + /// + INVALID_PARAMETER_STATUS = 34268, + + /// 参数 title 非法 + /// + INVALID_PARAMETER_TITLE = 34269, + + /// 参数 portrait 非法 + /// + INVALID_PARAMETER_PORTRAIT = 34270, + + /// 参数 objectName 非法 + /// + MESSAGE_OBJECT_NAME_INVALID = 34271, + + /// 参数 keyword 非法 + /// + INVALID_PARAMETER_KEYWORD = 34274, + + /// 参数 objectName 列表非法 + /// + /// - Solution message object name list invalid + INVALID_PARAMETER_OBJECTNAMELIST = 34275, + + /// 参数 offset 非法 + /// + /// - Solution offset invalid + RC_INVALID_PARAMETER_OFFSET = 34276, + + /// 参数 start time 非法 + /// + /// - Since: 5.24.0 + RC_INVALID_PARAMETER_START_TIME = 34277, + + /// 参数 limit 非法 + /// + INVALID_PARAMETER_LIMIT = 34279, + + /// MessageDirection错误 + /// + INVALID_MESSAGE_DIRECTION = 34280, + + /// SentStatus错误 + /// + INVALID_MESSAGE_SENT_STATUS = 34281, + + /// 参数 target id 列表非法 + /// + INVALID_PARAMETER_TARGETID_LIST = 34282, + + /// 参数 span minutes 非法 + /// + INVALID_PARAMETER_SPAN_MINUTES = 34283, + + /// 参数 ConversationType 列表非法 + /// + /// - Solution conversation type list invalid + RC_INVALID_PARAMETER_CONVERSATION_TYPE_LIST = 34284, + + /// 请求导航时的url 为空 + /// + RC_INVALID_ARGUMENT = 34286, + + /// 开发者调用接口传入的 ConversationIdentifier 数组参数为空、数组长度为 0或超过限制、包含 null 或非法对象 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_CONVERSATION_IDENTIFIER_LIST = 34287, + + /// 开发者调用接口传入的 ClearMessageOption 数组参数为空、数组长度为 0或超过限制、包含 null 或非法对象 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_CLEAR_MESSAGE_OPTION_LIST = 34288, + + /// 参数 startMessageUID 无效 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_START_MESSAGEUID = 34289, + + /// 参数 endMessageUID 无效 + /// + /// - Since: 5.6.7 + INVALID_PARAMETER_END_MESSAGEUID = 34290, + + /// 不支持V4已读回执功能 + /// + /// - Since: 5.6.7 + RC_READ_RECEIPT_V4_NOT_SUPPORT = 34291, + + /// 不支持更新v4已读回执信息 + /// + /// - Since: 5.6.7 + RC_READ_RECEIPT_V4_UPDATE_NOT_SUPPORT = 34292, + + /// invalid parameter hours + /// + /// - Since: 5.4.5.107 + INVALID_PARAMETER_HOURS = 34293, + + /// fetch message changed info unavailable + /// + /// - Since: 5.4.5.107 + RC_ACTIVE_FETCH_MESSAGE_CHANGED_INFO_UNAVAILABLE = 34294, + + /// message changed info have fetched + /// + /// - Since: 5.4.5.107 + RC_MESSAGE_CHANGED_INFO_HAVE_FETCHED = 34295, + + /// 发送定向消息时,传入的会话类型不支持 + /// + /// - Solution 发送定向消息时,传入的会话类型不支持 + /// - Since: 5.6.9 + RC_DIRECTIONAL_MESSAGE_INVALID_CONVERSATION_TYPE = 34296, + + /// 多媒体上传&下载拦截器,处理接口返回的 conn 为空 + /// + /// - Since: 5.8.0 + RC_REQUEST_INTERCEPTOR_NULL_EXCEPTION = 34300, + + /// 数据库未初始化 + /// + RC_DB_NOT_INIT = 34301, + + /// 数据库错误 + /// + RC_DB_CORRUPT = 34302, + + /// 数据库 SQL 执行异常 + /// + RC_DB_SQL_ERROR = 34303, + + /// 查询数据不存在 + /// + RC_DB_DATA_NOT_FOUND = 34304, + + /// 网络数据解析失败 + /// + RC_NET_DATA_ERROR = 34305, + + /// 订阅事件传入的订阅类型非法 + /// + /// - Solution 订阅相关接口传入的订阅类型不支持 + INVALID_PARAMETER_SUBSCRIBE_TYPE = 34306, + + /// 订阅事件传入的订阅时长非法[60s ~ 30天] + /// + /// - Solution 订阅相关接口传入的订阅时长非法 + INVALID_PARAMETER_SUBSCRIBE_EXPIRY = 34307, + + /// 订阅事件传入的订阅用户列表空或者数据类型非法 + /// + /// - Solution 订阅相关接口传入的订阅用户列表非法 + INVALID_PARAMETER_SUBSCRIBE_PUBLISHER_USERIDS = 34308, + + /// 订阅事件传入的分页大小非法 + /// + /// - Solution 订阅相关接口传入的分页大小非法[1~200] + INVALID_PARAMETER_SUBSCRIBE_PAGESIZE = 34309, + + /// 参数 userProfile 非法 + /// + /// - Since: 5.10.0 + INVALID_PARAMETER_USER_PROFILE = 34312, + + /// 参数 userProfileVisibility 非法 + /// + /// - Since: 5.10.0 + INVALID_PARAMETER_USER_PROFILE_VISIBILITY = 34313, + + /// 参数 extra 无效 + /// + /// - Since: 5.10.2 + INVALID_PARAMETER_EXTRA = 34314, + + /// 数据库升级失败 + /// + /// - Since: 5.10.4 + RC_DB_UPGRADE_FAILED = 34315, + + /// 开发者接口调用时传入的参数 GroupInfo 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_INFO = 34318, + + /// 开发者接口调用时传入的参数 groupId 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_ID = 34319, + + /// 开发者接口调用时传入的参数 groupName 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_NAME = 34320, + + /// 开发者接口调用时传入的参数 groupIds 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_IDS = 34321, + + /// 开发者接口调用时传入的参数 GroupMemberRole 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_MEMBER_ROLE = 34322, + + /// 开发者接口调用时传入的参数 GroupApplicationStatus 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_APPLICATION_STATUS = 34323, + + /// 开发者接口调用时传入的参数 GroupApplicationDirection 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_GROUP_APPLICATION_DIRECTION = 34324, + + /// 开发者接口调用时传入的参数 nickname 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_NICK_NAME = 34325, + + /// 开发者接口调用时传入的参数 reason 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_REASON = 34326, + + /// 开发者接口调用时传入的参数 remark 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_REMARK = 34327, + + /// 开发者接口调用时传入的参数 PagingQueryOption 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_PAGING_QUERY_OPTION = 34328, + + /// 数据正在同步中 + /// + /// - Since: 5.12.0 + NET_DATA_IS_SYNCHRONIZING = 34329, + + /// 开发者接口调用时传入的参数 QueryFriendsDirectionType 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_QUERY_FRIENDS_DIRECTION_TYPE = 34330, + + /// 开发者接口调用时传入的参数 DirectionType 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_DIRECTION_TYPE = 34331, + + /// 开发者接口调用时传入的参数 FriendApplicationType 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_APPLICATION_TYPE = 34332, + + /// 开发者接口调用时传入的参数 FriendApplicationStatus 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_APPLICATION_STATUS = 34333, + + /// 开发者接口调用时传入的参数 FriendAddPermission 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_ADD_PERMISSION = 34334, + + /// 开发者接口调用时传入的参数 extProfile 非法 + /// + /// - Since: 5.12.0 + INVALID_PARAMETER_FRIEND_INFO_EXT_FIELDS = 34335, + + /// 实时会话未开启 + /// + /// - Since: 5.12.3 + RC_REAL_TIME_CONVERSATION_UNAVAILABLE = 34336, + + /// 客户主动上传日志功能未打开 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_DISABLED = 34337, + + /// 客户主动上传日志时间间隔超出限制 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_TIME_INTERVAL_EXCEED_LIMIT = 34338, + + /// 客户主动上传日志时间重复,请勿重复调用 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_TIME_DUPLICATE = 34339, + + /// 客户主动上传日志失败 + /// + RC_USER_TRIGGERED_LOG_UPLOAD_FAILED = 34340, + + /// 开发者调用接口时传入的 pushServer 无效 + /// + /// - Since: 5.20.0 + INVALID_PARAMETER_PUSH_SERVER = 34341, + + /// 开发者调用接口时传入的统计地址无效 + /// + /// - Since: 5.20.0 + INVALID_PARAMETER_STATISTIC_SERVER = 34342, + + /// 开发者传入的 pushToken 参数无效,iOS 端使用 + /// + /// - Since: 5.20.0 + INVALID_PARAMETER_PUSH_TOKEN = 34343, + + /// 服务器数据解析失败 + /// + /// - Since: 5.26.0 + RC_SERVER_DATA_ERROR = 34344, + + /// 开发者调用时传入的消息类型无效 + /// + RC_INVALID_PARAMETER_MESSAGE_TYPE = 35024, + + /// 开发者调用时传入的 order 无效 + /// + /// - Solution order invalid + RC_INVALID_PARAMETER_ORDER = 35025, + + /// 传入的 disableUpdateLastMessage 参数无效。在会话类型为 ULTRA GROUP 时,该字段不允许设置为 true + /// + /// - Since: 5.12.2 + INVALID_DISABLE_UPDATE_LAST_MESSAGE = 35054, + + /// 超级群类型会话仅允许置顶默认频道 + /// + /// - Since: 5.20.0 + ONLY_DEFAULT_CHANNEL_SUPPORTS_PINNING = 35055, + + /// 发送消息时配置 needReceipt 错误,相关参数仅限单群聊会话内非状态消息、非群定向消息可配置,且需要开启已读回执 v5 功能 + /// + /// - Since: 5.20.0 + RC_SEND_READ_RECEIPT_CONF_ERROR = 35056, + + /// 语音转文字功能未开启 + /// + /// - Since: 5.22.0 + RC_SPEECH_TO_TEXT_DISABLE = 35057, + + /// 语音转文字请求进行中,请勿重复请求 + /// + /// - Since: 5.22.0 + RC_SPEECH_TO_TEXT_REQUEST_IN_PROCESS = 35058, + + /// 语音内容不可转换,参数无效 + /// + /// - Since: 5.22.0 + RC_SPEECH_TO_TEXT_MESSAGE_CONTENT_UNSUPPORTED = 35059, + + /// 翻译功能输入参数类型错误 + /// + /// - Since: 5.24 + RC_TRANSLATION_PARAMS_TYPE_INVALID = 35060, + + /// 翻译接口入参列表长度无效 + /// + /// - Since: 5.24 + RC_TRANSLATION_PARAMS_LIST_INVALID = 35061, + + /// 会话翻译策略值无效 + /// + /// - Since: 5.24 + RC_INVALID_PARAMETER_TRANSLATE_STRATEGY = 35062, + + /// 翻译设置的源语言与目标语言一致 + /// + /// - Since: 5.24 + RC_TRANSLATION_LANGUAGE_SAME = 35063, + + /// 调用翻译接口时传入的翻译模式值非法 + /// + /// - Since: 5.24 + RC_INVALID_PARAMETER_TRANSLATE_MODE = 35064, + + /// 调用翻译接口时,指定待翻译内容无效。 + /// + /// - Since: 5.24 + RC_TRANSLATION_TEXT_INVALID = 35065, + + /// 流式消息不可用 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_DISABLE = 39001, + + /// 流式消息并发个数限制,最多 3 个。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_COUNT_LIMIT_EXCEEDED = 39002, + + /// 流式消息的摘要扩展 Key 不支持修改或删除。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_EXPANSION_KEY_ERROR = 39003, + + /// 拉取流式消息时被重置。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_RESET = 39004, + + /// 拉取流式消息请求失败。 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_FAIL = 39005, + + /// 消息内容正在拉取中,请勿重复请求 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_REQUEST_IN_PROCESS = 39006, + + /// 流式消息已同步完成,不需要重新拉取 + /// + /// - Since: 5.16.0 + STREAM_MESSAGE_SYNCED = 39007, + + /// 取消暂停失败 + /// + /// - Solution 取消 / 暂停下载失败, 失败的原因现在为下载任务已经结束 + /// - Since: 5.6.6 + OPERATION_MEDIA_NOT_FOUND = -3, + + /// 未知错误 + /// + ERRORCODE_UNKNOWN = -1 + +}; + +#endif /* RCErrorCode_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFileMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFileMessage.h new file mode 100644 index 0000000..195f2de --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFileMessage.h @@ -0,0 +1,40 @@ +// +// RCFileMessage.h +// RongIMLib +// +// Created by 珏王 on 16/5/23. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +/// 文件消息的类型名 +#define RCFileMessageTypeIdentifier @"RC:FileMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 文件消息类 +/// +/// 文件消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCFileMessage : RCMediaMessageContent + +/// 文件大小,单位为 Byte +@property (nonatomic, assign) long long size; + +/// 文件类型 +@property (nonatomic, copy, nullable) NSString *type; + +/// 文件的网络地址 +@property (nonatomic, copy, nullable) NSString *fileUrl; + +/// 初始化文件消息 +/// +/// - Parameter localPath: 文件的本地路径 +/// - Returns: 文件消息对象 ++ (instancetype)messageWithFile:(NSString *)localPath; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFileUtility.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFileUtility.h new file mode 100644 index 0000000..6ce19a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFileUtility.h @@ -0,0 +1,127 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCFileUtility.h + +#ifndef __RCFileUtility +#define __RCFileUtility + +#import "RCStatusDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCFileUtility : NSObject + +/*! + 设置文件媒体类型 + + - Returns: 文件类型 + */ ++ (NSString *)getMimeType:(RCMediaType)fileType; + +/*! + 获取上传文件名称 + + - Returns: 文件媒体类型 + */ ++ (NSString *)generateKey:(NSString *)mimeType; + +/*! + 生成下载的文件路径 + + - Returns: 文件名称 + */ ++ (NSString *)getFileName:(NSString *)imgUrl + conversationType:(RCConversationType)conversationType + mediaType:(RCMediaType)mediaType + targetId:(NSString *)targetId; + +/*! + 根据文件 URL 获取 MD5 key + + - Returns: key + */ ++ (NSString *)getFileKey:(NSString *)fileUri; + +/*! + 根据文件类型获取文件夹名称 + + - Returns: 文件夹名称 + */ ++ (NSString *)getMediaDir:(RCMediaType)fileType; + +/*! + 根据会话类型获取存储的文件夹名称 + + - Returns: 文件夹名称 + */ ++ (NSString *)getCateDir:(RCConversationType)categoryId; + +/*! + 文件是否存在 + + - Returns: 是否存在 +*/ ++ (BOOL)isFileExist:(NSString *)fileName; + +/*! + 存储数据到指定路径 + + - Parameter filePath: 文件存储路径 + - Parameter content: 存储数据 + - Returns: 存储成功与否的结果 + */ ++ (BOOL)saveFile:(NSString *)filePath content:(NSData *)content; + +/// 文件唯一存储地址,用于解决文件重命名冲突处理。 +/// 如果 filePath 对应的本地文件不存在,则返回 filePath。 +/// 如果 filePath 对应的本地文件存在,则在 filePath 的名字后面增加 (1),数字会累加,直到找到文件不存在的路径。 ++ (NSString *)uniqueFilePath:(NSString *)filePath; + +/*! + 根据文件名获取文件类型 + + - Parameter fileName: 文件名,需要带扩展名 + */ ++ (NSString *)getTypeName:(NSString *)fileName; + +/*! + 根据文件 URL 获取文件本地存储路径 + + - Returns: 文件本地存储路径 + */ ++ (nullable NSString *)getFileLocalPath:(NSString *)fileUri; + +/// 关联文件远端 URL 和本地路径 ++ (void)setFileLocalPath:(NSString *)localPath fileUri:(NSString *)fileUri; +/// 获取小视频文件缓存路径 ++ (NSString *)getSightCachePath:(NSString *)sightUrl; + +/// 移除非法字符(../name.txt, ../..name.txt => name.txt) ++ (NSString *)recheckFileName:(NSString *)fileName; + +/// 媒体消息文件名字生成规则,主要用于文件下载。 +/// 1. 获取 remoteUrl 属性中的 attname 字段对应的文件名。 +/// 2. 获取 remoteUrl 链接中最后一段作为文件名。 +/// 3. 对 remoteUrl 做 md5 作为文件名。 +/// 将上面取到的文件名做 urlDecode。 ++ (NSString *)getFileNameFromRemoteURL:(NSString *)remoteURL; + +@end + +@interface RCFileUtility (Deprecated) + +/// 文件唯一存储地址 ++ (NSString *)getUniqueFileName:(NSString *)baseFileName __deprecated_msg("Use uniqueFilePath: instead."); + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFollowInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFollowInfo.h new file mode 100644 index 0000000..5c18786 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFollowInfo.h @@ -0,0 +1,24 @@ +// +// RCFollowInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/14. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCFollowInfo : NSObject + +/// 用户 Id +@property (nonatomic, copy) NSString *userId; + +/// 关注时间戳 +/// 当前用户关注此用户的时间戳 +@property (nonatomic, assign) long long time; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendApplicationInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendApplicationInfo.h new file mode 100644 index 0000000..5ffb2f8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendApplicationInfo.h @@ -0,0 +1,40 @@ +// +// RCFriendApplicationInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 好友申请信息 +@interface RCFriendApplicationInfo : NSObject + +/// 申请用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 申请用户名 +@property (nonatomic, copy) NSString *name; + +/// 申请用户头像 +@property (nonatomic, copy) NSString *portraitUri; + +/// 请求类型:发送的好友请求、接收的好友请求 +@property (nonatomic, assign) RCFriendApplicationType applicationType; + +/// 状态类型:申请添加好友、已同意、已拒绝、已过期 +@property (nonatomic, assign) RCFriendApplicationStatus applicationStatus; + +/// 操作时间 +@property (nonatomic, assign) long long operationTime; + +/// 备注内容 +@property (nonatomic, copy) NSString *extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendEnum.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendEnum.h new file mode 100644 index 0000000..4227c31 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendEnum.h @@ -0,0 +1,67 @@ +// +// RCFriendEnum.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#ifndef RCFriendEnum_h +#define RCFriendEnum_h + +/// 添加好友权限 +typedef NS_ENUM(NSInteger, RCFriendAddPermission) { + /// 不需本人同意,任何人直接添加好友 + RCFriendAddPermissionFree = 1, + /// 需要用户同意添加好友 + RCFriendAddPermissionNeedVerify = 2, + /// 不允许任何人添加好友 + RCFriendAddPermissionNoOneAllowed = 3, +}; + +/// - 好友方向类型:双向好友(目前只支持双向好友) +typedef NS_ENUM(NSInteger, RCDirectionType) { + /// 双向好友 + RCDirectionTypeBoth = 2, +}; + +/// 好友关系类型 +typedef NS_ENUM(NSInteger, RCFriendRelationType) { + /// 不在双方的好友列表中 + RCFriendRelationTypeNone = 0, + /// 在我的好友列表中 + RCFriendRelationTypeInMyFriendList = 1, + /// 仅在对方的好友列表中 + RCFriendRelationTypeInOtherFriendList = 2, + /// 在双方的好友列表中 + RCFriendRelationTypeBothWay = 3, +}; + +/// 好友申请类型 +typedef NS_ENUM(NSInteger, RCFriendApplicationType) { + /// 发送的好友请求 + RCFriendApplicationTypeSent = 1, + /// 接收的好友请求 + RCFriendApplicationTypeReceived = 2 +}; + +/// 好友申请状态 +typedef NS_ENUM(NSInteger, RCFriendApplicationStatus) { + /// 未处理 + RCFriendApplicationStatusUnHandled = 0, + /// 已同意 + RCFriendApplicationStatusAccepted = 1, + /// 已拒绝 + RCFriendApplicationStatusRefused = 2, + /// 已过期 + RCFriendApplicationStatusExpired = 3, +}; + +/// 好友列表查询方向 +typedef NS_ENUM(NSInteger, RCQueryFriendsDirectionType) { + /// 双向好友 + RCQueryFriendsDirectionTypeBoth = 2, +}; + + +#endif /* RCFriendEnum_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendEventDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendEventDelegate.h new file mode 100644 index 0000000..82722a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendEventDelegate.h @@ -0,0 +1,69 @@ +// +// RCFriendEventDelegate.h +// RongIMLibCore +// +// Created by Lang on 2024/8/23. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCFriendEventDelegate + +@optional + +/// 添加好友回调 +/// - Parameter userId: 用户 ID +/// - Parameter name: 用户名 +/// - Parameter portraitUri: 用户头像 +/// - Parameter directionType: 好友方向类型 +/// - Parameter operationTime: 操作时间 +- (void)onFriendAdd:(NSString *)userId + name:(NSString *)name + portraitUri:(NSString *)portraitUri + directionType:(RCDirectionType)directionType + operationTime:(long long)operationTime; + +/// 删除好友回调 +/// - Parameter userIds: 用户列表 +/// - Parameter directionType: 好友方向类型 +/// - Parameter operationTime: 操作时间 +- (void)onFriendDelete:(NSArray *)userIds + directionType:(RCDirectionType)directionType + operationTime:(long long)operationTime; + +/// 好友申请状态变更回调 +/// - Parameter userId: 用户 ID +/// - Parameter applicationType: 请求类型 +/// - Parameter applicationStatus: 状态类型 +/// - Parameter directionType: 好友方向类型 +/// - Parameter operationTime: 操作时间 +/// - Parameter extra: 备注内容 +- (void)onFriendApplicationStatusChanged:(NSString *)userId + applicationType:(RCFriendApplicationType)applicationType + applicationStatus:(RCFriendApplicationStatus)applicationStatus + directionType:(RCDirectionType)directionType + operationTime:(long long)operationTime + extra:(nullable NSString *)extra; + +/// 清空好友的回调 +/// 此操作只能由服务端发起 +/// - Parameter operationTime: 操作时间 +- (void)onFriendCleared:(long long)operationTime; + +/// 好友信息变更多端回调事件 +/// - Parameter userId: 用户 ID +/// - Parameter remark: 好友备注 +/// - Parameter extProfile: 扩展信息 +/// - Parameter operationTime: 操作时间 +- (void)onFriendInfoChangedSync:(NSString *)userId + remark:(nullable NSString *)remark + extProfile:(nullable NSDictionary *)extProfile + operationTime:(long long)operationTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendInfo.h new file mode 100644 index 0000000..0f74b1f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendInfo.h @@ -0,0 +1,40 @@ +// +// RCFriendInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 好友信息 +@interface RCFriendInfo : NSObject + +/// 用户 id +@property (nonatomic, copy) NSString *userId; + +/// 用户名 +@property (nonatomic, copy) NSString *name; + +/// 用户头像 +@property (nonatomic, copy) NSString *portraitUri; + +/// 好友备注 +@property (nonatomic, copy) NSString *remark; + +/// 好友扩展信息 +@property (nonatomic, copy) NSDictionary *extProfile; + +/// 好友添加时间 +@property (nonatomic, assign) long long addTime; + +/// 好友方向类型 +@property (nonatomic, assign) RCDirectionType directionType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendRelationInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendRelationInfo.h new file mode 100644 index 0000000..f43203f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFriendRelationInfo.h @@ -0,0 +1,25 @@ +// +// RCFriendRelationInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/12. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 好友关系结果 +@interface RCFriendRelationInfo : NSObject + +/// 用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 好友关系 +@property (nonatomic, assign) RCFriendRelationType relationType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFwLog.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFwLog.h new file mode 100644 index 0000000..dc93072 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCFwLog.h @@ -0,0 +1,96 @@ +// +// RCFwLog.h +// MacLogTest +// +// Created by ZhangLei on 26/02/2018. +// Copyright © 2018 RongCloud. All rights reserved. +// + +#import +#define __FILE_STRING__ [NSString stringWithUTF8String:__FILE__] +#define __GET_FILENAME__ \ + [__FILE_STRING__ substringFromIndex:[__FILE_STRING__ rangeOfString:@"/" options:NSBackwardsSearch].location + 1] +#define RCLogS(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_S type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogR(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_R type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogF(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_F type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogE(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_E type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogW(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_W type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogI(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_I type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogD(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_D type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] +#define RCLogV(k, ...) \ + [[RCFwLog getInstance] write:RC_Level_V type:RC_Type_DEB tag:__GET_FILENAME__ keys:k, ##__VA_ARGS__] + +#define FwLogS(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_S type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogR(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_R type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogF(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_F type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogE(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_E type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogW(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_W type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogI(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_I type:p tag:t keys:k, ##__VA_ARGS__] +#define FwLogD(p, t, k, ...) [[RCFwLog getInstance] write:RC_Level_D type:p tag:t keys:k, ##__VA_ARGS__] + +typedef NS_ENUM(NSInteger, RCFwLogLevel) { + RC_Level_S = -2, //Statistics + RC_Level_R = -1, //Record + RC_Level_N = 0, //None + RC_Level_F = 1, //Fatal + RC_Level_E = 2, //Error + RC_Level_W = 3, //Warn + RC_Level_I = 4, //Info + RC_Level_D = 5, //Debug + RC_Level_V = 6 //Verbose +}; + +typedef NS_OPTIONS(NSUInteger, RCLogType) { + RC_Type_APP = 1 << 0, // User interface. + RC_Type_PTC = 1 << 1, // Protocol. + RC_Type_ENV = 1 << 2, + RC_Type_DET = 1 << 3, + RC_Type_CON = 1 << 4, + RC_Type_RCO = 1 << 5, + RC_Type_CRM = 1 << 6, + RC_Type_MSG = 1 << 7, // Message. + RC_Type_MED = 1 << 8, // Media file. + RC_Type_LOG = 1 << 9, + RC_Type_DEB = 1 << 10, // Debug log. + RC_Type_CRS = 1 << 11, // Crash stack. + RC_Type_RTC = 1 << 12 // RTC. +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCFwLog : NSObject + +// should be call init first, otherwise getInstance will return nil. ++ (void)init:(NSString *)appKey sdkVer:(NSString *)sdkVer; ++ (instancetype)getInstance; + ++ (void)setLogMonitor:(NSInteger)value; ++ (void)setToken:(NSString *)token; ++ (void)setUserId:(NSString *)userId; ++ (void)setLogListener:(void (^)(NSString *log))logBlock; ++ (void)setConsoleLogLevel:(RCFwLogLevel)level; +/// 网络状态 100% lost 时,此方法会阻塞 30s,切记不要在主线程直接调用 ++ (nullable NSString *)getIpWithHost:(NSString *)hostName; +/// 异步获取 ip 地址,内部有切线程处理,子线程执行,主线程回调 callback ++ (void)getIpWithHost:(NSString *)hostName callback:(void (^)(NSString *_Nullable ipString))callback; ++ (void)setRcDebugLogLevel:(NSInteger)rcDebugLogLevel; ++ (void)setRcDebugLogMaxSize:(long long)rcDebugLogMaxSize; ++ (void)startRealTimelog __deprecated_msg("has been deprecated"); +- (void)uploadLog:(nullable void (^)(int code))errorBlock __deprecated_msg("has been deprecated"); +- (void)uploadDebugLog __deprecated_msg("has been deprecated"); +- (void)write:(RCFwLogLevel)level + type:(RCLogType)type + tag:(NSString *)tag + keys:(NSString *)keys, ... NS_FORMAT_FUNCTION(4, 5); + +- (void)write:(RCFwLogLevel)level type:(RCLogType)type tag:(NSString *)tag keys:(NSArray *)keys values:(NSArray *)vals; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGIFMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGIFMessage.h new file mode 100644 index 0000000..69aa8a8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGIFMessage.h @@ -0,0 +1,54 @@ +// +// RCGIFMessage.h +// RongIMLib +// +// Created by liyan on 2018/12/20. +// Copyright © 2018 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// GIF 消息的类型名 +/// +/// 仅支持 gif 类型的图片;jpg、png 等其他格式的图片请使用 RCImageMessage +#define RCGIFMessageTypeIdentifier @"RC:GIFMsg" + +/// GIF 消息 +/// +/// GIF 消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCGIFMessage : RCMediaMessageContent + +/// GIF 图的大小,单位字节 +@property (nonatomic, assign) long long gifDataSize; + +/// GIF 图的宽 +@property (nonatomic, assign) long width; + +/// GIF 图的高 +@property (nonatomic, assign) long height; + +/// 初始化 GIF 消息 +/// +/// - Parameter gifImageData: GIF 图的数据 +/// - Parameter width: GIF 的宽 +/// - Parameter height: GIF 的高 +/// +/// - Returns: GIF 消息对象 ++ (instancetype)messageWithGIFImageData:(NSData *)gifImageData width:(long)width height:(long)height; + +/// 初始化 GIF 消息 +/// +/// - Parameter gifURI: GIF 的本地路径 +/// - Parameter width: GIF 的宽 +/// - Parameter height: GIF 的高 +/// +/// - Returns: GIF 消息对象 ++ (instancetype)messageWithGIFURI:(NSString *)gifURI width:(long)width height:(long)height; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGetUnreadMentionMeConversationListParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGetUnreadMentionMeConversationListParams.h new file mode 100644 index 0000000..f76c058 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGetUnreadMentionMeConversationListParams.h @@ -0,0 +1,31 @@ +// +// RCGetUnreadMentionMeConversationListParams.h +// RongIMLibCore +// +// Created by RongCloud on 2025/9/5. +// Copyright © 2025 RongCloud. All rights reserved. +// +/// - Since: 5.28.0 +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCGetUnreadMentionMeConversationListParams : NSObject +/// 支持的会话类型的数组 (需要将 RCConversationType 转为 NSNumber 构建 NSArray) +/// 支持单聊、群聊、系统、超级群会话类型 +/// 非上述类型或者空数组,查询返回错误码 34284 +@property (nonatomic, copy)NSArray *conversationTypes; + +/// 是否置顶优先,传 YES 表示置顶会话优先返回,否则结果只以会话时间排序 +/// 默认值为 YES +@property (nonatomic, assign)BOOL topPriority; + +/// 查询的开始时间, 传 0 表示查询最新时间的会话,后续查询可传入 conversations 的最后一个元素的 conversation time 单位:毫秒 +/// 默认值为 0,小于 0 则查询返回错误码 34202 +@property (nonatomic, assign)long long timestamp; + +/// 获取的数量,有效值范围 [1, 100] 默认值为 0,超过范围则查询返回错误码 34232 +@property (nonatomic, assign)NSUInteger count; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroup.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroup.h new file mode 100644 index 0000000..17de912 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroup.h @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCGroup.h +// Created by Heq.Shinoda on 14-9-6. + +#import + +NS_ASSUME_NONNULL_BEGIN +/// 群组信息类 +@interface RCGroup : NSObject + +/// 群组 ID +@property (nonatomic, copy) NSString *groupId; + +/// 群组名称 +@property (nonatomic, copy) NSString *groupName; + +/// 群组头像的 URL +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 群组信息附加字段 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 群组信息的初始化方法 +/// +/// - Parameter groupId: 群组 ID +/// - Parameter groupName: 群组名称 +/// - Parameter portraitUri: 群组头像的 URL +/// +/// - Returns: 群组信息对象 +- (instancetype)initWithGroupId:(NSString *)groupId + groupName:(NSString *)groupName + portraitUri:(nullable NSString *)portraitUri; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupApplicationInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupApplicationInfo.h new file mode 100644 index 0000000..a1e68e0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupApplicationInfo.h @@ -0,0 +1,48 @@ +// +// RCGroupApplicationInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/8/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import +@class RCGroupMemberInfo; + + +NS_ASSUME_NONNULL_BEGIN + +/// 群申请事件 +@interface RCGroupApplicationInfo : NSObject + +/// 群组 ID +@property (nonatomic, copy) NSString *groupId; + +/// 入群者信息 +@property (nonatomic, strong) RCGroupMemberInfo *joinMemberInfo; + +/// 邀请者信息 +@property (nonatomic, strong, nullable) RCGroupMemberInfo *inviterInfo; + +/// 操作人信息 +@property (nonatomic, strong, nullable) RCGroupMemberInfo *operatorInfo; + +/// 群申请状态 +@property (nonatomic, assign) RCGroupApplicationStatus status; + +/// 群申请方向 +@property (nonatomic, assign) RCGroupApplicationDirection direction; + +/// 群申请类型 +@property (nonatomic, assign) RCGroupApplicationType type; + +/// 操作时间 +@property (nonatomic, assign) long long operationTime; + +/// 原因 +@property (nonatomic, copy, nullable) NSString *reason; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupEnum.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupEnum.h new file mode 100644 index 0000000..82c0361 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupEnum.h @@ -0,0 +1,136 @@ +// +// RCGroupEnum.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#ifndef RCGroupEnum_h +#define RCGroupEnum_h + +/// 加入群权限 +typedef NS_ENUM(NSInteger, RCGroupJoinPermission) { + /// 需要群主验证(默认) + RCGroupJoinPermissionOwnerVerify = 0, + /// 不用验证 + RCGroupJoinPermissionFree = 1, + /// 群主或群管理员 + RCGroupJoinPermissionOwnerOrManagerVerify = 2, + /// 不允许任何人加入 + RCGroupJoinPermissionNoOneAllowed = 3, +}; + +/// 群操作权限 +typedef NS_ENUM(NSInteger, RCGroupOperationPermission) { + /// 群主(默认) + RCGroupOperationPermissionOwner = 0, + /// 群主或群管理员 + RCGroupOperationPermissionOwnerOrManager = 1, + /// 所有人 + RCGroupOperationPermissionEveryone = 2 +}; + +/// 邀请加入群组处理权限 +typedef NS_ENUM(NSInteger, RCGroupInviteHandlePermission) { + /// 不需要被邀请人同意(默认) + RCGroupInviteHandlePermissionFree = 0, + /// 需要被邀请人同意 + RCGroupInviteHandlePermissionInviteeVerify = 1, +}; + +/// 群成员资料编辑权限 +typedef NS_ENUM(NSInteger, RCGroupMemberInfoEditPermission) { + /// 群主、群管理员和自己(默认) + RCGroupMemberInfoEditPermissionOwnerOrManagerOrSelf = 0, + /// 群主和自己 + RCGroupMemberInfoEditPermissionOwnerOrSelf = 1, + /// 仅自己 + RCGroupMemberInfoEditPermissionSelf = 2, +}; + +/// 群成员身份 +typedef NS_ENUM(NSInteger, RCGroupMemberRole) { + /// 不区分角色(未加群时无角色) + RCGroupMemberRoleUndef = 0, + /// 普通群成员 + RCGroupMemberRoleNormal = 1, + /// 管理员 + RCGroupMemberRoleManager = 2, + /// 群主 + RCGroupMemberRoleOwner = 3, +}; + +/// 操作类型枚举 +typedef NS_ENUM(NSInteger, RCGroupOperation) { + /// 创建群 + RCGroupOperationCreate = 0, + + /// 加入 + RCGroupOperationJoin = 1, + + /// 踢出 + RCGroupOperationKick = 2, + + /// 退出 + RCGroupOperationQuit = 3, + + /// 解散 + RCGroupOperationDismiss = 4, + + /// 添加管理员 + RCGroupOperationAddManager = 5, + + /// 移除管理员 + RCGroupOperationRemoveManager = 6, + + /// 转让群主 + RCGroupOperationTransferGroupOwner = 7, +}; + +/// 群申请状态 +typedef NS_ENUM(NSInteger, RCGroupApplicationStatus) { + /// 管理员待处理 + RCGroupApplicationStatusManagerUnHandled = 0, + /// 管理员已拒绝 + RCGroupApplicationStatusManagerRefused = 1, + /// 被邀请人待处理 + RCGroupApplicationStatusInviteeUnHandled = 2, + /// 被邀请人拒绝 + RCGroupApplicationStatusInviteeRefused = 3, + /// 已加入 + RCGroupApplicationStatusJoined = 4, + /// 已过期 + RCGroupApplicationStatusExpired = 5, +}; + +/// 操作类型 +typedef NS_ENUM(NSInteger, RCGroupOperationType) { + /// 添加 + RCGroupOperationTypeAdd = 1, + /// 删除 + RCGroupOperationTypeRemove = 2 +}; + +/// 群申请方向 +typedef NS_ENUM(NSInteger, RCGroupApplicationDirection) { + /// 发出的申请 + RCGroupApplicationDirectionApplicationSent = 0, + /// 发出的邀请 + RCGroupApplicationDirectionInvitationSent = 1, + /// 收到的邀请 + RCGroupApplicationDirectionInvitationReceived = 2, + /// 收到的申请 + RCGroupApplicationDirectionApplicationReceived = 3 +}; + +/// 群申请类型 +typedef NS_ENUM(NSInteger, RCGroupApplicationType) { + /// 主动加入群组 + RCGroupApplicationTypeApplication = 0, + /// 被邀请加入群组 + RCGroupApplicationTypeInvitation = 1, +}; + + +#endif /* RCGroupEnum_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupEventDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupEventDelegate.h new file mode 100644 index 0000000..a363090 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupEventDelegate.h @@ -0,0 +1,114 @@ +// +// RCGroupEventDelegate.h +// RongIMLibCore +// +// Created by Lang on 2024/7/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +#import +#import +@class RCGroupMemberInfo; +@class RCGroupApplicationInfo; + + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCGroupEventDelegate + +@optional + +/// 群组操作回调 +/// - Parameter groupId: 群组 ID +/// - Parameter operatorInfo: 操作者信息。服务端 api 操作踢出时为空。 +/// - Parameter groupInfo: 群组信息,仅在操作类型为创建群组时有效。 +/// - Parameter operation: 操作类型 +/// - Parameter memberInfos: 目标用户信息列表 +/// - Parameter operationTime: 操作时间 +/// - Warning 在该回调中,`groupInfo` 的 `remark`、`role`、`joinedTime` 字段不会返回有效值,它们可能为空或为默认值。 +/// 如需获取这些字段,请通过` -[RCCoreClient getGroupsInfo:success:error:]` 接口查询。 +- (void)onGroupOperation:(NSString *)groupId + operatorInfo:(nullable RCGroupMemberInfo *)operatorInfo + groupInfo:(nullable RCGroupInfo *)groupInfo + operation:(RCGroupOperation)operation + memberInfos:(NSArray *)memberInfos + operationTime:(long long)operationTime; + +/// 群组资料变更回调 +/// - Parameter operatorInfo: 操作者信息 +/// - Parameter groupInfo: 群组信息,只有包含在 updateKeys 中的属性值有效 +/// - Parameter updateKeys: 群组信息内容有变更的属性 +/// - Parameter operationTime: 操作时间 +- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo + groupInfo:(RCGroupInfo *)groupInfo + updateKeys:(NSArray *)updateKeys + operationTime:(long long)operationTime + __deprecated_msg( + "Use [RCGroupEventDelegate onGroupInfoChanged:fullGroupInfo:changedGroupInfo:operationTime:] instead"); + +/// 群组资料变更回调 +/// - Parameter operatorInfo: 操作者信息 +/// - Parameter fullGroupInfo: 全量群组信息 +/// - Parameter changedGroupInfo: 内容有变更的群组信息 +/// - Parameter operationTime: 操作时间 +- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo + fullGroupInfo:(RCGroupInfo *)fullGroupInfo + changedGroupInfo:(RCGroupInfo *)changedGroupInfo + operationTime:(long long)operationTime + __deprecated_msg( + "Use [RCGroupEventDelegate onGroupInfoChanged:fullGroupInfo:changedProperties:operationTime:] instead"); + +/// 群组资料变更回调 +/// - Parameter operatorInfo: 操作者信息 +/// - Parameter fullGroupInfo: 全量群组信息 +/// - Parameter properties: 群组信息有变更的属性 +/// - Parameter operationTime: 操作时间 +/// - Since: 5.22.0 +/// - Warning 在该回调中,`fullGroupInfo` 的 `remark`、`role`、`joinedTime` 字段不会返回有效值,它们可能为空或为默认值。 +/// 如需获取这些字段,请通过` -[RCCoreClient getGroupsInfo:success:error:]` 接口查询。 +- (void)onGroupInfoChanged:(RCGroupMemberInfo *)operatorInfo + fullGroupInfo:(RCGroupInfo *)fullGroupInfo + changedProperties:(NSArray *)properties + operationTime:(long long)operationTime; + +/// 群成员资料变更回调 +/// - Parameter groupId: 群组 ID +/// - Parameter operatorInfo: 操作人成员资料 +/// - Parameter memberInfo: 有变更的群成员资料 +/// - Parameter operationTime: 操作时间 +- (void)onGroupMemberInfoChanged:(NSString *)groupId + operatorInfo:(RCGroupMemberInfo *)operatorInfo + memberInfo:(RCGroupMemberInfo *)memberInfo + operationTime:(long long)operationTime; + +/// 群申请事件回调 +/// 包含以下事件: +/// - 用户申请加入群组的**申请**或**结果** +/// - 邀请加入群组的**申请**或**结果** +- (void)onGroupApplicationEvent:(RCGroupApplicationInfo *)event; + +/// 群备注名更新多端同步回调事件 +/// - Parameter groupId: 群组 ID +/// - Parameter operationType: 操作类型,添加或移除 +/// - Parameter groupRemark: 群备注名 +/// - Parameter operationTime: 操作时间 +- (void)onGroupRemarkChangedSync:(NSString *)groupId + operationType:(RCGroupOperationType)operationType + groupRemark:(NSString *)groupRemark + operationTime:(long long)operationTime; + +/// 群成员特别关注变更多端同步回调事件 +/// - Parameter groupId: 群组 ID +/// - Parameter operationType: 操作类型,添加或移除 +/// - Parameter userIds: 用户 ID 列表 +/// - Parameter operationTime: 操作时间 +- (void)onGroupFollowsChangedSync:(NSString *)groupId + operationType:(RCGroupOperationType)operationType + userIds:(NSArray *)userIds + operationTime:(long long)operationTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupInfo.h new file mode 100644 index 0000000..fe44fc0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupInfo.h @@ -0,0 +1,113 @@ +// +// RCGroupInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +#import + + +NS_ASSUME_NONNULL_BEGIN + +/// 群组信息属性 key 值 +typedef NSString *RCGroupInfoKeys NS_STRING_ENUM; + +/// 群名称 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysName; +/// 群头像 URL 地址 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysPortraitUri; +/// 群简介 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysIntroduction; +/// 群公告 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysNotice; +/// 主动加入群权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysJoinPermission; +/// 将群成员移出群组设置 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysRemoveMemberPerm; +/// 谁可以邀请他人入群 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysInvitePermission; +/// 被邀请加入群组权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysInviteHandlePermission; +/// 修改群资料权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysGroupInfoEditPermission; +/// 修改群成员资料权限 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysMemberInfoEditPermission; +/// 群扩展信息 key +FOUNDATION_EXPORT RCGroupInfoKeys const RCGroupInfoKeysExtProfile; + +@interface RCGroupInfo : NSObject + +/// 群组 ID +@property (nonatomic, copy) NSString *groupId; + +/// 群名称 +@property (nonatomic, copy) NSString *groupName; + +/// 群头像 URL 地址,长度不超过 1024 个字符 +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 群简介,长度不超过 512 个字符 +@property (nonatomic, copy, nullable) NSString *introduction; + +/// 群公告,长度不超过 1024 个字符 +@property (nonatomic, copy, nullable) NSString *notice; + +/// 扩展信息, +/// 自定义属性需要通过开发者后台或 服务端 API 设置后才能使用,否则返回设置失败 +@property (nonatomic, strong) NSDictionary *extProfile; + +/// 主动加入群权限 +/// 默认需要群主验证 +@property (nonatomic, assign) RCGroupJoinPermission joinPermission; + +/// 移除群成员权限 +/// 默认群主 +@property (nonatomic, assign) RCGroupOperationPermission removeMemberPermission; + +/// 邀请他人入群权限 +/// 默认群主 +@property (nonatomic, assign) RCGroupOperationPermission invitePermission; + +/// 被邀请加入群组权限 +/// 默认不需要被邀请人同意 +@property (nonatomic, assign) RCGroupInviteHandlePermission inviteHandlePermission; + +/// 修改群资料权限 +/// 默认群主 +@property (nonatomic, assign) RCGroupOperationPermission groupInfoEditPermission; + +/// 修改群成员资料权限 +/// 默认群主、群管理员、自已都可以 +@property (nonatomic, assign) RCGroupMemberInfoEditPermission memberInfoEditPermission; + +#pragma mark - 只读属性 + +/// 创建者 userId +@property (nonatomic, copy, readonly) NSString *creatorId; + +/// 群主 userId +@property (nonatomic, copy, readonly) NSString *ownerId; + +/// 群备注 +/// 自己设置备注名,其他人看不到 +@property (nonatomic, copy, readonly, nullable) NSString *remark; + +/// 群组创建时间。 +@property (nonatomic, assign, readonly) long long createTime; + +/// 群当前成员人数。 +@property (nonatomic, assign, readonly) NSUInteger membersCount; + +/// 当前用户加入时间:用户多次加入群组时,以最后一次加入时间为准 +@property (nonatomic, assign, readonly) long long joinedTime; + +/// 我的群身份 +@property (nonatomic, assign, readonly) RCGroupMemberRole role; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupMemberInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupMemberInfo.h new file mode 100644 index 0000000..5a68e35 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupMemberInfo.h @@ -0,0 +1,39 @@ +// +// RCGroupMemberInfo.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCGroupMemberInfo : NSObject + +/// 用户 Id +@property (nonatomic, copy) NSString *userId; + +/// 头像 URL +@property (nonatomic, copy) NSString *portraitUri; + +/// 用户名 +@property (nonatomic, copy) NSString *name; + +/// 在群中的昵称(别名),默认为用户名 +@property (nonatomic, copy, nullable) NSString *nickname; + +/// 附加信息 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 入群时间戳 +@property (nonatomic, assign) long long joinedTime; + +/// 我群身份 +@property (nonatomic, assign) RCGroupMemberRole role; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupMessageReaderV2.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupMessageReaderV2.h new file mode 100644 index 0000000..cc888b7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupMessageReaderV2.h @@ -0,0 +1,24 @@ +// +// RCMessageReadUser.h +// RongIMLibCore +// +// Created by 张改红 on 2021/2/22. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 已读用户对象 +@interface RCGroupMessageReaderV2 : NSObject + +/// 已读用户 id +@property (nonatomic, copy) NSString *userId; + +/// 已读时间 +@property (nonatomic, assign) long long readTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupNotificationMessage.h new file mode 100644 index 0000000..91f66bb --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupNotificationMessage.h @@ -0,0 +1,74 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCGroupNotificationMessage.h +// Created by xugang on 14/11/24. + +#import + +/// 群组通知消息的类型名 +#define RCGroupNotificationMessageIdentifier @"RC:GrpNtf" +/// 有成员加入群组的通知 +#define GroupNotificationMessage_GroupOperationAdd @"Add" +/// 有成员退出群组的通知 +#define GroupNotificationMessage_GroupOperationQuit @"Quit" +/// 有成员被踢出群组的通知 +#define GroupNotificationMessage_GroupOperationKicked @"Kicked" +/// 群组名称发生变更的通知 +#define GroupNotificationMessage_GroupOperationRename @"Rename" +/// 群组公告发生变更的通知 +#define GroupNotificationMessage_GroupOperationBulletin @"Bulletin" + +/// 群组通知消息类 +/// +/// 群组通知消息类,此消息会进行存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCGroupNotificationMessage : RCMessageContent + +/// 群组通知的当前操作名 +/// +/// 群组通知的当前操作名称,您可以使用预定义好的操作名,也可以是您自己定义的任何操作名。 +/// 预定义的操作名: +/// GroupNotificationMessage_GroupOperationAdd、GroupNotificationMessage_GroupOperationQuit、 +/// GroupNotificationMessage_GroupOperationKicked、GroupNotificationMessage_GroupOperationRename、 +/// GroupNotificationMessage_GroupOperationBulletin。 +@property (nonatomic, copy) NSString *operation; + +/// 当前操作发起用户的用户 ID +@property (nonatomic, copy) NSString *operatorUserId; + +/// 当前操作的目标对象 +/// +/// +/// 当前操作的目标对象,如被当前操作目标用户的用户 ID 或变更后的群主名称等。 +@property (nonatomic, copy) NSString *data; + +/// 当前操作的消息内容 +@property (nonatomic, copy) NSString *message; + +/// 初始化群组通知消息 +/// +/// - Parameter operation: 群组通知的当前操作名 +/// - Parameter operatorUserId: 当前操作发起用户的用户 ID +/// - Parameter data: 当前操作的目标对象 +/// - Parameter message: 当前操作的消息内容 +/// - Parameter extra: 当前操作的附加信息 +/// +/// - Returns: 群组通知消息对象 +/// +/// 群组关系由开发者维护,所有的群组操作都由您的服务器自己管理和维护。 +/// 所以群组通知的操作名和目标对象、消息内容、扩展信息您均可以自己定制,只要您发送方和接收方针对具体字段内容做好 UI 显示即可。 ++ (instancetype)notificationWithOperation:(NSString *)operation + operatorUserId:(NSString *)operatorUserId + data:(NSString *)data + message:(NSString *)message + extra:(NSString *)extra; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptInfoV2.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptInfoV2.h new file mode 100644 index 0000000..820f7ec --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptInfoV2.h @@ -0,0 +1,35 @@ +// +// RCGroupReadReceiptInfoV2.h +// RongIMLibCore +// +// Created by 张改红 on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCGroupMessageReaderV2; + + +@interface RCReadReceiptInfoV4 : NSObject + +/// 是否已经发送回执 +@property (nonatomic, assign) BOOL hasRespond; + +/// 发送回执的用户 ID 列表 +@property (nonatomic, strong, nullable) NSArray *readerList; + +/// 已读人数 +@property (nonatomic, assign) int readCount; + +/// 群内总人数 +@property (nonatomic, assign) int totalCount; + + +@end + +@interface RCGroupReadReceiptInfoV2 : RCReadReceiptInfoV4 +@end +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Manager.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Manager.h new file mode 100644 index 0000000..0e0e861 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Manager.h @@ -0,0 +1,61 @@ +// +// RCGroupReadReceiptV2Manager.h +// RongIMLibCore +// +// Created by 张改红 on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCGroupReadReceiptV2Manager : NSObject +/// 获取单例类 ++ (instancetype)sharedManager; + +/// 群已读回执代理 +@property (nonatomic, weak, nullable) id groupReadReceiptV2Delegate; + +/*! + 发送阅读回执 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话 ID + - Parameter channelId: 所属会话的业务标识 + - Parameter messageList: 已经阅读了的消息列表 + - Parameter successBlock: 发送成功的回调 + - Parameter errorBlock: 发送失败的回调[nErrorCode: 失败的错误码] + + 当用户阅读了需要阅读回执的消息,可以通过此接口发送阅读回执,消息的发送方即可直接知道那些人已经阅读。 + + - Remark: 高级功能 + */ +- (void)sendReadReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageList:(NSArray *)messageList + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; + +/*! + 获取群消息已读用户列表 + + - Parameter message: 消息体 + - Parameter successBlock: 同步成功的回调 + - Parameter errorBlock: 同步失败的回调[nErrorCode: 失败的错误码] + + 此方法不支持超级群的会话类型。 + + - Remark: 高级功能 + */ +- (void)getGroupMessageReaderList:(RCMessage *)message + success:(nullable void (^)(NSArray *_Nullable readerList, + int totalCount))successBlock + error:(nullable void (^)(RCErrorCode nErrorCode))errorBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Protocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Protocol.h new file mode 100644 index 0000000..796ea13 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCGroupReadReceiptV2Protocol.h @@ -0,0 +1,109 @@ +// +// RCGroupReadReceiptV2Protocol.h +// RongIMLibCore +// +// Created by 张改红 on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#ifndef RCGroupReadReceiptV2Protocol_h +#define RCGroupReadReceiptV2Protocol_h + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage; + +@protocol RCGroupReadReceiptV2Delegate + +/*! + 消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数) + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + - Parameter messageUId: 请求已读回执的消息ID + - Parameter readCount: 已读用户数 + - Parameter totalCount: 群内总用户数 + */ +- (void)onMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId + readCount:(int)readCount + totalCount:(int)totalCount; + +@end + +@protocol RCReadReceiptV4Delegate + +/// 私聊已读回执 +/// - Parameters: +/// - conversationType: conversationType +/// - targetId: targetId +/// - channelId: 所属会话的业务标识 +/// - readTime: 阅读时间 +- (void)onPrivateMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + readTime:(long long)readTime; + +/*! + 群组中消息发送方,当收到server的已读回执响应时,会回调此方法 + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter channelId: 所属会话的业务标识 + - Parameter messageUId: 请求已读回执的消息ID + - Parameter readCount: 已读用户数 + - Parameter totalCount: 群内总用户数 + */ +- (void)onGroupMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageUId:(NSString *)messageUId + readCount:(int)readCount + totalCount:(int)totalCount; +@end + +@protocol RCConversationChannelSyncConversationReadStatusDelegate + + +/// 同步会话已读状态代理:(与 RCLibDispatchReadReceiptNotification 通知等同) +/// - Parameters: +/// - message: 消息 +/// - offline: 是否离线 +- (void)onSyncConversationReadStatus:(RCMessage *)message offline:(BOOL)offline; + + +/// V4 同步已读状态 +/// - Parameters: +/// - conversationType: 会话类型 +/// - targetId: targetId +/// - channelId: channelId +/// - readTime: readTime +- (void)onSyncConversationReadTime:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + readTime:(long long)readTime; + +@end + +@class RCReadReceiptResponseV5; + +/// 已读回执 V5 事件代理。 +@protocol RCReadReceiptV5Delegate + +@optional + +/// 已读回执变更通知。 +/// +/// - Parameter responses: 消息已读回执信息。 +/// +/// - Since: 5.20.0 +- (void)didReceiveMessageReadReceiptResponses:(NSArray *)responses; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCGroupReadReceiptV2Protocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHQVoiceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHQVoiceMessage.h new file mode 100644 index 0000000..cf1fbd2 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHQVoiceMessage.h @@ -0,0 +1,56 @@ +// +// RCHQVoiceMessage.h +// RongIMLib +// +// Created by Zhaoqianyu on 2019/5/16. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +/// 高清语音消息类型名 +#define RCHQVoiceMessageTypeIdentifier @"RC:HQVCMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 高清语音消息类 +/// +/// 高清语音消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCHQVoiceMessage : RCMediaMessageContent + +/// 语音消息的时长,以秒为单位 +@property (nonatomic, assign) long duration; + +/// 初始化高清语音消息 +/// +/// - Parameter localPath: 语音的本地路径 +/// - Parameter duration: 语音时长,以秒为单位 +/// - Returns: 语音消息对象 ++ (instancetype)messageWithPath:(NSString *)localPath duration:(long)duration; + +@end + +@class RCSpeechToTextInfo; + +/// 语音转文本。 +/// +/// - Since: 5.22.0 +@interface RCHQVoiceMessage (STT) + +/// 语音转文本信息。 +@property (nonatomic, readonly, strong, nullable) RCSpeechToTextInfo *sttInfo; + +/// 声道数量 [仅单声道支持 STT 功能]。 +@property (nonatomic, readonly, assign) NSUInteger numberOfChannels; + +/// 采样率 [仅 8000, 16000 支持 STT 功能]。 +@property (nonatomic, readonly, assign) NSUInteger sampleRate; + +/// 编码格式。 +@property (nonatomic, readonly, copy, nullable) NSString *format; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHarmonyOSConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHarmonyOSConfig.h new file mode 100644 index 0000000..9b9deff --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHarmonyOSConfig.h @@ -0,0 +1,29 @@ +// +// RCHarmonyOSConfig.h +// RongIMLibCore +// +// Created by RobinCui on 2024/7/4. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCHarmonyOSConfig : NSObject + +/// HarmonyOS 通知栏消息右侧大图标 URL +/// +///通知栏右侧图片,格式支持 png、jpg、jpeg、heif、gif、bmp,图片长*宽<25000 像素,图片不满足要求的情况下,终端不能显示通知消息。 +@property (nonatomic, copy, nullable) NSString *imageUrl; + +/// HarmonyOS 推送消息分类: +/// - 社交通讯:消息自分类标识,默认为空。category 取值必须为大写字母 +/// 参考:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/message-classification-0000001149358835 + +/// 默认值为 null,如果为 null,则以服务配置为准 +/// +@property (nonatomic, copy, nullable) NSString *category; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHistoryMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHistoryMessageOption.h new file mode 100644 index 0000000..80729db --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCHistoryMessageOption.h @@ -0,0 +1,35 @@ +// +// RCHistoryMessageOption.h +// RongIMLibCore +// +// Created by 张改红 on 2021/4/20. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +/// 拉取顺序 +typedef NS_ENUM(NSUInteger, RCHistoryMessageOrder) { + /// 降序 + RCHistoryMessageOrderDesc = 0, + /// 升序 + RCHistoryMessageOrderAsc, +}; + +@interface RCHistoryMessageOption : NSObject + +/// 起始的消息发送时间戳,毫秒。 +/// 默认 0 +@property (nonatomic, assign) long long recordTime; + +/// 需要获取的消息数量,1 < count <= 100 +/// 默认 0 +@property (nonatomic, assign) NSInteger count; + +/// 拉取顺序 +/// +/// - RCHistoryMessageOrderDesc:降序,结合传入的时间戳参数,获取 recordtime 之前的消息 +/// - RCHistoryMessageOrderAsc:升序,结合传入的时间戳参数,获取 recordtime 之后的消息 +/// 默认降序 +@property (nonatomic, assign) RCHistoryMessageOrder order; +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCIMClientProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCIMClientProtocol.h new file mode 100644 index 0000000..b267450 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCIMClientProtocol.h @@ -0,0 +1,515 @@ +// +// RCIMClientProtocol.h +// RongIMLib +// +// Created by LiFei on 2020/4/29. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#ifndef RCIMClientProtocol_h +#define RCIMClientProtocol_h + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage, RCUserTypingStatus; +@class RCConversationStatusInfo; +@class RCBlockedMessageInfo; +@class RCUltraGroupTypingStatusInfo; + +#pragma mark - 消息接收监听器 + +/*! + IMlib消息接收的监听器 + + + 设置IMLib的消息接收监听器请参考RCIMClient的setReceiveMessageDelegate:object:方法。 + + - Warning: 如果您使用IMlib,可以设置并实现此Delegate监听消息接收; + 如果您使用IMKit,请使用RCIM中的RCIMReceiveMessageDelegate监听消息接收,而不要使用此监听器,否则会导致IMKit中无法自动更新UI! + */ +@protocol RCIMClientReceiveMessageDelegate + +@optional + +/*! + 接收消息的回调方法 + + - Parameter message: 当前接收到的消息 + - Parameter nLeft: 还剩余的未接收的消息数,left>=0 + - Parameter object: 消息监听设置的key值 + + 如果您设置了IMlib消息监听之后,SDK在接收到消息时候会执行此方法。 + 其中,left为还剩余的、还未接收的消息数量。比如刚上线一口气收到多条消息时,通过此方法,您可以获取到每条消息,left会依次递减直到0。 + 您可以根据left数量来优化您的App体验和性能,比如收到大量消息时等待left为0再刷新UI。 + object为您在设置消息接收监听时的key值。 + */ +- (void)onReceived:(RCMessage *)message left:(int)nLeft object:(nullable id)object; + +/** + 接收消息的回调方法 + + - Parameter message: 当前接收到的消息 + - Parameter nLeft: 还剩余的未接收的消息数,left>=0 + - Parameter object: 消息监听设置的key值 + - Parameter offline: 是否是离线消息 + - Parameter hasPackage: SDK 拉取服务器的消息以包(package)的形式批量拉取,有 package 存在就意味着远端服务器还有消息尚未被 SDK + 拉取 + 和上面的 - (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)onReceived:(RCMessage *)message + left:(int)nLeft + object:(nullable id)object + offline:(BOOL)offline + hasPackage:(BOOL)hasPackage; + +/*! + 离线消息接收完成 +*/ +- (void)onOfflineMessageSyncCompleted; + +/*! + 消息被撤回的回调方法 + + - Parameter messageId: 被撤回的消息ID + + 被撤回的消息会变更为RCRecallNotificationMessage,App需要在UI上刷新这条消息。 + */ +- (void)onMessageRecalled:(long)messageId __deprecated_msg("Use messageDidRecall: instead"); + +/*! + 消息被撤回的回调方法 + + - Parameter message: 被撤回的消息 + + 如果不删除被撤回的消息,被撤回的原消息会变更为RCRecallNotificationMessage ,参数 message 就是变更后的消息,App需要在UI上刷新这条消息。 + 如果删除被撤回的消息,参数 message 就是被撤回的原消息,App需要在UI上找到删除这条消息。 + 和上面的 - (void)onMessageRecalled:(long)messageId 功能完全一致,只能选择其中一个使用。 + */ +- (void)messageDidRecall:(RCMessage *)message; + +/*! + 请求消息已读回执(收到需要阅读时发送回执的请求,收到此请求后在会话页面已经展示该 messageUId 对应的消息或者调用 + getHistoryMessages 获取消息的时候,包含此 messageUId 的消息,需要调用 sendMessageReadReceiptResponse + 接口发送消息阅读回执) + + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + */ +- (void)onMessageReceiptRequest:(RCConversationType)conversationType + targetId:(NSString *)targetId + messageUId:(NSString *)messageUId; + + +/*! + 消息已读回执响应(收到阅读回执响应,可以按照 messageUId 更新消息的阅读数) + - Parameter messageUId: 请求已读回执的消息ID + - Parameter conversationType: conversationType + - Parameter targetId: targetId + - Parameter userIdList: 已读userId列表,字典类型 key:userId,value:readTime,例如:{"uid100001":1683708891523} + */ +- (void)onMessageReceiptResponse:(RCConversationType)conversationType + targetId:(NSString *)targetId + messageUId:(NSString *)messageUId + readerList:(nullable NSMutableDictionary *)userIdList; + +/// 消息修改回调。 +/// +/// - Parameters: +/// - messages: 被修改的消息数组。 +/// +/// - Since: 5.26.0 +- (void)onMessagesModified:(NSArray *)messages; + +/// 离线的消息修改记录同步完成。 +/// +/// - Since: 5.26.0 +- (void)onModifiedMessageSyncCompleted; + +@end + +#pragma mark - 发送消息被拦截监听器 +@protocol RCMessageBlockDelegate + +/*! + 发送消息被拦截的回调方法 + - Parameter blockedMessageInfo: 被拦截消息的相关信息 + */ +- (void)messageDidBlock:(RCBlockedMessageInfo *)blockedMessageInfo; + +@end + +#pragma mark - 连接状态监听器 + +/*! + IMLib连接状态的的监听器 + + + 设置IMLib的连接状态监听器,请参考RCIMClient的setRCConnectionStatusChangeDelegate:方法。 + + - Warning: 如果您使用IMLib,可以设置并实现此Delegate监听连接状态变化; + 如果您使用IMKit,请使用RCIM中的RCIMConnectionStatusDelegate监听连接状态,而不要使用此监听器,否则会导致IMKit中无法自动更新UI! + */ +@protocol RCConnectionStatusChangeDelegate + +/*! + IMLib连接状态的的监听器 + + - Parameter status: SDK与融云服务器的连接状态 + + 如果您设置了IMLib连接监听之后,当SDK与融云服务器的连接状态发生变化时,会回调此方法。 + */ +- (void)onConnectionStatusChanged:(RCConnectionStatus)status; + +@end + +#pragma mark - 输入状态监听器 + +/*! + IMLib输入状态的的监听器 + + 设置IMLib的输入状态监听器,请参考RCIMClient的 setRCTypingStatusDelegate:方法。 + + - Warning: + 如果您使用IMLib,可以设置并实现此Delegate监听消息输入状态;如果您使用IMKit,请直接设置RCIM中的 + enableTypingStatus,而不要使用此监听器,否则会导致IMKit中无法自动更新UI! + */ +@protocol RCTypingStatusDelegate + +/*! + 用户输入状态变化的回调 + + - Parameter conversationType: 会话类型 + - Parameter targetId: 会话目标ID + - Parameter userTypingStatusList: 正在输入的RCUserTypingStatus列表(nil表示当前没有用户正在输入) + + 当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUserTypingStatus列表。 + + - Warning: 目前仅支持单聊。 + */ +- (void)onTypingStatusChanged:(RCConversationType)conversationType + targetId:(NSString *)targetId + status:(nullable NSArray *)userTypingStatusList; + +@end + +#pragma mark - 日志监听器 +/*! + IMLib日志的监听器 + + + 设置IMLib日志的监听器,请参考RCIMClient的setRCLogInfoDelegate:方法。 + + 您可以通过logLevel来控制日志的级别。 + */ +@protocol RCLogInfoDelegate + +/*! + IMLib日志的回调 + + - Parameter logInfo: 日志信息 + */ +- (void)didOccurLog:(NSString *)logInfo; + +@end + +#pragma mark - 阅后即焚 + +/** + IMLib阅后即焚监听器 + 设置代理请参考 RCIMClient 的 setRCMessageDestructDelegate: 方法。 + */ +@protocol RCMessageDestructDelegate + +/** + 消息正在焚烧 + + - Parameter message: 消息对象 + - Parameter remainDuration: 剩余焚烧时间 + */ +- (void)onMessageDestructing:(RCMessage *)message remainDuration:(long long)remainDuration; + +@end + +#pragma mark - 会话监听 + +@protocol RCConversationDelegate +/** + 开了消息断档功能之后,sdk 会同步实时会话,实时会话同步完成的回调 + */ +- (void)conversationDidSync; + +@optional +/// 调用接口 -[RCCoreClient getRemoteConversationListWithSuccess:error:] 获取远端会话列表的回调 +/// - Parameter code: RC_SUCCESS 获取成功,其他值获取失败 +- (void)remoteConversationListDidSync:(RCErrorCode)code; + +@end + +#pragma mark - 会话状态同步 + +/** + IMLib 会话状态同步监听器 + 设置代理请参考 RCIMClient 的 setRCConversationStatusChangeDelegate: 方法。 + */ +@protocol RCConversationStatusChangeDelegate + +@optional + +/// 会话状态同步完成。 +/// +/// - Since: 5.7.8 +- (void)conversationStatusDidSync:(RCErrorCode)code; + +/** + IMLib 会话状态同步的回调 + + - Parameter conversationStatusInfos: 改变过的会话状态的数组 + */ +- (void)conversationStatusDidChange:(NSArray *)conversationStatusInfos; + +@end + +#pragma mark - 消息扩展监听 +/** + 消息扩展内容变化回调 + 设置代理请参考 RCIMClient 的 messageExpansionDelegate 方法 + 代理回调在非主线程 + */ +@protocol RCMessageExpansionDelegate +/** + 消息扩展信息更改的回调 + + - Parameter expansionDic: 消息扩展信息中更新的键值对 + - Parameter message: 消息 + + expansionDic 只包含更新的键值对,不是全部的数据。如果想获取全部的键值对,请使用 message 的 expansionDic 属性。 +*/ +- (void)messageExpansionDidUpdate:(NSDictionary *)expansionDic message:(RCMessage *)message; + +/** + 消息扩展信息删除的回调 + + - Parameter keyArray: 消息扩展信息中删除的键值对 key 列表 + - Parameter message: 消息 + +*/ +- (void)messageExpansionDidRemove:(NSArray *)keyArray message:(RCMessage *)message; + +@end + +#pragma mark - 消息拦截器 + +/** + 消息拦截器 + */ +@protocol RCMessageInterceptor + +@optional + +/** + 上传多媒体内容之前的回调 + + - Parameter message: 待上传的多媒体消息 + - Returns: 处理后的消息 + 如果返回的 message 或 message.content 为 nil,该条消息不会上传到服务,状态设置为 SentStatus_FAILED, 并回调失败 + */ +- (RCMessage *)mediaMessageWillUpload:(RCMessage *)message; + +/** + 消息保存到数据库,发送到服务前调用此回调 + + - Parameter message: 待发送的消息 + - Returns: 处理后的消息 + 如果返回的 message 或 message.content 为 nil,该条消息不会上传到服务,状态设置为 SentStatus_FAILED, 并回调失败 + */ +- (RCMessage *)messageWillSendAfterDB:(RCMessage *)message; + +/** + 接收到消息准备入库前的回调,开发者可以通过此回调对消息进行自定义处理。 + + - Parameter message: 待入库的消息 + - Returns: 处理后的消息,SDK 会将返回的消息入库并通过 RCIMClientReceiveMessageDelegate 的 onReceived 方法回调给上层 + 如果返回的 message 或 message.content 为 nil, RCIMClientReceiveMessageDelegate 的 onReceived 方法会将原消息回调给上层 + */ +- (RCMessage *)messageDidReceiveBeforeDB:(RCMessage *)message; + +@end + +#pragma mark - 媒体文件请求拦截器 + +/** + 媒体文件上传&下载拦截器 + */ +@protocol RCDownloadInterceptor + +/** + 下载前的同步回调 + - Remark: 推荐使用下载的异步回调接口 + + - Parameter request: request 请求 + - Returns: request 请求,返回值不能为 nil,否则无法正常下载 + - Since: 5.1.2 + */ +- (NSMutableURLRequest *)onDownloadRequest:(NSMutableURLRequest *)request; + +/** + 下载前的异步回调 + + - Parameter request request 请求 + - Parameter requestHandler 请求,返回值不能为 nil,否则无法正常下载 + - Remark: IMLib 不做线程切换,下载线程会使用当前回调的线程 + - Since: 5.8.0 + */ +- (void)onDownloadRequest:(nonnull NSMutableURLRequest *)request + withRequestHandler:(void (^)(NSMutableURLRequest *_Nonnull handledRequest))requestHandler; + +/** + 上传前的异步回调 + + - Parameter request request 请求 + - Parameter requestHandler 请求,返回值不能为 nil,否则无法正常上传 + - Remark: IMLib 不做线程切换,上传线程会使用当前回调的线程 + - Since: 5.8.0 + */ +- (void)onUploadRequest:(nonnull NSMutableURLRequest *)request + withRequestHandler:(void (^)(NSMutableURLRequest *_Nonnull handledRequest))requestHandler; + + +@end + +#pragma mark - 超级群 + +/** + 超级群已读时间同步代理 + */ +@protocol RCUltraGroupReadTimeDelegate + +/** + 超级群已读时间同步 + + - Parameter targetId: 会话 ID + - Parameter channelId: 频道 ID + - Parameter readTime: 已读时间 + */ +- (void)onUltraGroupReadTimeReceived:(NSString *)targetId channelId:(NSString *)channelId readTime:(long long)readTime; + +@end + +/** + 超级群输入状态代理 + */ +@protocol RCUltraGroupTypingStatusDelegate +/*! + 用户输入状态变化的回调 + + - Parameter infoArr: 正在输入的RCUltraGroupTypingStatusInfo列表(nil表示当前没有用户正在输入) + + 当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUltraGroupTypingStatusInfo列表。 + */ +- (void)onUltraGroupTypingStatusChanged:(NSArray *)infoArr; +@end + +/*! + 超级群消息变化回调 + */ +@protocol RCUltraGroupMessageChangeDelegate + +/*! + 消息扩展更新,删除 + + - Parameter messages: 消息集合 + */ +- (void)onUltraGroupMessageExpansionUpdated:(NSArray *)messages; + +/*! + 消息内容发生变更 + + - Parameter messages: 消息集合 + */ +- (void)onUltraGroupMessageModified:(NSArray *)messages; + +/*! + 消息撤回 + + - Parameter messages: 消息集合 + */ +- (void)onUltraGroupMessageRecalled:(NSArray *)messages; + +@end + +/*! + 数据库状态监听器 + + - Since: 5.10.4 + */ +@protocol RCDatabaseStatusDelegate + +/*! + 数据库开始升级 + + - Since: 5.10.4 + */ +- (void)databaseUpgradeWillStart; + +/*! + 数据库升级完成 + + - Since: 5.10.4 + */ +- (void)databaseUpgradeDidComplete:(RCErrorCode)code; + +/*! + 数据库升级中 + + - Parameter progress: 升级进度【0-100】 + - Since: 5.10.4 + */ +- (void)databaseIsUpgrading:(int)progress; +@end + +@class RCStreamMessageChunkInfo; + +/// 流式消息事件代理。 +/// - Since: 5.16.0 +@protocol RCStreamMessageRequestEventDelegate + +@optional + +/// 请求准备完成回调,如果该消息之前是异常中止的,会清理异常数据。 +- (void)didReceiveInitEventWithMessageUId:(NSString *)messageUId; + +/// 收到流式消息请求增量数据的回调。 +- (void)didReceiveDeltaEventWithMessage:(RCMessage *)message chunkInfo:(RCStreamMessageChunkInfo *)chunkInfo; + +/// 收到流式消息请求接收完成的回调。 +- (void)didReceiveCompleteEventWithMessageUId:(NSString *)messageUId code:(RCErrorCode)code; + +@end + +/// 用户级别事件代理。 +/// +/// - Warning: 需要开启用户级别设置。 +/// 可以用 `RCCoreClient` 的 `getAppSettings` 接口,查询相关配置 `isUserSettingsEnabled`。 +/// +/// - Since: 5.7.8 +@protocol RCUserSettingsDelegate + +@optional + +/// 用户级别的所有配置信息同步完成回调。 +/// +/// - Note: 在连接成功后,SDK 会同步当前用户的所有配置,同步完成后回调该方法。 +/// +/// - Parameter code: 错误码。 +- (void)userSettingsDidSync:(RCErrorCode)code; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCIMClientProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCIMProxy.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCIMProxy.h new file mode 100644 index 0000000..643d1cf --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCIMProxy.h @@ -0,0 +1,51 @@ +// +// RCIMProxy.h +// RongIMLibCore +// +// Created by chinaspx on 2022/9/7. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMProxy : NSObject + +// socks 代理地址 +@property (nonatomic, copy, readonly) NSString *host; + +// socks 代理端口号 +@property (nonatomic, assign, readonly) NSInteger port; + +/* + * 用户名和密码 + * + * - userName 和 password 均存在有效值,则使用认证方式,连接代理 + * - userName 和 password 有一个为空,则使用不认证的方式,连接代理 + * + */ +// 代理认证的用户名,默认为空字符串 +@property (nonatomic, copy, readonly) NSString *userName; +// 代理认证的密码,默认为空字符串 +@property (nonatomic, copy, readonly) NSString *password; + +// 合法性检测,自身为空则不合法、host 为空则不合法、port <=0 则不合法 +- (BOOL)isValid; + +// 默认构造,不带认证方式连接代理 +- (instancetype)initWithHost:(NSString *)host port:(NSInteger)port; + +// 默认构造,认证方式连接代理 +- (instancetype)initWithHost:(NSString *)host + port:(NSInteger)port + userName:(NSString *)userName + password:(NSString *)password; + + ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)init NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCImageCompressConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCImageCompressConfig.h new file mode 100644 index 0000000..3e0e158 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCImageCompressConfig.h @@ -0,0 +1,27 @@ +// +// RCImageCompressConfig.h +// RongIMLibCore +// +// Created by liyan on 2021/3/9. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCImageCompressConfig : NSObject + +/// 缩略图最大尺寸 +@property (nonatomic, assign) CGFloat maxSize; + +/// 缩略图最小尺寸 +@property (nonatomic, assign) CGFloat minSize; + +/// 缩略图质量压缩比 +@property (nonatomic, assign) CGFloat quality; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCImageMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCImageMessage.h new file mode 100644 index 0000000..7b097b0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCImageMessage.h @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCImageMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import +#import + +/// 图片消息的类型名 +#define RCImageMessageTypeIdentifier @"RC:ImgMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 图片消息类 +/// +/// 图片消息类,此消息会进行存储并计入未读消息数。 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Remark: 内容类消息 +@interface RCImageMessage : RCMediaMessageContent + +/// 图片消息的 URL 地址 +/// +/// 发送方此字段为图片的本地路径,接收方此字段为网络 URL 地址。 +/// +/// - Note: 不再允许外部赋值,为只读属性。本地地址使用 localPath,远端地址使用 remoteUrl +@property (nonatomic, copy, readonly, nullable) NSString *imageUrl; + +/// 图片消息的缩略图 +@property (nonatomic, strong, nullable) UIImage *thumbnailImage; + +/// 缩略图的 Base64 字符串。 +@property (nonatomic, copy, readonly, nullable) NSString *thumbnailBase64String; + +/// 缩略图的宽度。 +@property (nonatomic, assign, readonly) NSInteger thumWidth; + +/// 缩略图的高度。 +@property (nonatomic, assign, readonly) NSInteger thumHeight; + +/// 是否发送原图 +/// +/// 在发送图片的时候,是否发送原图,默认值为 NO。 +@property (nonatomic, getter=isFull) BOOL full; + +/// 图片消息的原始图片信息 +@property (nonatomic, strong, nullable) UIImage *originalImage; + +/// 图片消息的原始图片信息 +/// +/// 发送成功之前该字段是可用的 +/// 发送成功之后基于减少内存的考虑,该字段不再保存原始数据 +/// 发送成功之后请优先使用 localPath 与 remoteUrl 进行展示 +@property (nonatomic, strong, readonly, nullable) NSData *originalImageData; + +/// 初始化图片消息 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Parameter image: 原始图片 +/// +/// - Returns: 图片消息对象 ++ (instancetype)messageWithImage:(UIImage *)image; + +/// 初始化图片消息 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Parameter imageURI: 图片的本地路径 +/// - Warning: imageURI 必须为本地路径,否则构造失败 +/// +/// - Returns: 图片消息对象 ++ (instancetype)messageWithImageURI:(NSString *)imageURI; + +/// 初始化图片消息 +/// +/// 如果想发送原图,请设置属性 full 为 YES。 +/// +/// - Parameter imageData: 图片的原始数据 +/// +/// - Returns: 图片消息对象 ++ (instancetype)messageWithImageData:(NSData *)imageData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCInformationNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCInformationNotificationMessage.h new file mode 100644 index 0000000..5e82ac3 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCInformationNotificationMessage.h @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCInformationNotificationMessage.h +// Created by xugang on 14/12/4. + +#import + +/// 通知消息的类型名 +#define RCInformationNotificationMessageIdentifier @"RC:InfoNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 通知消息类 +/// +/// 通知消息类,此消息会进行存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCInformationNotificationMessage : RCMessageContent + +/// 通知的内容 +@property (nonatomic, copy) NSString *message; + +/// 初始化通知消息 +/// +/// - Parameter message: 通知的内容 +/// - Parameter extra: 通知的附加信息 +/// +/// - Returns: 通知消息对象 ++ (instancetype)notificationWithMessage:(NSString *)message extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCInitOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCInitOption.h new file mode 100644 index 0000000..641dadc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCInitOption.h @@ -0,0 +1,126 @@ +// +// RCInitOption.h +// RongIMLibCore +// +// Created by shuai shao on 2023/3/16. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCAreaCode) { + /// 默认值,北京数据中心 + RCAreaCodeBJ = 1, + /// 新加坡数据中心 + RCAreaCodeSG = 2, + /// 北美数据中心 + RCAreaCodeNA = 3, + /// 新增的新加坡数据中心 + RCAreaCodeSG_B = 4, + /// 废弃枚举 + RCAreaCodeSG_A __deprecated_msg("Use RCAreaCodeSG_B instead") = RCAreaCodeSG_B, + /// 沙特数据中心 + RCAreaCodeSA = 5, + /// 无效枚举值,业务上不用 + RCAreaCodeInvalid +}; + +// 心跳级别 +typedef NS_ENUM(NSInteger, RCHeartbeatLevel) { + /// 紧急:2 次心跳超时后重连 IM + RCHeartbeatLevelUrgent = 2, + /// 优先:3 次心跳超时后重连 IM + RCHeartbeatLevelPriority = 3, + /// 立即:4 次心跳超时后重连 IM + RCHeartbeatLevelImmediate = 4, + /// 迫切:5 次心跳超时后重连 IM + RCHeartbeatLevelPressing = 5, + /// 常规:6 次心跳超时后重连 IM(默认值) + RCHeartbeatLevelNormal = 6 +}; +@interface RCInitOption : NSObject + +/// 导航服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 naviServer,必须为有效的服务器地址: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK ///默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com ///格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// 与 RCCoreClient 中 setServerInfo:fileServer: 效果一致,任一种设置都生效 +/// - Since: 5.4.1 +@property (nonatomic, copy, nullable) NSString *naviServer; + +/// 文件服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 fileServer,必须为有效的服务器地址: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK ///默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com ///格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// 与 RCCoreClient 中 setServerInfo:fileServer: 效果一致,任一种设置都生效 +/// - Since: 5.4.1 +@property (nonatomic, copy, nullable) NSString *fileServer; + +/// 统计服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 statisticServer,必须为有效的服务器地址: +/// 1. 如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK ///默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2. 如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com ///格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// 与 RCCoreClient 中 setStatisticServer: 效果一致,任一种设置都生效 +/// - Since: 5.4.1 +@property (nonatomic, copy, nullable) NSString *statisticServer; + +/// 日志服务器地址 +/// +/// - Warning: 仅限独立数据中心使用,使用前必须先联系商务开通。 +/// 如果设置 logServer,必须为有效的服务器地址: +/// 1、如果使用 https,则设置为 https://cn.xxx.com:port 或 https://cn.xxx.com 或 cn.xxx.com【SDK 默认使用 https】,其中域名部分也可以是 IP,如果不指定端口,将默认使用 443 端口。 +/// 2、如果使用 http,则设置为 http://cn.xxx.com:port 或 http://cn.xxx.com 格式,其中域名部分也可以是 IP,如果不指定端口,将默认使用 80 端口。 +/// iOS 默认只能使⽤ HTTPS 协议。如果您使⽤ http 协议,请参考 Apple 开发⽂档中的 ATS 设置说明。 +/// - Since: 5.4.2 +@property (nonatomic, copy, nullable) NSString *logServer; + +/// 云控服务器地址。 +/// +/// - Since: 5.24.0 +@property (nonatomic, copy, nullable) NSString *cloudControlServer; + +/// 区域码 +/// +/// 默认为北京数据中心,用户可以根据实际情况设置区域码,设置之后,SDK 将会使用特定区域的服务地址 +/// 每个数据中心都会有对应的 naviServer、statisticServer、logServer +/// 如果开发者手动设置了本类的 naviServer、statisticServer、logServer 将会覆盖对应区域的配置 +/// 例如:设置 areaCode 为北美数据中心,同时又设置了此处的 naviServer,那么最终会使用此处的 naviServer 而不是北美数据中心的 naviServer +/// - Since: 5.4.2 +@property (nonatomic, assign) RCAreaCode areaCode; + +/// crash 监控开关,默认开启 +/// +/// - Since: 5.6.5 +@property (nonatomic, assign) BOOL crashMonitorEnable; + +/// 心跳级别 (默认 RCHeartbeatLevelNormal) +/// +/// - Since: 5.6.7 +@property (nonatomic, assign) RCHeartbeatLevel heartbeatLevel; + +/// 网络环境标识 +/// 标志客户端所在当前网络环境,例如 intranet 内网,private 专网。如果不配置,使用对应于的默认环境配置 +/// +/// - Note: 私有云专用属性,公有云客户设置无效。 +@property (nonatomic, copy, nullable) NSString *environment; + +/// 是否开启同步空置顶会话能力 +/// +/// - Note: 如不设置,则默认为 NO,即不同步空置顶会话 +/// - Since: 5.10.0 +@property (nonatomic, assign) BOOL enableSyncEmptyTopConversation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCLocalConfiguration.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCLocalConfiguration.h new file mode 100644 index 0000000..6bcacc4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCLocalConfiguration.h @@ -0,0 +1,58 @@ +// +// RCLocalConfiguration.h +// RongIMLibCore +// +// Created by litao on 15/10/19. +// Copyright © 2015 年 RongCloud. All rights reserved. +// + +#import + +@interface RCLocalConfiguration : NSObject + ++ (instancetype)sharedInstance; + +/// 原图最大宽度,默认值:1080 +@property (nonatomic, assign) NSUInteger imageWidth; +/// 原图最大高度,默认值:1080 +@property (nonatomic, assign) NSUInteger imageHeight; +/// 原图质量压缩比例,默认值:0.85 +@property (nonatomic, assign) float imageQuality; +/// 原图大小限制,默认值:200(单位:KB)配置发送图片时,如果图片大小不超过则发送原图 +@property (nonatomic, assign) NSUInteger maxOriginalImageSize; + + +/// 缩略图最大边的长度,默认值:240 +@property (nonatomic, assign) NSUInteger thumbnailMaxSize; +/// 缩略图最小边的长度,默认值:100 +@property (nonatomic, assign) NSUInteger thumbnailMinSize; +/// 缩略图质量压缩比例,默认值:0.3 +@property (nonatomic, assign) float thumbnailQuality; + + +/// 位置消息缩略图的最大宽度,默认值:480 +@property (nonatomic, assign) float locationImageWidth; +/// 位置消息缩略图的最大高度,默认值:240 +@property (nonatomic, assign) float locationImageHeight; +/// 位置消息缩略图压缩比例,默认值:0.7 +@property (nonatomic, assign) float locationImageQuality; + + +/// 小视频压缩宽度,建议使用 16 的倍数,默认值:540 +@property (nonatomic, assign) NSUInteger sightCompressWidth; +/// 小视频压缩高度,建议使用 16 的倍数,默认值:960 +@property (nonatomic, assign) NSUInteger sightCompressHeight; + + +/// 文件下载的保存路径,默认值:Documents/MyFile +@property (nonatomic, copy) NSString *fileMessageRelativePath; + +// 分片下载大小限制,超限才会去分片下载,单位为字节,默认 20971520(20MB) +@property (nonatomic, assign) long downloadSliceSize; + +// 后台是否保活,默认值:NO +@property (nonatomic, assign) BOOL forceKeepAlive; + +// 心跳间隔,默认值:15(单位:秒) +@property (nonatomic, assign) NSInteger heartBeatInterval; +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMediaMessageContent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMediaMessageContent.h new file mode 100644 index 0000000..f855b64 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMediaMessageContent.h @@ -0,0 +1,34 @@ +// +// RCMediaMessageContent.h +// RongIMLib +// +// Created by lichenfeng on 2018/11/22. +// Copyright © 2018 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 媒体类型消息的父类 +/// +/// +/// SDK 中所有媒体类型消息(图片、文件等)均继承此类。 +/// 开发者如需将自定义的媒体类型消息上传到融云默认的服务器时必须继承此类 ( SDK 负责媒体消息的上传及上传成功后的发送,开发者自行处理消息接收后的展示) 。 +/// 以下属性需要子类在 encode、decode 方法中和扩展的属性一同进行处理 +@interface RCMediaMessageContent : RCMessageContent + +/// 媒体内容的本地路径(此属性必须有值) +@property (nonatomic, copy, nullable) NSString *localPath; + +/// 媒体内容上传服务器后的网络地址(上传成功后 SDK 会为该属性赋值) +@property (nonatomic, copy, nullable) NSString *remoteUrl; + +/// 媒体内容的文件名(如不传使用 SDK 中 downloadMediaMessage 方法下载后会默认生成一个名称) +@property (nonatomic, copy, nullable) NSString *name; + +/// 通过本地路径获取媒体文件名字,如果本地路径存在,就可以获取到有效值,否则获取为 nil +- (nullable NSString *)getNameFromLocalPath; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMentionedInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMentionedInfo.h new file mode 100644 index 0000000..ae29d3a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMentionedInfo.h @@ -0,0 +1,46 @@ +// +// RCMentionedInfo.h +// RongIMLib +// +// Created by 杜立召 on 16/7/6. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 消息中的 @ 提醒信息对象 +@interface RCMentionedInfo : NSObject + +/// @ 提醒的类型 +@property (nonatomic, assign) RCMentionedType type; + +/// @ 的用户 ID 列表 +/// +/// 如果 type 是 @ 所有人,则可以传 nil +@property (nonatomic, strong, nullable) NSArray *userIdList; + +/// 包含 @ 提醒的消息,本地通知和远程推送显示的内容 +/// +/// 如果是 nil , 则按默认格式显示 [有人 @ 你] +@property (nonatomic, copy, nullable) NSString *mentionedContent; + +/// 是否 @ 了我 +@property (nonatomic, readonly) BOOL isMentionedMe; + +/// 初始化 @ 提醒信息 +/// +/// - Parameter type: @ 提醒的类型 +/// - Parameter userIdList: @ 的用户 ID 列表 +/// - Parameter mentionedContent: @ Push 内容 +/// +/// - Returns: @ 提醒信息的对象 +- (instancetype)initWithMentionedType:(RCMentionedType)type + userIdList:(nullable NSArray *)userIdList + mentionedContent:(nullable NSString *)mentionedContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessage+RCDeprecated.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessage+RCDeprecated.h new file mode 100644 index 0000000..b3fcb60 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessage+RCDeprecated.h @@ -0,0 +1,34 @@ +// +// RCMessage+RCDeprecated.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/17. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCMessage (RCDeprecated) + +/// 消息的接收状态 (针对接收的消息生效) +@property (nonatomic, assign) RCReceivedStatus receivedStatus __deprecated_msg("Use receivedStatusInfo instead"); + +/// RCMessage 初始化方法(已废弃,请不要使用该接口构造消息发送) +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter messageDirection: 消息的方向 +/// - Parameter messageId: 消息的 ID(如果是发送该消息初始值请设置为 -1) +/// - Parameter content: 消息的内容 +- (instancetype)initWithType:(RCConversationType)conversationType + targetId:(NSString *)targetId + direction:(RCMessageDirection)messageDirection + messageId:(long)messageId + content:(RCMessageContent *)content + __deprecated_msg("Use initWithType:targetId:direction:content: instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessage.h new file mode 100644 index 0000000..5471b78 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessage.h @@ -0,0 +1,189 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#ifndef __RCMessage +#define __RCMessage + +#import + +#import +#import +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReceivedStatusInfo; +@class RCMessageModifyInfo; + +/// 消息实体类 +/// +/// 包含消息的所有属性。 +@interface RCMessage : NSObject + +/// 会话类型 +@property (nonatomic, assign) RCConversationType conversationType; + +/// 会话 ID +@property (nonatomic, copy) NSString *targetId; + +/// 所属会话的业务标识,长度限制 20 字符 +@property (nonatomic, copy, nullable) NSString *channelId; + +/// 消息的 ID +/// +/// 本地存储的消息的唯一值(数据库索引唯一值) +@property (nonatomic, assign) long messageId; + +/// 消息的方向 +@property (nonatomic, assign) RCMessageDirection messageDirection; + +/// 消息的发送者 ID +@property (nonatomic, copy, nullable) NSString *senderUserId; + +/// 消息的接收状态类 (针对接收的消息生效) +/// - Since: 5.6.8 +@property (nonatomic, strong) RCReceivedStatusInfo *receivedStatusInfo; + +/// 消息的发送状态 (针对发送的消息生效) +@property (nonatomic, assign) RCSentStatus sentStatus; + +/// 消息的接收时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long receivedTime; + +/// 消息的发送时间(Unix 时间戳、毫秒) +@property (nonatomic, assign) long long sentTime; + +/// 消息的类型名 +@property (nonatomic, copy, nullable) NSString *objectName; + +/// 消息的内容 +@property (nonatomic, strong, nullable) RCMessageContent *content; + +/// 消息的附加字段 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 全局唯一 ID +/// +/// 服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, copy, nullable) NSString *messageUId; + +/// 阅读回执状态 +@property (nonatomic, strong, nullable) RCReadReceiptInfo *readReceiptInfo; + +/// 群阅读回执状态 +/// +/// 如果是调用 RCGroupReadReceiptV2Manager 中方法实现群已读回执功能,此参数才有效,否则请使用 readReceiptInfo 属性获取阅读回执状态 +/// 如果使用 IMKit,请用 readReceiptInfo 属性 +@property (nonatomic, strong, nullable) RCGroupReadReceiptInfoV2 *groupReadReceiptInfoV2; + +/// 群阅读回执状态 +/// +/// 如果开启了已读回执 V4 功能,此参数才有效,否则请使用 readReceiptInfo 属性获取阅读回执状态 +/// 如果使用 IMKit,请用 readReceiptInfo 属性 +@property (nonatomic, strong, nullable, readonly) RCReadReceiptInfoV4 *readReceiptInfoV4; + + +/// 消息配置 +@property (nonatomic, strong) RCMessageConfig *messageConfig; + +/// 消息推送配置 +@property (nonatomic, strong) RCMessagePushConfig *messagePushConfig; + +/// 是否是离线消息,只在接收消息的回调方法中有效,如果消息为离线消息,则为 YES,其他情况均为 NO +@property (nonatomic, assign) BOOL isOffLine; + + +/// 消息是否可以包含扩展信息 +/// +/// 该属性在消息发送时确定,发送之后不能再做修改 +/// 扩展信息只支持单聊、群聊、超级群,其它会话类型不能设置扩展信息 +@property (nonatomic, assign) BOOL canIncludeExpansion; + +/// 消息扩展信息列表 +/// +/// 扩展信息只支持单聊、群聊、超级群,其它会话类型不能设置扩展信息 +/// 默认消息扩展字典 key 长度不超过 32,value 长度不超过 4096,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300 +@property (nonatomic, strong, nullable) NSDictionary *expansionDic; + +/// 消息是否被修改 +/// +/// - Note: 从 5.26.0 开始,支持全部类型的消息变更状态。 +@property (nonatomic, assign) BOOL hasChanged; + +/// 消息修改信息。 +/// +/// @since 5.26.0 +@property (nonatomic, readonly, strong) RCMessageModifyInfo *modifyInfo; + +/// 消息已读回执操作标识。 +/// +/// - Since: 5.20.0 +@property (nonatomic, assign) BOOL needReceipt; + +/// 已读回执是否已发送。 +/// +/// - Since: 5.20.0 +@property (nonatomic, assign) BOOL sentReceipt; + +/// 接收定向消息的用户数组 +/// +/// @since 5.8.0 +@property (nonatomic, copy, nullable) NSArray *directedUserIds; + +/// 禁止更新到会话最新一条消息,默认 NO: 更新,YES: 不更新 +/// +/// @since 5.12.2 +@property (nonatomic, assign) BOOL disableUpdateLastMessage; + +/// RCMessage 初始化方法 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter messageDirection: 消息的方向 +/// - Parameter content: 消息的内容 +- (instancetype)initWithType:(RCConversationType)conversationType + targetId:(NSString *)targetId + direction:(RCMessageDirection)messageDirection + content:(RCMessageContent *)content; + +/// RCMessage 初始化方法,供超级群消息使用 +/// +/// - Parameter conversationType: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 频道 ID +/// - Parameter messageDirection: 消息的方向 +/// - Parameter content: 消息的内容 +- (instancetype)initWithType:(RCConversationType)conversationType + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + direction:(RCMessageDirection)messageDirection + content:(RCMessageContent *)content; + +@end + +@class RCMessageIdentifier; + +@interface RCMessage (RCIdentifier) + +/// 消息标识。 +/// +/// - Since: 5.22.0 +- (RCMessageIdentifier *)messageIdentifier; + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageAuditInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageAuditInfo.h new file mode 100644 index 0000000..b322bce --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageAuditInfo.h @@ -0,0 +1,28 @@ +// +// RCMessageAuditInfo.h +// RongIMLibCore +// +// Created by Lang on 2023/11/27. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import "RCStatusDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +/// 消息审核配置 +@interface RCMessageAuditInfo : NSObject + +/// 是否送审(消息回调是否送给三方审核) +@property (nonatomic, assign) RCMessageAuditType auditType; + +/// 项目标识 +@property (nonatomic, copy) NSString *project; + +/// 审核策略 +@property (nonatomic, copy) NSString *strategy; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageConfig.h new file mode 100644 index 0000000..795fa7a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageConfig.h @@ -0,0 +1,21 @@ +// +// RCMessageConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/6/29. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCMessageConfig : NSObject + +/// 是否关闭远程推送和本地通知,默认值 NO +/// 设置为 YES 禁用该条消息的远程推送和本地通知 +@property (nonatomic, assign) BOOL disableNotification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageContent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageContent.h new file mode 100644 index 0000000..7adcefb --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageContent.h @@ -0,0 +1,217 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCMessageContent.h +// Created by Heq.Shinoda on 14-6-13. + +#ifndef __RCMessageContent +#define __RCMessageContent + +#import +#import +#import +#import + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 消息内容的编解码协议 +/// 用于标识消息内容的类型,进行消息的编码和解码。 +/// 所有自定义消息必须实现此协议,否则将无法正常传输和使用。 +@protocol RCMessageCoding +@required + +/// 将消息内容序列化,编码成为可传输的 json 数据 + +/// +/// 消息内容通过此方法,将消息中的所有数据,编码成为 json 数据,返回的 json 数据将用于网络传输。 +- (nullable NSData *)encode; + +/// 将 json 数据的内容反序列化,解码生成可用的消息内容 +/// +/// - Parameter data: 消息中的原始 json 数据 +/// +/// 网络传输的 json 数据,会通过此方法解码,获取消息内容中的所有数据,生成有效的消息内容。 +- (void)decodeWithData:(NSData *)data; + +/// 返回消息的类型名 +/// +/// - Returns: 消息的类型名 +/// +/// 您定义的消息类型名,需要在各个平台上保持一致,以保证消息互通。 +/// - Warning: 请勿使用 @ "RC:"开头的类型名,以免和 SDK 默认的消息名称冲突 ++ (NSString *)getObjectName; + +/// 返回可搜索的关键内容列表 +/// +/// - Returns: 返回可搜索的关键内容列表 +/// +/// 这里返回的关键内容列表将用于消息搜索,自定义消息必须要实现此接口才能进行搜索。 +- (nullable NSArray *)getSearchableWords; + +@end + +/// 消息内容的存储协议 +/// +/// 用于确定消息内容的存储策略。 +/// 所有自定义消息必须实现此协议,否则将无法正常存储和使用。 +@protocol RCMessagePersistentCompatible +@required + +/// 返回消息的存储策略 +/// +/// - Returns: 消息的存储策略 +/// +/// 指明此消息类型在本地是否存储、是否计入未读消息数。 ++ (RCMessagePersistent)persistentFlag; +@end + +/// 消息内容摘要的协议 +/// +/// 用于在会话列表和本地通知中显示消息的摘要。 +@protocol RCMessageContentView +@optional + +/// 返回在会话列表和本地通知中显示的消息内容摘要 +/// +/// - Returns: 会话列表和本地通知中显示的消息内容摘要 +/// +/// 如果您使用 IMKit,当会话的最后一条消息为自定义消息时,需要通过此方法获取在会话列表展现的内容摘要; +/// 当 App 在后台收到消息时,需要通过此方法获取在本地通知中展现的内容摘要。 +- (nullable NSString *)conversationDigest; + +@end + + +/// 消息内容的基类 +/// +/// 此类为消息实体类 RCMessage 中的消息内容 content 的基类。 +/// 所有的消息内容均为此类的子类,包括 SDK 自带的消息(如 RCTextMessage、RCImageMessage 等)和用户自定义的消息。 +/// 所有的自定义消息必须继承此类,并实现 RCMessageCoding 和 RCMessagePersistentCompatible、RCMessageContentView 协议。 +@interface RCMessageContent : NSObject + +/// 消息内容中携带的发送者的用户信息 +/// +/// 如果您使用 IMKit,可以通过 RCIM 的 enableMessageAttachUserInfo 属性设置在每次发送消息中携带发送者的用户信息。 +@property (nonatomic, strong, nullable) RCUserInfo *senderUserInfo; + +/// 消息中的 @ 提醒信息 +@property (nonatomic, strong, nullable) RCMentionedInfo *mentionedInfo; + +/// 消息的审核配置 +@property (nonatomic, strong, nullable) RCMessageAuditInfo *auditInfo; + +/// 设置焚烧时间 +/// +/// 默认是 0,0 代表该消息非阅后即焚消息。 +@property (nonatomic, assign) NSUInteger destructDuration; + +/// 消息的附加信息 +/// +/// 请确保传入的是 NSString 类型的数据 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 将用户信息编码到字典中 +/// +/// - Parameter userInfo: 要编码的用户信息 +/// - Returns: 存有用户信息的 Dictionary +- (NSDictionary *)encodeUserInfo:(RCUserInfo *)userInfo; + +/// 将消息内容中携带的用户信息解码 +/// +/// - Parameter dictionary: 用户信息的 Dictionary +- (void)decodeUserInfo:(NSDictionary *)dictionary; + +/// 将 @ 提醒信息编码到字典中 +/// +/// - Parameter mentionedInfo: 要编码的@信息 +/// - Returns: 存有@信息的 Dictionary +- (NSDictionary *)encodeMentionedInfo:(RCMentionedInfo *)mentionedInfo; + +/// 将消息内容中携带的 @ 提醒信息解码 +/// +/// - Parameter dictionary: @提醒信息的 Dictionary +- (void)decodeMentionedInfo:(NSDictionary *)dictionary; + + +/// 将基类信息编码到字典中,推荐使用此方法 +/// +/// - Returns: 存有基类信息的 Dictionary +/// +/// 自定义消息在重写 - (nullable NSData *)encode 方法 可直接调用此方法完成基类属性的编码 +/// +/// 此方法内部调用了 encodeMentionedInfo: 和 encodeUserInfo: 方法 +/// +///```objc +/// - (NSData *)encode { +/// NSMutableDictionary *dataDict = [self encodeBaseData]; +/// NSString *textContent = self.content ?: @""; +/// [dataDict rclib_setObject:textContent forKey:@"content"]; +/// NSData *data = [NSJSONSerialization dataWithJSONObject:dataDict options:kNilOptions error:nil]; +/// return data; +/// } +/// ``` +/// - Since: 5.4.0 +- (NSMutableDictionary *)encodeBaseData; + + +/// 将消息内容中携带的基类信息解码,推荐使用此方法 +/// +/// - Parameter dictionary: 存有基类信息的 Dictionary +/// +/// 自定义消息在重写 - (void)decodeWithData:(NSData *)data 方法 可直接调用此方法完成基类属性的解码 +/// +/// 此方法内部调用了 decodeMentionedInfo: 和 decodeUserInfo: 方法 +/// +///```objc +/// - (void)decodeWithData:(NSData *)data { +/// NSDictionary *jsonDic = [[self class] dictionaryFromJsonData:data]; +/// if (!jsonDic) { +/// // 解析失败保存原数据 +/// self.rawJSONData = data; +/// return; +/// } +/// // 基类负责解析基类属性 +/// [self decodeBaseData:jsonDic]; +/// +/// //子类只解析子类属性 +/// self.content = [jsonDic rclib_mix_stringForKey:@"content"]; +/// } +/// ``` +/// - Since: 5.4.0 +- (void)decodeBaseData:(NSDictionary *)dictionary; + +/// 消息内容的原始 json 数据 +/// +/// 此字段存放消息内容中未编码的 json 数据。 +/// SDK 内置的消息,如果消息解码失败,默认会将消息的内容存放到此字段;如果编码和解码正常,此字段会置为 nil。 +@property (nonatomic, strong, nullable, setter=setRawJSONData:) NSData *rawJSONData; + + +#pragma mark - json tools + +/// 消息基类提供的安全校验方法 JSON->Map +/// @param jsonData json 二进制数据 +/// @return 非字典,返回 nil +/// - Since: 5.4.0 ++ (nullable NSDictionary *)dictionaryFromJsonData:(NSData *)jsonData; + +/// 消息基类提供的安全校验方法 JSON->Array +/// - Parameter jsonData: json 二进制数据 +/// - Returns: 非数组,返回 nil +/// - Since: 5.4.0 ++ (nullable NSArray *)arrayFromJsonData:(NSData *)jsonData; + + +@end + +NS_ASSUME_NONNULL_END + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageDigestInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageDigestInfo.h new file mode 100644 index 0000000..24a784a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageDigestInfo.h @@ -0,0 +1,53 @@ +// +// RCMessageDigestInfo.h +// RongIMLibCore +// +// Created by RobinCui on 2022/8/3. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface RCMessageDigestInfo : NSObject +/*! +会话类型 +*/ +@property (nonatomic, assign) RCConversationType conversationType; + +/*! +会话 ID +*/ +@property (nonatomic, copy) NSString *targetId; + +/*! +该会话的业务标识,长度限制 20 字符 +*/ +@property (nonatomic, copy) NSString *channelId; +/*! +消息的全局唯一 ID + +服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +*/ +@property (nonatomic, copy) NSString *messageUid; + +/*! +消息的发送时间(Unix时间戳、毫秒) +*/ +@property (nonatomic, assign) long long sentTime; + +/*! +消息是否 @所有人 +*/ +@property (nonatomic, assign) BOOL isMentionAll; + + +/*! +消息类型 +*/ +@property (nonatomic, copy) NSString *objectName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageIdentifier.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageIdentifier.h new file mode 100644 index 0000000..c217a24 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageIdentifier.h @@ -0,0 +1,35 @@ +// +// RCMessageIdentifier.h +// RongIMLibCore +// +// Created by RC-MINI on 2025/6/11. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationIdentifier; + +/// 消息标识。 +/// +/// - Since: 5.20.2 +@interface RCMessageIdentifier : NSObject + +/// 消息所属会话。 +@property (nonatomic, strong) RCConversationIdentifier *identifier; + +/// 消息唯一 ID。 +@property (nonatomic, copy) NSString *messageUId; + +/// 初始化方法。 +/// +/// - Parameters: +/// - identifier: 会话标识。 +/// - messageUId: 消息 UId。 +- (instancetype)initWithConversationIdentifier:(RCConversationIdentifier *)identifier messageUId:(NSString *)messageUId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageModifyInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageModifyInfo.h new file mode 100644 index 0000000..4277cd5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageModifyInfo.h @@ -0,0 +1,47 @@ +// +// RCMessageModifyInfo.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/17. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 修改消息内容的更新状态。 +/// +/// @since 5.26.0 +typedef NS_ENUM(NSInteger, RCMessageModifyStatus) { + /// 更新成功。 + RCMessageModifyStatusSuccess = 0, + /// 更新中。 + RCMessageModifyStatusUpdating = 1, + /// 更新失败。 + RCMessageModifyStatusFailed = 2, +}; + +@class RCMessageContent; + +/// 消息内容修改信息。 +/// +/// @since 5.26.0 +@interface RCMessageModifyInfo : NSObject + +/// 消息修改时间,单位毫秒。 +/// +/// - Note: 默认为 0,如果大于 0,表示消息被修改过。如果多次修改,以最后一次修改时间为准。 +@property (nonatomic, assign) long timestamp; + +/// 消息修改的内容。 +/// +/// - Note: 当 `status` 为 `RCMessageModifyStatusUpdating` 和 `RCMessageModifyStatusFailed` 时有值。 +@property (nonatomic, strong, nullable) RCMessageContent *content; + +/// 消息修改的更新状态。 +@property (nonatomic, assign) RCMessageModifyStatus status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessagePushConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessagePushConfig.h new file mode 100644 index 0000000..ecb9800 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessagePushConfig.h @@ -0,0 +1,85 @@ +// +// RCMessagePushConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/9/15. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCiOSConfig; +@class RCAndroidConfig; +@class RCHarmonyOSConfig; + +@interface RCMessagePushConfig : NSObject + +/// 是否屏蔽通知标题 +/// +/// YES: 不显示通知标题 +/// NO: 显示通知标题 +/// +/// 默认情况下融云单聊消息通知标题为用户名、群聊消息为群名称,设置后不会再显示通知标题。 +/// 此属性只针目标用户为 iOS 平台时有效,Android 第三方推送平台的通知标题为必填项,所以暂不支持。 +@property (nonatomic, assign) BOOL disablePushTitle; + +/// 推送标题 +/// +/// 如果没有设置,会使用下面的默认标题显示规则: +/// - 内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。 +/// - 自定义消息:默认不显示标题。 +@property (nonatomic, copy, nullable) NSString *pushTitle; + +/// 推送内容 +/// +/// 优先使用 MessagePushConfig 的 pushContent。 +/// +/// 如果一个接口 RCMessage 和 pushContent 同时存在,且 MessagePushConfig.pushContent 为有效值,会优先使用 MessagePushConfig.pushContent 当做最终的 pushContent。 +/// 例如 sendMessage、sendMediaMessage、recallMessage 接口。 +@property (nonatomic, copy, nullable) NSString *pushContent; + + +/// 远程推送附加信息 +/// +/// 优先使用 MessagePushConfig 的 pushData。 +/// +/// 如果一个接口 RCMessage 和 pushData 同时存在,且 MessagePushConfig.pushData 为有效值,会优先使用 MessagePushConfig.pushData 当做最终的 pushData. +/// 例如 sendMessage、sendMediaMessage 接口。 +@property (nonatomic, copy, nullable) NSString *pushData; + +/// 是否强制显示通知详情 +/// +/// 当目标用户通过 RCPushProfile 中的 updateShowPushContentStatus 设置推送不显示消息详情时,可通过此参数,强制设置该条消息显示推送详情。 +@property (nonatomic, assign) BOOL forceShowDetailContent; + +/// 推送模板 ID +/// +/// 设置后根据目标用户通过 SDK `RCPushProfile` 中的 `setPushLanguageCode` 设置的语言环境,匹配模板中设置的语言内容进行推送,未匹配成功时使用默认内容进行推送。 +/// +/// 模板内容在“开发者后台 - 自定义推送文案”中进行设置。 +/// +/// - Warning:RCMessagePushConfig 中的 Title 和 PushContent 优先级高于模板 ID(templateId)中对应的标题和推送内容。 +@property (nonatomic, copy, nullable) NSString *templateId; + +/// iOS 平台相关配置 +@property (nonatomic, strong) RCiOSConfig *iOSConfig; + +/// Android 平台相关配置 +@property (nonatomic, strong) RCAndroidConfig *androidConfig; + +/// HarmonyOS 平台相关配置 +/// - Since: 5.10.2 +@property (nonatomic, strong) RCHarmonyOSConfig *hmosConfig; + + +/// 将数组转成 messagePushConfig 的 iOSConfig 和 AndroidConfig +- (instancetype)arrayToConfig:(NSArray *)array; + +/// 将 iOSConfig 和 AndroidConfig 转成数组 +- (NSArray *)encodeIOSAndAndroidConfig; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageResult.h new file mode 100644 index 0000000..a040955 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCMessageResult.h @@ -0,0 +1,32 @@ +// +// RCMessageResult.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/14. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage; + +/// 消息查询结果。 +/// +/// - Since: 5.26.0 +@interface RCMessageResult : NSObject + +/// 消息唯一 ID。 +@property (nonatomic, readonly, copy) NSString *messageUId; + +/// 查询到的消息。 +@property (nonatomic, readonly, strong, nullable) RCMessage *message; + +/// 查询的错误码。 +@property (nonatomic, readonly, assign) RCErrorCode code; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCModifyMessageParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCModifyMessageParams.h new file mode 100644 index 0000000..84ae758 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCModifyMessageParams.h @@ -0,0 +1,28 @@ +// +// RCModifyMessageParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/21. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessageContent; + +/// 消息修改参数对象。 +/// +/// - Since: 5.26.0 +@interface RCModifyMessageParams : NSObject + +/// 消息唯一 ID。 +@property (nonatomic, copy) NSString *messageUId; + +/// 修改后的消息体。 +@property (nonatomic, strong) RCMessageContent *messageContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCNotificationQuietHoursSetting.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCNotificationQuietHoursSetting.h new file mode 100644 index 0000000..fa4e6d0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCNotificationQuietHoursSetting.h @@ -0,0 +1,32 @@ +// +// RCNotificationQuietHoursSetting.h +// RongIMLibCore +// +// Created by shuai shao on 2025/2/7. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +enum RCPushNotificationQuietHoursLevel : NSInteger; + +/// 消息提醒屏蔽信息 +/// - Since: 5.14.0 +@interface RCNotificationQuietHoursSetting : NSObject + +/// 开始时间。 +@property (nonatomic, copy) NSString *startTime; +/// 分钟数,范围为 (0 , 1440)。 +/// (比如,您设置的起始时间是 00:00,结束时间为 01:00,则 spanMins 为 60 分钟。设置为 1439 代表全天免打扰(23 * 60 + 59 = 1439)) +@property (nonatomic, assign) int spanMins; +/// 消息通知级别。 +@property (nonatomic, assign) enum RCPushNotificationQuietHoursLevel level; +/// 时区。 +/// 国内数据中心默认 Asia/Shanghai,海外默认 UTC。 +@property (nonatomic, copy, nullable) NSString *timezone; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPagingQueryOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPagingQueryOption.h new file mode 100644 index 0000000..598f61f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPagingQueryOption.h @@ -0,0 +1,26 @@ +// +// RCPagingQueryOption.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPagingQueryOption : NSObject + +/// 分页标识,获取第一页时传 nil,第二页传入 SDK 返回第一页数据时携带的 pageToken +@property (nonatomic, copy, nullable) NSString *pageToken; + +/// 每页条数,以具体接口标注的数量为准。 +@property (nonatomic, assign) NSUInteger count; + +/// 是否正序查询,默认为 NO 倒序返回,设置 YES 为 正序返回 +@property (nonatomic, assign) BOOL order; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPagingQueryResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPagingQueryResult.h new file mode 100644 index 0000000..cb1c88a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPagingQueryResult.h @@ -0,0 +1,30 @@ +// +// RCPagingQueryResult.h +// RongIMLibCore +// +// Created by Lang on 2024/7/30. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPagingQueryResult : NSObject + +/// 分页标识 +/// - 获取第一页时传 nil,第二页传入 SDK 返回第一页数据时携带的 pageToken。 +/// - 当 SDK 返回 `pageToken` 为空字符串时,表示没有更多数据了。 +@property (nonatomic, copy, readonly) NSString *pageToken; + +/// 查询结果总数 +/// 如返回 -1 则表示此次查询不支持返回总数 +/// - Note: 这个总数是所有分页数据的总和。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +/// 当前分页的数据 +@property (nonatomic, copy, readonly) NSArray *data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPlatformOnlineStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPlatformOnlineStatus.h new file mode 100644 index 0000000..da32af8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPlatformOnlineStatus.h @@ -0,0 +1,25 @@ +// +// RCPlatformOnlineStatus.h +// RongIMLibCore +// +// Created by huan xu on 2025/9/10. +// Copyright © 2025 RongCloud. All rights reserved. + +/// - Since: 5.28.0 + +#import +#import "RCStatusDefine.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPlatformOnlineStatus : NSObject +/// 平台 +@property (nonatomic, assign) RCPlatform platform; +/// 是否在线 +@property (nonatomic, assign) BOOL isOnline; +/// 更新时间(毫秒时间戳) +@property (nonatomic, assign) long long updateTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCProfileNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCProfileNotificationMessage.h new file mode 100644 index 0000000..5901690 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCProfileNotificationMessage.h @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCProfileNotificationMessage.h +// Created by xugang on 14/11/28. + +#import + +/// 公众服务账号信息变更消息的类型名 +#define RCProfileNotificationMessageIdentifier @"RC:ProfileNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 公众服务账号信息变更消息类 +/// +/// 公众服务账号信息变更消息类,此消息会进行存储,但不计入未读消息数。 +/// - Remark: 通知类消息 +@interface RCProfileNotificationMessage : RCMessageContent + +/// 公众服务账号信息变更的操作名 +@property (nonatomic, copy) NSString *operation; + +/// 信息变更的数据,可以为任意格式,如 json 数据。 +@property (nonatomic, copy, nullable) NSString *data; + +/// 初始化公众服务账号信息变更消息 +/// +/// - Parameter operation: 信息变更的操作名 +/// - Parameter data: 信息变更的数据 +/// - Parameter extra: 信息变更的附加信息 +/// - Returns: 公众服务账号信息变更消息的对象 ++ (instancetype)notificationWithOperation:(NSString *)operation + data:(nullable NSString *)data + extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPushProfile.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPushProfile.h new file mode 100644 index 0000000..08438fd --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCPushProfile.h @@ -0,0 +1,82 @@ +// +// RCPushProfile.h +// RongIMLib +// +// Created by 杜立召 on 16/12/26. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCPushProfile : NSObject + +/// 是否显示远程推送的内容 +@property (nonatomic, assign, readonly) BOOL isShowPushContent; + +/// 远程推送的语言 +@property (nonatomic, assign, readonly) RCPushLanguage pushLanguage; + +/// 其他端在线时,手机是否接收远程推送 (多个手机端登录,最后一个会接收) +@property (nonatomic, assign, readonly) BOOL receiveStatus; + +/// 设置是否显示远程推送的内容 +/// +/// - Parameter isShowPushContent: 是否显示推送的具体内容(YES 显示 NO 不显示) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)updateShowPushContentStatus:(BOOL)isShowPushContent + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置推送内容的自然语言 +/// +/// - Parameter language: 通过 SDK 设置的语言环境,语言缩写内容格式为 (ISO-639 Language Code)_(ISO-3166 Country Codes),如:zh_CN。目前融云支持的内置推送语言为 zh_CN、en_US、ar_SA +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushLanguageCode:(NSString *)language + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +/// 设置 Web 端在线时,手机端是否接收推送 +/// +/// - Parameter receiveStatus: 是否接收推送(YES 接收 NO 不接收) +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushReceiveStatus:(BOOL)receiveStatus + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock; + +@end + +@interface RCPushProfile (deprecated) + +/// 远程推送的语言 +@property (nonatomic, assign, readonly) RCPushLauguage pushLauguage __deprecated_msg("Use pushLanguage instead"); + +/// 设置推送内容的自然语言 +/// +/// - Parameter pushLanguage: 设置推送内容的自然语言 +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushLauguage:(RCPushLauguage)pushLauguage + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use setPushLanguageCode:success:error instead"); + + +/// 设置推送内容的自然语言 +/// +/// - Parameter lauguage: 通过 SDK 设置的语言环境,语言缩写内容格式为 (ISO-639 Language Code)_(ISO-3166 Country Codes),如:zh_CN。目前融云支持的内置推送语言为 zh_CN、en_US、ar_SA +/// - Parameter successBlock: 成功回调 +/// - Parameter errorBlock: 失败回调 +- (void)setPushLauguageCode:(NSString *)lauguage + success:(nullable void (^)(void))successBlock + error:(nullable void (^)(RCErrorCode status))errorBlock + __deprecated_msg("Use setPushLanguageCode:success:error instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCQuitGroupConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCQuitGroupConfig.h new file mode 100644 index 0000000..66cd5ae --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCQuitGroupConfig.h @@ -0,0 +1,26 @@ +// +// RCQuitGroupConfig.h +// RongIMLibCore +// +// Created by Lang on 2024/7/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCQuitGroupConfig : NSObject + +/// 是否移除群成员禁言状态,默认为移除 +@property (nonatomic, assign) BOOL removeMuteStatus; + +/// 是否移除群成员白名单,默认为移除 +@property (nonatomic, assign) BOOL removeWhiteList; + +/// 是否移除特别关注群成员,默认为移除 +@property (nonatomic, assign) BOOL removeFollow; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptDefine.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptDefine.h new file mode 100644 index 0000000..583564e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptDefine.h @@ -0,0 +1,23 @@ +// +// RCReadReceiptDefine.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptUser; +@class RCReadReceiptInfoV5; +@class RCReadReceiptUsersResult; +@class RCReadReceiptUsersOption; + +typedef void (^RCMessageReadDetailCompletion)(RCReadReceiptUsersResult *_Nullable result, RCErrorCode code); + +typedef void (^RCReadReceiptInfoListCompletion)(NSArray *_Nullable infoList, RCErrorCode code); + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptInfo.h new file mode 100644 index 0000000..13e2913 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptInfo.h @@ -0,0 +1,26 @@ +// +// RCReadReceiptInfo.h +// RongIMLib +// +// Created by 杜立召 on 16/8/29. +// Copyright © 2016 年 RongCloud. All rights reserved. +// +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCReadReceiptInfo : NSObject + +/// 是否需要回执消息 +@property (nonatomic, assign) BOOL isReceiptRequestMessage; + +/// 是否已经发送回执 +@property (nonatomic, assign) BOOL hasRespond; + +/// 发送回执的用户 ID 列表 +@property (nonatomic, strong, nullable) NSMutableDictionary *userIdList; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptInfoV5.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptInfoV5.h new file mode 100644 index 0000000..575542f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptInfoV5.h @@ -0,0 +1,37 @@ +// +// RCReadReceiptInfoV5.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/15. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationIdentifier; + +/// 消息的阅读回执信息。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptInfoV5 : NSObject + +/// 会话标识。 +@property (nonatomic, strong, readonly) RCConversationIdentifier *identifier; + +/// 消息唯一 ID。 +@property (nonatomic, copy, readonly) NSString *messageUId; + +/// 未读人数。 +@property (nonatomic, assign, readonly) NSInteger unreadCount; + +/// 已读人数。 +@property (nonatomic, assign, readonly) NSInteger readCount; + +/// 总人数。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptMessage.h new file mode 100644 index 0000000..01b00d8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptMessage.h @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCHasReadNotificationMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +#define RCHasReadNotificationMessageTypeIdentifier @"RC:ReadNtf" + +/*! + 已读通知消息类 + + 已读通知消息类,此消息会进行不存储不计入未读消息数。 + + - Remark: 信令类消息 +*/ +@interface RCReadReceiptMessage : RCMessageContent + +/** + * 最后一条消息的发送时间 + */ +@property (nonatomic, assign) long long lastMessageSendTime; + +/** + * 最后一条消息的id(融云全局唯一Id) + */ +@property (nonatomic, copy) NSString *messageUId; + +/** + * 已读消息类型,目前传1 按照会话来更新未读消息状态 + */ +@property (nonatomic, assign) RCReadReceiptMessageType type; + ++ (instancetype)notificationWithLastMessageSendTime:(long long)lastMessageSendTime; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptResponseV5.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptResponseV5.h new file mode 100644 index 0000000..4c658bb --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptResponseV5.h @@ -0,0 +1,41 @@ +// +// RCReadReceiptResponseV5.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/25. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptUser; +@class RCConversationIdentifier; + +/// 消息已读回执响应信息。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptResponseV5 : NSObject + +/// 会话信息。 +@property (nonatomic, strong, readonly) RCConversationIdentifier *identifier; + +/// 消息唯一 ID。 +@property (nonatomic, copy, readonly) NSString *messageUId; + +/// 已读回执的用户。 +@property (nonatomic, copy, readonly) NSArray *users; + +/// 已读人数。 +@property (nonatomic, assign, readonly) NSInteger readCount; + +/// 未读总数。 +@property (nonatomic, assign, readonly) NSInteger unreadCount; + +/// 总人数。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUser.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUser.h new file mode 100644 index 0000000..6dda690 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUser.h @@ -0,0 +1,30 @@ +// +// RCReadReceiptUser.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/15. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 消息已读回执用户信息。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptUser : NSObject + +/// 用户 ID。 +@property (nonatomic, copy, readonly) NSString *userId; + +/// 该用户的阅读时间。0 表示用户没有发送已读回执。 +@property (nonatomic, assign, readonly) long timestamp; + +/// 是否被提醒的用户。 +@property (nonatomic, assign, readonly) BOOL isMentioned; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUsersOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUsersOption.h new file mode 100644 index 0000000..0a0f68a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUsersOption.h @@ -0,0 +1,39 @@ +// +// RCReadReceiptUsersOption.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/15. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 已读回执状态。 +typedef NS_ENUM(NSInteger, RCReadReceiptStatus) { + RCReadReceiptStatusResponse = 0, + RCReadReceiptStatusUnResponse, +}; + +/// 已读回执查询条件。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptUsersOption : NSObject + +/// 分页 Token,为空时,会从第一页开始获取。 +@property (nonatomic, copy, nullable) NSString *pageToken; + +/// 分页数量,范围为 [1, 100]。 +@property (nonatomic, assign) NSInteger pageCount; + +/// 排序,默认按已读时间倒序排序。 +@property (nonatomic, assign) RCOrder order; + +/// 已读回执状态。 +@property (nonatomic, assign) RCReadReceiptStatus readReceiptStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUsersResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUsersResult.h new file mode 100644 index 0000000..79cec5c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReadReceiptUsersResult.h @@ -0,0 +1,31 @@ +// +// RCReadReceiptUsersResult.h +// RongIMLibCore +// +// Created by shuai shao on 2025/4/25. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCReadReceiptUser; + +/// 获取消息已读用户结果。 +/// +/// - Since: 5.20.0 +@interface RCReadReceiptUsersResult : NSObject + +/// 用户数据。 +@property (nonatomic, copy, readonly) NSArray *users; + +/// 分页 Token,如果为空,则没有更多数据。 +@property (nonatomic, copy, readonly, nullable) NSString *pageToken; + +/// 总数。 +@property (nonatomic, assign, readonly) NSInteger totalCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRecallMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRecallMessageOption.h new file mode 100644 index 0000000..9f66e2d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRecallMessageOption.h @@ -0,0 +1,29 @@ +// +// RCRecallMessageOption.h +// RongIMLibCore +// +// Created by chinaspx on 2025/2/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// - Since: 5.16.0 +@interface RCRecallMessageOption : NSObject + +/// 是否删除本地消息,并移除远端消息记录,默认值 NO +@property (nonatomic, assign) BOOL isDelete; + +/// 是否是管理员操作,默认值 NO +/// 用于融云 IMKit 展示需求,或业务其他需求,为透传字段,无实际管理作用 +@property (nonatomic, assign) BOOL isAdmin; + +/// 是否关闭远程推送和本地通知,默认值 NO +/// 设置为 YES 禁用该条消息的远程推送和本地通知 +@property (nonatomic, assign) BOOL disableNotification; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRecallNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRecallNotificationMessage.h new file mode 100644 index 0000000..d48c8ab --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRecallNotificationMessage.h @@ -0,0 +1,48 @@ +// +// RCRecallNotificationMessage.h +// RongIMLib +// +// Created by litao on 16/7/15. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +/// 撤回通知消息的类型名 +#define RCRecallNotificationMessageIdentifier @"RC:RcNtf" + +NS_ASSUME_NONNULL_BEGIN + +/// 撤回通知消息类 +/// 撤回通知消息,此消息会进行本地存储,但不计入未读消息数。 +/// +/// - Remark: 通知类消息 +@interface RCRecallNotificationMessage : RCMessageContent + +/// 发起撤回操作的用户 ID +@property (nonatomic, copy) NSString *operatorId; + +/// 撤回的时间(毫秒) +@property (nonatomic, assign) long long recallTime; + +/// 原消息的消息类型名 +@property (nonatomic, copy) NSString *originalObjectName; + +/// 是否是管理员操作 +@property (nonatomic, assign) BOOL isAdmin; + +/// 是否删除 +@property (nonatomic, assign) BOOL isDelete; + +/// 撤回的文本消息的内容 +@property (nonatomic, copy) NSString *recallContent; + +/// 撤回动作的时间(毫秒) +@property (nonatomic, assign) long long recallActionTime; + +/// 被撤回的原消息 +@property (nonatomic, strong, nullable) RCMessageContent *originalMessageContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReceivedStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReceivedStatusInfo.h new file mode 100644 index 0000000..a5f12ee --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReceivedStatusInfo.h @@ -0,0 +1,55 @@ +// +// RCReceivedStatusInfo.h +// RongIMLibCore +// +// Created by chinaspx on 2023/11/16. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCReceivedStatusInfo : NSObject + +/// 是否已读 +@property (nonatomic, assign, readonly) BOOL isRead; +/// 是否已听,仅用于语音消息 +@property (nonatomic, assign, readonly) BOOL isListened; +/// 是否已下载 +@property (nonatomic, assign, readonly) BOOL isDownloaded; + +/// 该消息已被同时在线或之前登录的其他设备接收。只要任何其他设备先收到该消息,当前设备该状态值就会为 YES。 +@property (nonatomic, assign, readonly) BOOL isRetrieved; + + +/// 默认构造 +/// - Parameter receivedStatus: DB 读取的状态值;传 0 表示 未读。 +/// +/// 构造未读状态,代码如下: +/// RCReceivedStatusInfo *statusInfo = [[RCReceivedStatusInfo alloc] initWithReceivedStatus:0]; +/// +/// 构造已读状态,代码如下: +/// RCReceivedStatusInfo *statusInfo = [[RCReceivedStatusInfo alloc] initWithReceivedStatus:0]; +/// [statusInfo markAsRead]; +/// +- (instancetype)initWithReceivedStatus:(NSUInteger)receivedStatus NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)new NS_UNAVAILABLE; + +/// 标记为已读 +- (void)markAsRead; + +/// 标记为已听 +- (void)markAsListened; + +/// 标记为已下载 +- (void)markAsDownloaded; + +/// 标记为被其他登录的多端收取过的 +- (void)markAsRetrieved; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReferenceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReferenceMessage.h new file mode 100644 index 0000000..cfe44f9 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCReferenceMessage.h @@ -0,0 +1,55 @@ +// +// RCReferenceMessage.h +// RongIMLib +// +// Created by 张改红 on 2020/2/26. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import +/// 引用消息的类型名 +#define RCReferenceMessageTypeIdentifier @"RC:ReferenceMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 被引用消息的状态。 +/// +/// - Since: 5.26.0 +typedef NS_ENUM(NSInteger, RCReferenceMessageStatus) { + /// 默认状态。 + RCReferenceMessageStatusDefault = 0, + /// 引用的消息被修改。 + RCReferenceMessageStatusModified = 1, + /// 引用的消息被撤回。 + RCReferenceMessageStatusRecalled = 2, + /// 引用的消息被删除。 + RCReferenceMessageStatusDeleted = 3, +}; + +/*! +引用消息类 + +引用消息类,此消息会进行存储并计入未读消息数。 + +- Remark: 内容类消息 +*/ +@interface RCReferenceMessage : RCMessageContent +/// 引用文本 +@property (nonatomic, strong) NSString *content; +/// 被引用消息的发送者 ID +@property (nonatomic, strong) NSString *referMsgUserId; + +/// 被引用消息体 +@property (nonatomic, strong, nullable) RCMessageContent *referMsg; + +/// 被引用消息的 messageUId。服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, strong) NSString *referMsgUid; + +/// 被引用消息的状态。 +/// +/// - Since: 5.26.0 +@property (nonatomic, assign) RCReferenceMessageStatus referMsgStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRefreshReferenceMessageParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRefreshReferenceMessageParams.h new file mode 100644 index 0000000..698c768 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRefreshReferenceMessageParams.h @@ -0,0 +1,28 @@ +// +// RCRefreshReferenceMessageParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/7/21. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCConversationIdentifier; + +/// 刷新引用消息的参数对象。 +/// +/// - Since: 5.26.0 +@interface RCRefreshReferenceMessageParams : NSObject + +/// 会话标识。 +@property (nonatomic, strong) RCConversationIdentifier *conversationIdentifier; + +/// 消息唯一 ID 数组,最多 20 个。 +@property (nonatomic, copy) NSArray *messageUIds; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRemoteHistoryMsgOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRemoteHistoryMsgOption.h new file mode 100644 index 0000000..9ada7ea --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRemoteHistoryMsgOption.h @@ -0,0 +1,45 @@ +// +// RCRemoteHistoryMsgOption.h +// RongIMLib +// +// Created by Zhaoqianyu on 2019/7/31. +// Copyright © 2019 RongCloud. All rights reserved. +// + +#import + +/// 拉取顺序 +typedef NS_ENUM(NSUInteger, RCRemoteHistoryOrder) { + /// 降序 + RCRemoteHistoryOrderDesc = 0, + /// 升序 + RCRemoteHistoryOrderAsc, +}; + +NS_ASSUME_NONNULL_BEGIN + +/// RCIMClient - getRemoteHistoryMessage 接口对应的参数选项 +@interface RCRemoteHistoryMsgOption : NSObject + +/// 起始的消息发送时间戳,毫秒 默认 0 +@property (nonatomic, assign) long long recordTime; + +/// 需要获取的消息数量,1 < count <= 100 默认 0 +@property (nonatomic, assign) NSInteger count; + +/// 拉取顺序 +/// +/// RCRemoteHistoryOrderDesc:降序,结合传入的时间戳参数,获取比时间戳小(早)的消息; +/// RCRemoteHistoryOrderAsc:升序,结合传入的时间戳参数,获取比时间戳大的消息。 +/// 默认降序。 +@property (nonatomic, assign) RCRemoteHistoryOrder order; + +/// 是否需要排重 +/// YES: 拉取回来的消息全部返回 +/// NO: 拉取回来的消息只返回本地数据库中不存在的 +/// 默认 NO +@property (nonatomic, assign) BOOL includeLocalExistMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCResumableDownloader.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCResumableDownloader.h new file mode 100644 index 0000000..a99bbc4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCResumableDownloader.h @@ -0,0 +1,86 @@ +// +// RCResumableDownloader.h +// RongEnterpriseApp +// +// Created by zhaobingdong on 2018/5/15. +// Copyright © 2018 年 rongcloud. All rights reserved. +// +/// +/// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] +/// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] +/// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCMessage; + +__deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead") + @protocol RCResumableDownloaderDelegate + +/** + 下载完成后调用 + + - Parameter item: 下载任务实例 + - Parameter path: 下载任务完成后的文件路径 + 通过 itemWithMessageId: 方法获取到写下载项,不会调用该方法 + */ +- (void)downloadItem:(RCDownloadItem *)item filePath:(NSString *)path; + +@end + +__deprecated_msg("Use [RCCoreClient downloadMediaFile:mediaUrl:progress:success:error:cancel:] instead") + /// + /// - Warning: 此类不支持异步拦截下载 [RCDownloadInterceptor onDownloadRequest:withRequestHandler:] + /// - Warning: Since 5.8.0 开始支持同步拦截下载 [RCDownloadInterceptor onDownloadRequest:] + /// + @interface RCResumableDownloader : NSObject + +/** + 创建 RCResumableDownloader 实例 + + - Returns: 返回 RCResumableDownloader 实例 + */ ++ (instancetype)defaultInstance; + +/** + 销毁 RCResumableDownloader 实例 + 切换用户时调用,退出登录时调用。 + */ ++ (void)free; + +@property (nonatomic, weak) id delegate; + +/** + 根据消息id 获取 RCDownloadItem 实例 + + - Parameter msgId: 消息id + - Returns: 返回 RCDownloadItem 实例 + 仅支持文件消息,文件消息下载完成后,会自动更新消息的 content + */ +- (RCDownloadItem *)itemWithMessageId:(long)msgId; + +/** + 根据开发者指定的标识符来获取 RCDownloadItem 实例 + + - Parameter identify: 标识符 + - Parameter url: 下载地址 + - Parameter name: 文件名 + - Returns: 返回 RCDownloadItem 的实例 + 开发者需要保证该标识符 identify 的唯一性,确保每一个存活的下载任务的标识符是不同的 + 实际下载后文件名可能会与不一致,如果存储下载文件目录下已有该文件,会在文件名后添加(1)。 + 例如 a.txt 最终下载的文件名会变为 a(1).txt 或者 a(2).txt + */ +- (RCDownloadItem *)itemWithIdentify:(NSString *)identify url:(NSString *)url fileName:(NSString *)name; + +@end + +__deprecated_msg("Use RCResumableDownloaderDelegate instead") + @protocol RCResumeableDownloaderDelegate +@end + +typedef RCResumableDownloader RCResumeableDownloader __deprecated_msg("Use RCResumableDownloader instead"); + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRichContentMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRichContentMessage.h new file mode 100644 index 0000000..baab05b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCRichContentMessage.h @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCRichContentMessage.h +// Created by Gang Li on 10/17/14. + +#import "RCMessageContent.h" +#import + +/*! + 图文消息的类型名 + */ +#define RCRichContentMessageTypeIdentifier @"RC:ImgTextMsg" + +NS_ASSUME_NONNULL_BEGIN + +/*! + 图文消息类 + + 图文消息类,此消息会进行存储并计入未读消息数。 + + - Remark: 内容类消息 + */ +@interface RCRichContentMessage : RCMessageContent + +/*! + 图文消息的标题 + */ +@property (nonatomic, copy) NSString *title; + +/*! + 图文消息的内容摘要 + */ +@property (nonatomic, copy) NSString *digest; + +/*! + 图文消息图片 URL + */ +@property (nonatomic, copy) NSString *imageURL; + +/*! + 图文消息中包含的需要跳转到的URL + */ +@property (nonatomic, copy, nullable) NSString *url; + +/*! + 初始化图文消息 + + - Parameter title: 图文消息的标题 + - Parameter digest: 图文消息的内容摘要 + - Parameter imageURL: 图文消息的图片URL + - Parameter extra: 图文消息的扩展信息 + - Returns: 图文消息对象 + */ ++ (instancetype)messageWithTitle:(NSString *)title + digest:(NSString *)digest + imageURL:(NSString *)imageURL + extra:(nullable NSString *)extra; + +/*! + 初始化图文消息 + + - Parameter title: 图文消息的标题 + - Parameter digest: 图文消息的内容摘要 + - Parameter imageURL: 图文消息的图片URL + - Parameter url: 图文消息中包含的需要跳转到的URL + - Parameter extra: 图文消息的扩展信息 + - Returns: 图文消息对象 + */ ++ (instancetype)messageWithTitle:(NSString *)title + digest:(NSString *)digest + imageURL:(NSString *)imageURL + url:(nullable NSString *)url + extra:(nullable NSString *)extra; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSearchConversationResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSearchConversationResult.h new file mode 100644 index 0000000..6f76b25 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSearchConversationResult.h @@ -0,0 +1,23 @@ +// +// RCSearchConversationResult.h +// RongIMLib +// +// Created by 杜立召 on 16/9/29. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import "RCConversation.h" +#import + +NS_ASSUME_NONNULL_BEGIN +/// 搜索的会话结果 +@interface RCSearchConversationResult : NSObject + +/// 匹配的会话对象 +@property (nonatomic, strong) RCConversation *conversation; + +/// 会话匹配的消息条数 +@property (nonatomic, assign) int matchCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSearchMessageParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSearchMessageParams.h new file mode 100644 index 0000000..821f351 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSearchMessageParams.h @@ -0,0 +1,119 @@ +// +// RCSearchMessageParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/10. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 时间范围。 +/// +/// - Since: 5.22.0 +@interface RCTimeRange : NSObject + +/// 查询的开始时间戳,单位毫秒,默认为 0,范围为 [0, endTime)。 +@property (nonatomic, assign) NSInteger startTime; + +/// 查询的结束时间戳,单位毫秒,范围为 (startTime, Now()]。 +/// 如果未赋值,或者赋值为 0,使用当前时间。 +@property (nonatomic, assign) NSInteger endTime; + +/// 初始化接口。 +/// - Parameters: +/// - startTime: 开始时间。 +/// - endTime: 结束时间。 +- (instancetype)initWithStartTime:(NSInteger)startTime endTime:(NSInteger)endTime; + +@end + +/// 会话过滤。 +/// +/// - Since: 5.22.0 +@interface RCConversationFilter : NSObject + +/// 会话类型列表,过滤会话的类型。 +@property (nonatomic, copy, nullable) NSArray *conversationTypes; + +/// 会话 ID 列表,过滤会话的 ID。 +@property (nonatomic, copy, nullable) NSArray *targetIds; + +/// 频道 ID 列表,过滤频道的 ID。 +@property (nonatomic, copy, nullable) NSArray *channelIds; + +/// 初始化方法。 +/// - Parameters: +/// - conversationTypes: 会话类型数组。 +/// - targetIds: 会话 ID 数组。 +/// - channelIds: 频道 ID 数组。 +- (instancetype)initWithConversationTypes:(nullable NSArray *)conversationTypes + targetIds:(nullable NSArray *)targetIds + channelIds:(nullable NSArray *)channelIds; + +@end + +/// 消息过滤。 +/// +/// - Since: 5.22.0 +@interface RCMessageFilter : NSObject + +/// 消息发送者 ID 列表,过滤发送者 ID。 +@property (nonatomic, copy, nullable) NSArray *senderIds; + +/// 消息类型列表,过滤消息类型。 +@property (nonatomic, copy, nullable) NSArray *objectNames; + +/// 初始化方法。 +/// - Parameters: +/// - conversationTypes: 会话类型数组。 +/// - senderIds: 消息发送者 ID 数组。 +/// - objectNames: 消息类型名字数组。 +- (instancetype)initWithSenderIds:(nullable NSArray *)senderIds + objectNames:(nullable NSArray *)objectNames; + +@end + +/// 本地消息搜索参数。 +/// +/// ``` +/// 查询时间轴: +/// 0--------startTime--------------------endTime---------Now() +/// 正序(order == RCOrderAscending)查询: +/// 0--------startTime|---->--------------endTime---------Now() +/// 倒序(order == RCOrderDescending)查询个数: +/// 0--------startTime--------------<----|endTime---------Now() +/// 倒序有位移 (offset) 查询: +/// 0--------startTime----------<----|----endTime---------Now() +/// ``` +/// +/// - Since: 5.22.0 +@interface RCSearchMessageParams : NSObject + +/// 搜索关键词。 +@property (nonatomic, copy, nullable) NSString *keyword; + +/// 查询个数,范围为 (0, 100]。 +@property (nonatomic, assign) NSInteger limit; + +/// 查询位移,默认为 0。 +@property (nonatomic, assign) NSInteger offset; + +/// 排序方式,默认为 `RCOrderDescending`。 +@property (nonatomic, assign) RCOrder order; + +/// 查询的时间范围。 +@property (nonatomic, strong, nullable) RCTimeRange *timeRange; + +/// 查询的会话条件。 +@property (nonatomic, strong, nullable) RCConversationFilter *conversationFilter; + +/// 查询的消息条件。 +@property (nonatomic, strong, nullable) RCMessageFilter *messageFilter; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSendMessageOption.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSendMessageOption.h new file mode 100644 index 0000000..57abd2a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSendMessageOption.h @@ -0,0 +1,23 @@ +// +// RCSendMessageOption.h +// RongIMLib +// +// Created by liyan on 2019/4/29. +// Copyright © 2019 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCSendMessageOption : NSObject + +/// 发送的消息,是否走 VOIP 推送 +/// +/// 该属性主要用于音视频通话场景。 +/// - Warning: 由于苹果审核机制,需要区分国内和国外,请务必认真阅读文档:https://doc.rongcloud.cn/call/IOS/5.X/callkit/push +@property (nonatomic, assign) BOOL isVoIPPush; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSightMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSightMessage.h new file mode 100644 index 0000000..495f2a5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSightMessage.h @@ -0,0 +1,51 @@ +// +// RCSightMessage.h +// RongIMLib +// +// Created by LiFei on 2016/12/1. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import +#import + +/// 小视频消息的类型名 +#define RCSightMessageTypeIdentifier @"RC:SightMsg" + +NS_ASSUME_NONNULL_BEGIN + +@class AVAsset; + +/// 小视频消息类 +/// +/// 小视频消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +/// +@interface RCSightMessage : RCMediaMessageContent + +/// 网络 URL 地址 +@property (nonatomic, readonly, nullable) NSString *sightUrl; + +/// 视频时长,以秒为单位 +@property (nonatomic, assign, readonly) NSUInteger duration; + +/// 文件大小 +@property (nonatomic, assign, readonly) long long size; + +/// 缩略图 +@property (nonatomic, strong, readonly, nullable) UIImage *thumbnailImage; + + +/// 创建小视频消息的便利构造方法 +/// +/// - Parameter path: 视频文件本地路径 +/// - Parameter image: 视频首帧缩略图 +/// - Parameter duration: 视频时长,以秒为单位 +/// - Returns: 视频消息实例变量 +/// ++ (instancetype)messageWithLocalPath:(NSString *)path thumbnail:(UIImage *)image duration:(NSUInteger)duration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSpeechToTextDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSpeechToTextDelegate.h new file mode 100644 index 0000000..f1f7cc1 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSpeechToTextDelegate.h @@ -0,0 +1,32 @@ +// +// RCSpeechToTextDelegate.h +// RongIMLibCore +// +// Created by shaoshuai on 2025/5/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCSpeechToTextInfo; + +@protocol RCSpeechToTextDelegate + +/// 语音转文本完成。 +/// +/// - Parameters: +/// - info: 语音转文本信息。 +/// - messageUId: 消息对应的唯一 ID。 +/// - code: 错误码。 +/// +/// - Since: 5.22.0 +- (void)speechToTextDidComplete:(RCSpeechToTextInfo* _Nullable)info + messageUId:(NSString*)messageUId + code:(RCErrorCode)code; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSpeechToTextInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSpeechToTextInfo.h new file mode 100644 index 0000000..99be305 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSpeechToTextInfo.h @@ -0,0 +1,43 @@ +// +// RCSpeechToTextInfo.h +// RongIMLibCore +// +// Created by RobinCui on 2025/5/27. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 转换状态。 +/// +/// - Since: 5.22.0 +typedef NS_ENUM(NSInteger, RCSpeechToTextStatus) { + /// 未转换。 + RCSpeechToTextStatusNotConverted = 0, + /// 转换中。 + RCSpeechToTextStatusConverting = 1, + /// 转换成功。 + RCSpeechToTextStatusSuccess = 2, + /// 转换失败。 + RCSpeechToTextStatusFailed = 3, +}; + +/// 语音转文本信息。 +/// +/// - Since: 5.22.0 +@interface RCSpeechToTextInfo : NSObject + +/// 转换状态。 +@property (nonatomic, assign) RCSpeechToTextStatus status; + +/// 转换的文本内容。 +@property (nonatomic, copy, nullable) NSString *text; + +/// 是否可见,默认 NO。 +@property (nonatomic, assign) BOOL isVisible; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStatusDefine.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStatusDefine.h new file mode 100644 index 0000000..42c7ffc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStatusDefine.h @@ -0,0 +1,545 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCStatusDefine.h +// Created by Heq.Shinoda on 14-4-21. + +#import +#import +#ifndef __RCStatusDefine +#define __RCStatusDefine + +#pragma mark - 错误码相关 + +typedef RCErrorCode RCConnectErrorCode; + +typedef NS_ENUM(NSInteger, RCDBErrorCode) { + RCDBOpenSuccess = 0, + RCDBOpenFailed = 33002, +}; + +#pragma mark - 连接状态 + +#pragma mark RCConnectionStatus - 网络连接状态码 +/// 网络连接状态码 +typedef NS_ENUM(NSInteger, RCConnectionStatus) { + /// 未知状态 + /// 建立连接中出现异常的临时状态,SDK 会做好自动重连,开发者无须处理。 + ConnectionStatus_UNKNOWN = -1, + + /// 连接成功 + ConnectionStatus_Connected = 0, + + /// 连接过程中,当前设备网络不可用 + /// 当网络恢复可用时,SDK 会做好自动重连,开发者无须处理。 + ConnectionStatus_NETWORK_UNAVAILABLE = 1, + + /// 当前用户在其他设备上登录,此设备被踢下线 + ConnectionStatus_KICKED_OFFLINE_BY_OTHER_CLIENT = 6, + + /// 连接中 + ConnectionStatus_Connecting = 10, + + /// 连接失败或未连接 + ConnectionStatus_Unconnected = 11, + + /// 已登出 + ConnectionStatus_SignOut = 12, + + /// 连接暂时挂起(多是由于网络问题导致),SDK 会在合适时机进行自动重连 + ConnectionStatus_Suspend = 13, + + /// 自动连接超时,SDK 将不会继续连接,用户需要做超时处理,再自行调用 connectWithToken 接口进行连接 + ConnectionStatus_Timeout = 14, + + /// Token 无效 + /// Token 无效一般有两种原因。一是 token 错误,请您检查客户端初始化使用的 AppKey 和您服务器获取 token 使用的 AppKey + /// 是否一致;二是 token 过期,是因为您在开发者后台设置了 token 过期时间,您需要请求您的服务器重新获取 token + /// 并再次用新的 token 建立连接。 + ConnectionStatus_TOKEN_INCORRECT = 15, + + /// 与服务器的连接已断开,用户被封禁 + ConnectionStatus_DISCONN_EXCEPTION = 16, + + /// proxy 服务不可用,SDK 将不会继续连接,用户需要检查 proxy 是否可用,再自行调用 connectWithToken 接口进行连接 + ConnectionStatus_PROXY_UNAVAILABLE = 17, + + /// 用户账号已销户,不再进行连接 + ConnectionStatus_USER_ABANDON = 19 +}; + +#pragma mark RCNetworkStatus - 当前所处的网络 +/// 当前所处的网络 +typedef NS_ENUM(NSUInteger, RCNetworkStatus) { + /// 当前网络不可用 + RC_NotReachable = 0, + + /// 当前处于 WiFi 网络 + RC_ReachableViaWiFi = 1, + + /// 移动网络 + RC_ReachableViaWWAN = 2, +}; + +#pragma mark RCSDKRunningMode - SDK当前所处的状态 + +/// SDK 当前所处的状态 +typedef NS_ENUM(NSUInteger, RCSDKRunningMode) { + /// 后台运行状态 + RCSDKRunningMode_Background = 0, + + /// 前台运行状态 + RCSDKRunningMode_Foreground = 1 +}; + +#pragma mark - 会话相关 + +#pragma mark RCConversationType - 会话类型 + +/// 会话类型 +typedef NS_ENUM(NSUInteger, RCConversationType) { + /// 单聊 + ConversationType_PRIVATE = 1, + + /// 讨论组 + ConversationType_DISCUSSION = 2, + + /// 群组 + ConversationType_GROUP = 3, + + /// 聊天室 + ConversationType_CHATROOM = 4, + + /// 客服 + ConversationType_CUSTOMERSERVICE = 5, + + /// 系统会话 + ConversationType_SYSTEM = 6, + + /// 应用内公众服务会话 + /// + /// 客服 2.0 使用应用内公众服务会话(ConversationType_APPSERVICE)的方式实现。 + /// 即客服 2.0 会话是其中一个应用内公众服务会话,这种方式我们目前不推荐, + /// 请尽快升级到新客服,升级方法请参考官网的客服文档。文档链接 + /// https://docs.rongcloud.cn/services/public/app/prepare/ + ConversationType_APPSERVICE = 7, + + /// 跨应用公众服务会话 + ConversationType_PUBLICSERVICE = 8, + + /// 推送服务会话 + ConversationType_PUSHSERVICE = 9, + + /// 超级群 + ConversationType_ULTRAGROUP = 10, + + /// 加密会话(仅对部分私有云用户开放,公有云用户不适用) + ConversationType_Encrypted = 11, + /// RTC 会话 + ConversationType_RTC = 12, + + /// 无效类型 + ConversationType_INVALID + +}; + +#pragma mark RCConversationNotificationStatus - 会话提醒状态 +/// 会话提醒状态 +typedef NS_ENUM(NSUInteger, RCConversationNotificationStatus) { + /// 免打扰 + DO_NOT_DISTURB = 0, + + /// 新消息提醒 + NOTIFY = 1, +}; + +#pragma mark RCReadReceiptMessageType - 消息回执 +/// 已读状态消息类型 +typedef NS_ENUM(NSUInteger, RCReadReceiptMessageType) { + /// 根据会话来更新未读消息状态 + RC_ReadReceipt_Conversation = 1, +}; + +#pragma mark - 消息相关 + +#pragma mark RCMessagePersistent - 消息的存储策略 +/// 消息的存储策略 +typedef NS_ENUM(NSUInteger, RCMessagePersistent) { + /// 在本地不存储,不计入未读数 + MessagePersistent_NONE = 0, + + /// 在本地只存储,但不计入未读数 + MessagePersistent_ISPERSISTED = 1, + + /// 在本地进行存储并计入未读数 + MessagePersistent_ISCOUNTED = 3, + + /// 在本地不存储,不计入未读数,并且如果对方不在线,服务器会直接丢弃该消息,对方如果之后再上线也不会再收到此消息。 + /// 一般用于发送输入状态之类的消息。 + MessagePersistent_STATUS = 16 +}; + +#pragma mark RCMessageDirection - 消息的方向 +/// 消息的方向 +typedef NS_ENUM(NSUInteger, RCMessageDirection) { + /// 发送 + MessageDirection_SEND = 1, + + /// 接收 + MessageDirection_RECEIVE = 2 +}; + +#pragma mark RCSentStatus - 消息的发送状态 +/// 消息的发送状态 +typedef NS_ENUM(NSUInteger, RCSentStatus) { + /// 发送中 + SentStatus_SENDING = 10, + + /// 发送失败 + SentStatus_FAILED = 20, + + /// 已发送成功 + SentStatus_SENT = 30, + + /// 对方已接收 + SentStatus_RECEIVED = 40, + + /// 对方已阅读 + SentStatus_READ = 50, + + /// 对方已销毁 + SentStatus_DESTROYED = 60, + + /// 发送已取消 + SentStatus_CANCELED = 70, + + /// 无效类型 + SentStatus_INVALID +}; + +#pragma mark RCReceivedStatus - 消息的接收状态 +/// 消息的接收状态 +typedef NS_ENUM(NSUInteger, RCReceivedStatus) { + /// 未读 + ReceivedStatus_UNREAD = 0, + + /// 已读 + ReceivedStatus_READ = 1, + + /// 已听 + /// 仅用于语音消息 + ReceivedStatus_LISTENED = 2, + + /// 已下载 + ReceivedStatus_DOWNLOADED = 4, + + /// 该消息已被同时在线或之前登录的其他设备接收。只要任何其他设备先收到该消息,当前设备就会有该状态值。 + ReceivedStatus_RETRIEVED = 8, + + /// 该消息是被多端同时收取的。(即其他端正同时登录,一条消息被同时发往多端。客户可以通过这个状态值更新自己的某些 UI + /// 状态)。 + ReceivedStatus_MULTIPLERECEIVE = 16, + +} __deprecated_msg("Use RCReceivedStatusInfo instead"); + +#pragma mark RCMediaType - 消息内容中多媒体文件的类型 +/// 消息内容中多媒体文件的类型 +typedef NS_ENUM(NSUInteger, RCMediaType) { + /// 图片 + MediaType_IMAGE = 1, + + /// 语音 + MediaType_AUDIO = 2, + + /// 视频 + MediaType_VIDEO = 3, + + /// 其他文件 + MediaType_FILE = 4, + + /// 小视频 + MediaType_SIGHT = 5, + + /// 合并转发 + MediaType_HTML = 6 +}; + +#pragma mark RCTypingStatus - 输入状态 +typedef NS_ENUM(NSUInteger, RCUltraGroupTypingStatus) { + /// 正在输入文本 + RCUltraGroupTypingStatusText = 0, +}; + +#pragma mark RCMediaType - 消息中@提醒的类型 +/// @提醒的类型 +typedef NS_ENUM(NSUInteger, RCMentionedType) { + /// @ 所有人 + RC_Mentioned_All = 1, + + /// @ 部分指定用户 + RC_Mentioned_Users = 2, +}; + +#pragma mark - 消息内容审核配置 + +typedef NS_ENUM(NSInteger, RCMessageAuditType) { + /// 不需要审核 + RCMessageAuditTypeDisallow = 0, + + /// 需要审核 + RCMessageAuditTypeAllow = 1, +}; + + +/// 语音消息采样率 +typedef NS_ENUM(NSInteger, RCSampleRate) { + /// 8KHz + RCSample_Rate_8000 = 1, + /// 16KHz + RCSample_Rate_16000 = 2, +}; + +/// 语音消息类型 +typedef NS_ENUM(NSInteger, RCVoiceMessageType) { + /// 普通音质语音消息 + RCVoiceMessageTypeOrdinary = 1, + /// 高音质语音消息 + RCVoiceMessageTypeHighQuality = 2, +}; + +#pragma mark - 公众服务相关 + +#pragma mark RCPublicServiceType - 公众服务账号类型 + +/// 公众服务账号类型 +typedef NS_ENUM(NSUInteger, RCPublicServiceType) { + /// 应用内公众服务账号 + RC_APP_PUBLIC_SERVICE = 7, + + /// 跨应用公众服务账号 + RC_PUBLIC_SERVICE = 8, +}; + +#pragma mark RCSearchType - 公众服务查找匹配方式 +/// 公众服务查找匹配方式 +typedef NS_ENUM(NSUInteger, RCSearchType) { + /// 精确匹配 + RC_SEARCH_TYPE_EXACT = 0, + + /// 模糊匹配 + RC_SEARCH_TYPE_FUZZY = 1, + + /// 无效类型 + RCSearchType_INVALID +}; + +#pragma mark - RCLogLevel - 日志级别 +/// 日志级别 +typedef NS_ENUM(NSUInteger, RCLogLevel) { + + /// 不输出任何日志 + RC_Log_Level_None = 0, + + /// 只输出错误的日志 + RC_Log_Level_Error = 1, + + /// 输出错误和警告的日志 + RC_Log_Level_Warn = 2, + + /// 输出错误、警告和一般的日志 + RC_Log_Level_Info = 3, + + /// 输出输出错误、警告和一般的日志以及 debug 日志 + RC_Log_Level_Debug = 4, + + /// 输出所有日志 + RC_Log_Level_Verbose = 5, +}; + +#pragma mark - RCTimestampOrder - 历史消息查询顺序 + +/// 日志级别 +typedef NS_ENUM(NSUInteger, RCTimestampOrder) { + /// 降序,按照时间戳从大到小 + RC_Timestamp_Desc = 0, + + /// 升序,按照时间戳从小到大 + RC_Timestamp_Asc = 1, +}; + +#pragma mark - RCPlatform - 在线平台 + +/// 在线平台 +typedef NS_ENUM(NSUInteger, RCPlatform) { + /// 其它平台 + RCPlatform_Other = 0, + + /// iOS + RCPlatform_iOS = 1, + + /// Android + RCPlatform_Android = 2, + + /// Web + RCPlatform_Web = 3, + + /// PC + RCPlatform_PC = 4, + + /// 小程序 + RCPlatform_MiniWeb = 5, + + /// 鸿蒙 + RCPlatform_HarmonyOS = 6, +}; + +#pragma mark - RCPushLanguageType - push 语言设置 + +/// push 语言设置 +typedef NS_ENUM(NSUInteger, RCPushLanguage) { + /// 英文 + RCPushLanguage_EN_US = 1, + /// 中文 + RCPushLanguage_ZH_CN = 2, + /// 阿拉伯文 + RCPushLanguage_AR_SA +}; + +/// push 语言设置 +typedef NS_ENUM(NSUInteger, RCPushLauguage) { + /// 英文 + RCPushLauguage_EN_US = 1, + /// 中文 + RCPushLauguage_ZH_CN = 2, + /// 阿拉伯文 + RCPushLauguage_AR_SA +} __deprecated_msg("Use RCPushLanguage instead"); + +#pragma mark - RCMessageBlockType - 消息被拦截类型 + +/// 消息被拦截类型 +typedef NS_ENUM(NSUInteger, RCMessageBlockType) { + /// 全局敏感词:命中了融云内置的全局敏感词 + RCMessageBlockTypeGlobal = 1, + + /// 自定义敏感词拦截:命中了客户在融云自定义的敏感词 + RCMessageBlockTypeCustom = 2, + + /// 第三方审核拦截:命中了第三方(数美)或消息回调服务决定不下发的状态 + RCMessageBlockTypeThirdParty = 3, +}; + +typedef NS_ENUM(NSInteger, RCPushNotificationLevel) { + /// 全部消息通知(接收全部消息通知 -- 显示指定关闭免打扰功能) + /// 超级群设置全部消息通知时 + /// @ 消息一定收到推送通知 + /// 普通消息的推送频率受到超级群服务端默认推送频率设置的影响,无法做到所有普通消息都通知 + RCPushNotificationLevelAllMessage = -1, + /// 未设置(向上查询群或者 APP 级别设置),存量数据中 0 表示未设置 + RCPushNotificationLevelDefault = 0, + /// 群聊,超级群 @所有人 或者 @成员列表有自己 时通知;单聊代表消息不通知 + RCPushNotificationLevelMention = 1, + /// 群聊,超级群 @成员列表有自己时通知,@所有人不通知;单聊代表消息不通知 + RCPushNotificationLevelMentionUsers = 2, + /// 群聊,超级群 @所有人通知,其他情况都不通知;单聊代表消息不通知 + RCPushNotificationLevelMentionAll = 4, + /// 消息通知被屏蔽,即不接收消息通知 + RCPushNotificationLevelBlocked = 5, +}; + +typedef NS_ENUM(NSInteger, RCPushNotificationQuietHoursLevel) { + /// 未设置(向上查询群或者 APP 级别设置) + RCPushNotificationQuietHoursLevelDefault = 0, + /// 群聊超级群仅 @ 消息通知,单聊代表消息不通知 + RCPushNotificationQuietHoursLevelMention = 1, + /// 消息通知被屏蔽,即不接收消息通知 + RCPushNotificationQuietHoursLevelBlocked = 5, +}; + +typedef NS_ENUM(NSInteger, RCUltraGroupChannelType) { + /// 超级群公有频道 + RCUltraGroupChannelTypePublic = 0, + /// 超级群私有频道 + RCUltraGroupChannelTypePrivate = 1 +}; + + +typedef NS_ENUM(NSInteger, RCUltraGroupChannelChangeType) { + /// 超级群公有频道变成了私有频道 + RCUltraGroupChannelChangeTypePublicToPrivate = 2, + /// 超级群私有频道变成了共有频道 + RCUltraGroupChannelChangeTypePrivateToPublic = 3, + /// 超级群公有频道变成了私有频道,但是当前用户不再该私有频道中 + RCUltraGroupChannelChangeTypePublicToPrivateUserNotIn = 6 +}; + +/// 排序。 +/// +/// - Since: 5.20.0 +typedef NS_ENUM(NSInteger, RCOrder) { RCOrderDescending = 0, RCOrderAscending }; + +@class RCConversation; +typedef void (^RCConversationListCompletion)(NSArray *conversations, RCErrorCode code); + +@class RCMessage; +typedef void (^RCMessageListCompletion)(NSArray *messages, RCErrorCode code); +typedef void (^RCSearchMessageListCompletion)(NSArray *messages, NSUInteger matchCount, RCErrorCode code); + +#pragma mark - 翻译 + +/// 翻译类型。 +/// +/// - Since: 5.24.0 +typedef NS_ENUM(NSInteger, RCTranslateMode) { + /// 高速翻译,主要采用机器翻译。 + RCTranslateModeMechanical = 0, + /// 智能翻译。 + RCTranslateModeIntelligent = 1 +}; + +/// 会话翻译方式。 +/// +/// - Since: 5.24.0 +typedef NS_ENUM(NSInteger, RCTranslateStrategy) { + /// 默认,会跟随用户级别的自动翻译方式。 + RCTranslateStrategyDefault = 0, + /// 自动翻译。 + RCTranslateStrategyAutoOn = 1, + /// 手动翻译。 + RCTranslateStrategyAutoOff = 2, +}; + +@class RCTranslateItem; + +/** + 消息已读回执功能版本 + */ +typedef NS_ENUM(NSInteger, RCMessageReadReceiptVersion) { + /** + 消息已读回执功能版本1 + */ + RCMessageReadReceiptVersion1 = 0, + /** + 消息已读回执功能版本2 + */ + RCMessageReadReceiptVersion2 = 1, + /** + 消息已读回执功能版本4 + */ + RCMessageReadReceiptVersion4 = 3, + /** + 消息读回执功能版本5 + */ + RCMessageReadReceiptVersion5 = 4, +}; + + + + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStatusMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStatusMessage.h new file mode 100644 index 0000000..85e8ebe --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStatusMessage.h @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCStatusMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import +/** + 状态消息的抽象基类,表示某种状态,不会存入消息历史记录。 + 此类消息不保证一定到达接收方(但只是理论上存在丢失的可能),但是速度最快,所以通常用来传递状态信息。 +*/ +@interface RCStatusMessage : RCMessageContent + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStreamMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStreamMessage.h new file mode 100644 index 0000000..b4da108 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStreamMessage.h @@ -0,0 +1,57 @@ +// +// RCStreamMessage.h +// RongIMLibCore +// +// Created by shuai shao on 2025/2/19. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 流式消息的类型名。 +#define RCStreamMessageTypeIdentifier @"RC:StreamMsg" + +/// 流式消息扩展中的摘要 Key。 +#define RCStreamMessageExpansionSummeryKey @"RC_Ext_StreamMsgSummary" + +@interface RCReferenceInfo : NSObject + +/// 被引用消息的发送者 ID。 +@property (nonatomic, strong, readonly) NSString *senderId; + +/// 被引用消息的 messageUId。服务器消息唯一 ID(在同一个 AppKey 下全局唯一) +@property (nonatomic, strong, readonly) NSString *messageUId; + +/// 被引用消息的消息体。 +@property (nonatomic, strong, readonly, nullable) RCMessageContent *content; + +@end + +@interface RCStreamMessage : RCMessageContent + +/// 流式消息内容。 +@property (nonatomic, copy, readonly) NSString *content; + +/// 流式消息的文本格式。 +@property (nonatomic, copy, readonly) NSString *type; + +/// 流式消息内容是否结束生成。 +@property (nonatomic, assign, readonly) BOOL isComplete; + +/// 流式消息内容是异常结束的原因,为业务服务器下发。 +@property (nonatomic, assign, readonly) NSInteger completeReason; + +/// 流式消息内容是异常结束的原因,为融云服务器下发,0 为正常结束。 +@property (nonatomic, assign, readonly) NSInteger stopReason; + +/// 客户端是否完成流拉取标识。 +@property (nonatomic, assign, readonly) BOOL isSync; + +/// 流式消息引用的消息信息。 +@property (nonatomic, strong, readonly, nullable) RCReferenceInfo *referMsg; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStreamMessageRequestParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStreamMessageRequestParams.h new file mode 100644 index 0000000..91973e5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCStreamMessageRequestParams.h @@ -0,0 +1,28 @@ +// +// RCStreamMessageRequest.h +// RongIMLibCore +// +// Created by shuai shao on 2025/2/20. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 流式消息一次片段的信息。 +@interface RCStreamMessageChunkInfo : NSObject + +/// 流消息增量数据。 +@property (nonatomic, copy) NSString *content; + +@end + +@interface RCStreamMessageRequestParams : NSObject + +/// 消息唯一 ID +@property (nonatomic, copy) NSString *messageUId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEvent.h new file mode 100644 index 0000000..7779cc2 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEvent.h @@ -0,0 +1,57 @@ +// +// RCSubscribeEvent.h +// RongIMLibCore +// +// Created by chinaspx on 2024/2/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 订阅类型枚举 +typedef NS_ENUM(NSInteger, RCSubscribeType) { + /// 订阅在线状态 + RCSubscribeTypeOnlineStatus = 1, + /// 订阅用户信息变更 + /// + /// - Since: 5.10.0 + RCSubscribeTypeUserProfile = 2, + + /// 好友在线状态(好友无需主动订阅) + /// - Since: + RCSubscribeTypeFriendOnlineStatus = 3, + + /// 好友用户信息变更(好友无需主动订阅) + /// - Since: + RCSubscribeTypeFriendUserProfile = 4, + + /// 无效枚举值,业务上不用 + RCSubscribeTypeInvalid +}; + +typedef NS_ENUM(NSInteger, RCSubscribeOperationType) { + // 订阅 + RCSubscribeOperationTypeSubscribe = 0, + // 取消订阅 + RCSubscribeOperationTypeUnSubscribe = 1 +}; + +/// 订阅的事件 +@interface RCSubscribeEvent : NSObject +/// 订阅用户 ID +@property (nonatomic, copy) NSString *userId; +/// 订阅类型 +@property (nonatomic, assign) RCSubscribeType subscribeType; +/// 订阅操作类型 +@property (nonatomic, assign) RCSubscribeOperationType operationType; +/// 订阅时间,unix 毫秒 +@property (nonatomic, assign) long long subscribeTime; +/// 订阅有效时长,单位秒 [60s ~ 30 天] +@property (nonatomic, assign) NSInteger expiry; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEventDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEventDelegate.h new file mode 100644 index 0000000..4cd80ac --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEventDelegate.h @@ -0,0 +1,53 @@ +// +// RCSubscribeEventDelegate.h +// RongIMLibCore +// +// Created by chinaspx on 2024/2/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#ifndef RCSubscribeEventDelegate_h +#define RCSubscribeEventDelegate_h + +NS_ASSUME_NONNULL_BEGIN + +@class RCSubscribeEvent, RCSubscribeInfoEvent; +@protocol RCSubscribeEventDelegate +@optional +/// 当订阅事件发生变化时调用此方法。 +/// 功能说明:当任何订阅的事件发生变化时,此方法将被触发。 +/// 可以通过实现此方法来处理事件的变化,例如更新用户界面或处理新的数据。 +/// 通常,该方法在后台线程中被调用,因此更新 UI 时需要切换到主线程。 +/// +/// - Parameter subscribeEvents: 订阅事件的列表,包含所有发生变化的事件。 +/// - Remark: 订阅过期没有通知,开发者需自行关注过期时间 +/// - Since: 5.8.1 +- (void)onEventChange:(NSArray *)subscribeEvents; + + +/// 订阅数据同步完成。 +/// 该方法在订阅数据成功同步到设备或系统后调用,用于执行后续处理。 +/// +/// - Since: 5.8.1 +- (void)onSubscriptionSyncCompleted __deprecated_msg("Use onSubscriptionSyncCompleted: instead"); + + +/// 订阅数据同步完成。 +/// 该方法在订阅数据成功同步到设备或系统后调用,用于执行后续处理。 +/// - Parameter type: 订阅事件的类型 +/// - Since: 5.10.0 +- (void)onSubscriptionSyncCompleted:(RCSubscribeType)type; + + +/// 当用户在其他设备上的订阅信息发生变更时调用此方法。 +/// 这可以用于更新当前设备上的用户状态,确保订阅信息的一致性。 +/// +/// - Parameter subscribeEvents: 订阅事件的列表。 +/// - Since: 5.8.1 +- (void)onSubscriptionChangedOnOtherDevices:(NSArray *)subscribeEvents; + +@end + +NS_ASSUME_NONNULL_END + +#endif /* RCSubscribeEventDelegate_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEventRequest.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEventRequest.h new file mode 100644 index 0000000..a47d43d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeEventRequest.h @@ -0,0 +1,24 @@ +// +// RCSubscribeEventRequest.h +// RongIMLibCore +// +// Created by chinaspx on 2024/2/22. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCSubscribeEventRequest : NSObject +/// 订阅类型 +@property (nonatomic, assign) RCSubscribeType subscribeType; +/// 订阅有效时长,单位秒 [60s ~ 30 天] +/// 订阅接口请求时必传,其余接口不使用此字段 +@property (nonatomic, assign) NSInteger expiry; +/// 订阅的用户列表 +@property (nonatomic, strong) NSArray *userIds; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeInfoEvent.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeInfoEvent.h new file mode 100644 index 0000000..e653b12 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeInfoEvent.h @@ -0,0 +1,48 @@ +// +// RCSubscribeInfoEvent.h +// RongIMLibCore +// +// Created by chinaspx on 2024/4/8. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RCSubscribeEventDetail; +@class RCUserProfile; + +/// 订阅的状态信息事件(含状态信息) +@interface RCSubscribeInfoEvent : NSObject +/// 订阅用户 ID +@property (nonatomic, copy) NSString *userId; +/// 订阅类型 +@property (nonatomic, assign) RCSubscribeType subscribeType; +/// 订阅时间,unix 毫秒 +@property (nonatomic, assign) long long subscribeTime; +/// 订阅有效时长,单位秒 [60s ~ 30 天] +@property (nonatomic, assign) NSInteger expiry; +/// 订阅用户的状态信息 +@property (nonatomic, strong, nullable) NSArray *details; + +/// 订阅用户的用户信息 +/// +/// - Since: 5.10.0 +@property (nonatomic, strong, nullable) RCUserProfile *userProfile; + +@end + + +@interface RCSubscribeEventDetail : NSObject +/// 订阅事件状态值 (0:离线,1:在线) +@property (nonatomic, assign) NSInteger eventValue; + +/// 状态修改时间,unix 毫秒 +@property (nonatomic, assign) long long changeTime; + +/// 设备平台 +@property (nonatomic, assign) RCPlatform platform; + +@end +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeUserOnlineStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeUserOnlineStatus.h new file mode 100644 index 0000000..829c67a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSubscribeUserOnlineStatus.h @@ -0,0 +1,24 @@ +// +// RCSubscribeUserOnlineStatus.h +// RongIMLibCore +// +// Created by huan xu on 2025/9/10. +// Copyright © 2025 RongCloud. All rights reserved. + +/// - Since: 5.28.0 + +#import + +NS_ASSUME_NONNULL_BEGIN +@class RCPlatformOnlineStatus; +@interface RCSubscribeUserOnlineStatus : NSObject +/// 用户id +@property (nonatomic, copy) NSString *userId; +/// 平台信息 +@property (nonatomic, copy) NSArray *details; +/// 是否在线,只要有一个 details 里面只要有一个平台在线,当前 isOnline = YES +@property (nonatomic, assign) BOOL isOnline; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSyncReadStatusMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSyncReadStatusMessage.h new file mode 100644 index 0000000..201cb8a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCSyncReadStatusMessage.h @@ -0,0 +1,26 @@ +// +// RCSyncReadStatusMessage.h +// RongIMLib +// +// Created by 杜立召 on 16/8/22. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import "RCMessageContent.h" + +/*! + 消息已读状态同步消息类 + + 消息已读状态同步消息类,此消息会进行不存储不计入未读消息数。 + + - Remark: 信令类消息 +*/ +@interface RCSyncReadStatusMessage : RCMessageContent +#define RCSyncReadStatusMessageTypeIdentifier @"RC:SRSMsg" + +/// 最后一条消息的发送时间 +@property (nonatomic, assign) long long lastMessageSendTime; + ++ (instancetype)notificationWithLastMessageSendTime:(long long)lastMessageSendTime; + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTSMutableDictionary.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTSMutableDictionary.h new file mode 100644 index 0000000..fef8de9 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTSMutableDictionary.h @@ -0,0 +1,13 @@ +// +// RCTSMutableDictionary.h +// RongIMKit +// +// Created by 岑裕 on 16/5/12. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +@interface RCTSMutableDictionary : NSMutableDictionary + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTagInfo.h new file mode 100644 index 0000000..6076ed0 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTagInfo.h @@ -0,0 +1,36 @@ +// +// RCTagInfo.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 标签信息 +@interface RCTagInfo : NSObject +/// 标签 ID +@property (nonatomic, copy) NSString *tagId; + +/// 标签名称 +@property (nonatomic, copy) NSString *tagName; + +/// 该标签下的会话个数 +@property (nonatomic, assign) NSInteger count; + +/// 标签创建时间 +@property (nonatomic, assign) long long timestamp; + +/*! + RCTagInfo 初始化方法 + + - Parameter tagId: 标签 id + - Parameter tagName: 标签名称 + */ +- (instancetype)initWithTagInfo:(NSString *)tagId tagName:(NSString *)tagName; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTagProtocol.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTagProtocol.h new file mode 100644 index 0000000..962bc71 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTagProtocol.h @@ -0,0 +1,35 @@ +// +// RCTagProtocol.h +// RongIMLib +// +// Created by 张改红 on 2021/1/27. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#ifndef RCTagProtocol_h +#define RCTagProtocol_h + +@protocol RCTagDelegate + +/*! + 标签变化 + + 本端添加删除更新标签,不会触发不会触发此回调方法,在相关调用方法的 block 块直接回调 + */ +- (void)onTagChanged; + +@end + + +@protocol RCConversationTagDelegate + +/*! + 会话标签变化 + + 本端添加删除更新会话标签,不会触发此回调方法,在相关调用方法的 block 块直接回调 + */ + +- (void)onConversationTagChanged; + +@end +#endif /* RCTagProtocol_h */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTextMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTextMessage.h new file mode 100644 index 0000000..2166f8e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTextMessage.h @@ -0,0 +1,43 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCTextMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +/// 文本消息的类型名 +#define RCTextMessageTypeIdentifier @"RC:TxtMsg" + +NS_ASSUME_NONNULL_BEGIN +@class RCTranslateInfo; +/// 文本消息类 +/// +/// 文本消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCTextMessage : RCMessageContent + +/// 文本消息的内容 +@property (nonatomic, copy) NSString *content; + +/// 翻译信息。 +/// +/// - Since: 5.24.0 +@property (nonatomic, strong) RCTranslateInfo *translateInfo; + +/// 初始化文本消息 +/// +/// - Parameter content: 文本消息的内容 +/// - Returns: 文本消息对象 ++ (instancetype)messageWithContent:(NSString *)content; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslateParams.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslateParams.h new file mode 100644 index 0000000..2d54a83 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslateParams.h @@ -0,0 +1,79 @@ +// +// RCTranslateParams.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/30. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +enum RCTranslateMode : NSInteger; + +/// 消息翻译参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateMessageParam : NSObject +/// 消息内容的语言,为空时,会自动识别。 +@property (nonatomic, copy, nullable) NSString *sourceLanguage; + +// 翻译的语言,为空时,使用配置的全局语言。 +@property (nonatomic, copy, nullable) NSString *targetLanguage; +/// 消息 UId。 +@property (nonatomic, copy) NSString *messageUId; +/// 内容唯一标识,业务用来做内容和翻译内容匹配 +@property (nonatomic, copy, readonly) NSString *identifier; + +@end + +/// 批量翻译消息参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateMessagesParams : NSObject + +/// 翻译模式,默认为 `RCTranslateModeMechanical`。 +@property (nonatomic, assign) enum RCTranslateMode mode; + +/// 是否强制重新翻译,默认为 NO。 +/// +/// - Note: 翻译过的消息会做缓存,如果需要重新翻译,设置 YES。 +@property (nonatomic, assign) BOOL force; + +/// 待翻译消息信息数组,最多 10 条消息。 +@property (nonatomic, copy) NSArray *list; + +@end + +/// 文本翻译参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateTextParam : NSObject +/// 消息内容的语言,为空时,会自动识别。 +@property (nonatomic, copy, nullable) NSString *sourceLanguage; + +// 翻译的语言,为空时,使用配置的全局语言。 +@property (nonatomic, copy, nullable) NSString *targetLanguage; +/// 源文本。 +@property (nonatomic, copy) NSString *text; + +/// 内容唯一标识,业务用来做内容和翻译内容匹配 +@property (nonatomic, copy, readonly) NSString *identifier; + +@end + +/// 批量翻译文本参数对象。 +/// +/// - Since: 5.24.0 +@interface RCTranslateTextsParams : NSObject + +/// 翻译模式,默认为 `RCTranslateModeMechanical`。 +@property (nonatomic, assign) enum RCTranslateMode mode; + +/// 待翻译文本信息数组,最多 10 条。 +@property (nonatomic, copy) NSArray *list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslateResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslateResult.h new file mode 100644 index 0000000..3da44ec --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslateResult.h @@ -0,0 +1,60 @@ +// +// RCTranslateResult.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/30. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import +#import "RCErrorCode.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, RCTranslateStatus) { + RCTranslateStatusNone, + RCTranslateStatusTranslating, + RCTranslateStatusSuccess, + RCTranslateStatusFailed +}; + +typedef NS_ENUM(NSInteger, RCTranslateResultType) { + RCTranslateResultTypeMessage, // 消息 + RCTranslateResultTypeCustomText // 自定义 +}; + +/// 翻译结果。 +/// +/// - Since: 5.24.0 +@interface RCTranslateInfo : NSObject + +/// 翻译后的内容。 +@property (nonatomic, copy) NSString *translatedText; + +/// 状态 +@property (nonatomic, assign) RCTranslateStatus status; + +// 翻译目标的语言。 +@property (nonatomic, copy) NSString *targetLanguage; + +@end + +/// 消息翻译结果。 +/// +/// - Since: 5.24.0 +@interface RCTranslateItem : NSObject + +/// 翻译内容标识:消息的 UId 或内容的 hash。 +@property (nonatomic, copy) NSString *identifier; + +/// 翻译信息 +@property (nonatomic, strong) RCTranslateInfo *translateInfo; + +/// 状态码 +@property (nonatomic, assign) RCErrorCode code; + +/// 翻译来源 +@property (nonatomic, assign) RCTranslateResultType from; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslationDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslationDelegate.h new file mode 100644 index 0000000..1b6d9b7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCTranslationDelegate.h @@ -0,0 +1,41 @@ +// +// RCTranslationDelegate.h +// RongIMLibCore +// +// Created by shuai shao on 2025/6/30. +// Copyright © 2025 RongCloud. All rights reserved. +// + +#import + +@class RCConversationIdentifier; + +enum RCTranslateStrategy : NSInteger; + +NS_ASSUME_NONNULL_BEGIN + +/// 语言翻译事件代理。 +/// +/// - Since: 5.24.0 +@protocol RCTranslationDelegate + +@optional + +/// 用户级别翻译语言更新。 +/// +/// - Parameter language: 用户级别翻译语言。 +- (void)translationLanguageDidChange:(NSString *)language; + +/// 用户级别的自动翻译状态更新。 +/// +/// - Parameter isEnable: 是否开启自动翻译。 +- (void)autoTranslateStateDidChange:(BOOL)isEnable; + + +/// 翻译完成回调 +/// - Parameter items:翻译内容 +- (void)translationDidFinished:(NSArray *)items; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUltraGroupChannelChangeInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUltraGroupChannelChangeInfo.h new file mode 100644 index 0000000..1a2e02e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUltraGroupChannelChangeInfo.h @@ -0,0 +1,61 @@ +// +// RCUltraGroupChannelChangeInfo.h +// RongIMLibCore +// +// Created by RobinCui on 2022/6/15. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCUltraGroupChannelChangeInfo : NSObject + +/// 超级群 id +@property (nonatomic, copy) NSString *targetId; + +/// 超级群频道 id +@property (nonatomic, copy) NSString *channelId; + +/// 时间 +@property (nonatomic, assign) long long time; + +@end + + +@interface RCUltraGroupChannelChangeTypeInfo : NSObject + +/// 超级群变更基础信息 +@property (nonatomic, strong) RCUltraGroupChannelChangeInfo *changeInfo; + +/// 对应频道具体的变更信息 +@property (nonatomic, assign) RCUltraGroupChannelChangeType changeType; + +@end + + +@interface RCUltraGroupChannelUserKickedInfo : NSObject + +/// 超级群变更基础信息 +@property (nonatomic, strong) RCUltraGroupChannelChangeInfo *changeInfo; + +/// 当前私有频道被踢的用户 id,可能是当前用户,也可能是其他人 +@property (nonatomic, copy) NSString *userId; +/// 频道类型 +@property (nonatomic, assign) RCUltraGroupChannelType channelType; + +@end + + +@interface RCUltraGroupChannelDisbandedInfo : NSObject + +/// 超级群变更基础信息 +@property (nonatomic, strong) RCUltraGroupChannelChangeInfo *changeInfo; +/// 频道类型 +@property (nonatomic, assign) RCUltraGroupChannelType channelType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUltraGroupTypingStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUltraGroupTypingStatusInfo.h new file mode 100644 index 0000000..b902f37 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUltraGroupTypingStatusInfo.h @@ -0,0 +1,47 @@ +// +// RCUltraGroupTypingStatusInfo.h +// RongIMLibCore +// +// Created by zafer on 2021/12/20. +// Copyright © 2021 RongCloud. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCUltraGroupTypingStatusInfo : NSObject +/*! + 会话 ID + */ +@property (nonatomic, copy) NSString *targetId; + +/*! + 所属会话的业务标识 + */ +@property (nonatomic, copy) NSString *channelId; + +/*! + 用户id + */ +@property (nonatomic, copy) NSString *userId; + +/*! + 用户数 + */ +@property (nonatomic, assign) NSInteger userNumbers; + +/*! + 输入状态 + */ +@property (nonatomic, assign) RCUltraGroupTypingStatus status; + +/*! + 服务端收到用户操作的上行时间. + */ +@property (nonatomic, assign) long long timestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUnknownMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUnknownMessage.h new file mode 100644 index 0000000..b9fbf4e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUnknownMessage.h @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCUnknownMessage.h +// Created by xugang on 15/1/24. + +#import + +/// 未知消息的类型名 +#define RCUnknownMessageTypeIdentifier @"RC:UnknownMsg" + +/// 未知消息类 +/// +/// 所有未注册的消息类型,在 IMKit 中都会作为此类消息处理和显示。 +@interface RCUnknownMessage : RCMessageContent + +@end diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUploadImageStatusListener.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUploadImageStatusListener.h new file mode 100644 index 0000000..f3c1617 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUploadImageStatusListener.h @@ -0,0 +1,59 @@ +// +// RCUploadImageStatusListener.h +// RongIMLib +// +// Created by litao on 15/8/28. +// Copyright (c) 2015 年 RongCloud. All rights reserved. +// + +#import "RCMessage.h" +#import + +NS_ASSUME_NONNULL_BEGIN +/*! + 图片上传进度更新的IMKit监听 + + 此监听用于 IMKit 发送图片消息(上传到指定服务器)。 + App 在上传图片时,需要在监听中调用 updateBlock、successBlock 与 errorBlock,通知 IMKit + SDK 当前上传图片的进度和状态,SDK 会更新 UI。 + */ +@interface RCUploadImageStatusListener : NSObject + +/*! + 上传的图片消息的消息实体 + */ +@property (nonatomic, strong, nullable) RCMessage *currentMessage; + +/*! + 更新上传进度需要调用的 block [progress:当前上传的进度,0 <= progress < 100] + */ +@property (nonatomic, copy, nullable) void (^updateBlock)(int progress); + +/*! + 上传成功需要调用的 block [imageUrl:图片的网络 URL] + */ +@property (nonatomic, copy, nullable) void (^successBlock)(NSString *imageUrl); + +/*! + 上传成功需要调用的 block [errorCode:上传失败的错误码,非 0 整数] + */ +@property (nonatomic, copy, nullable) void (^errorBlock)(RCErrorCode errorCode); + +/*! + 初始化图片上传进度更新的IMKit监听 + + - Parameter message: 图片消息的消息实体 + - Parameter progressBlock: 更新上传进度需要调用的 block + - Parameter successBlock: 上传成功需要调用的 block + - Parameter errorBlock: 上传失败需要调用的 block + + - Returns: 图片上传进度更新的 IMKit 监听对象 + */ +- (instancetype)initWithMessage:(RCMessage *)message + uploadProgress:(nullable void (^)(int progress))progressBlock + uploadSuccess:(nullable void (^)(NSString *imageUrl))successBlock + uploadError:(nullable void (^)(RCErrorCode errorCode))errorBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUploadMediaStatusListener.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUploadMediaStatusListener.h new file mode 100644 index 0000000..47bcfe8 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUploadMediaStatusListener.h @@ -0,0 +1,96 @@ +// +// RCUploadMediaStatusListener.h +// RongIMLib +// +// Created by litao on 15/8/28. +// Copyright (c) 2015 年 RongCloud. All rights reserved. +// + +#import "RCMessage.h" +#import + +NS_ASSUME_NONNULL_BEGIN +/*! + 媒体文件上传进度更新的 IMKit 监听 + + 此监听用于 IMKit 发送媒体文件消息(上传到指定服务器)。 + App 在上传媒体文件时,需要在监听中调用 updateBlock、successBlock 与 errorBlock,通知 IMKit + SDK 当前上传媒体文件的进度和状态,SDK 会更新 UI。 + */ +@interface RCUploadMediaStatusListener : NSObject + +/*! + 上传的媒体文件消息的消息实体 + */ +@property (nonatomic, strong, nullable) RCMessage *currentMessage; + +/*! + 更新上传进度需要调用的 block [progress:当前上传的进度,0 <= progress < 100] + */ +@property (nonatomic, copy, nullable) void (^updateBlock)(int progress); + +/*! + 上传成功需要调用的 block。 + content:上传成功之后,需要发送的消息内容。 + 您可以使用 currentMessage,把其中content属性对应的 url 字段设置成您上传成功的网络 URL。 + 请参考下面代码。 + + 升级说明:如果您之前使用了此接口,请参考下面代码把参数从 url 替换成 message。 + + uploadPrepare:^(RCUploadMediaStatusListener *uploadListener) { + + if ([currentMessage.content isKindOfClass:[RCImageMessage class]]) { + RCImageMessage *content = (RCImageMessage *)uploadListener.currentMessage.content; + content.remoteUrl = remoteUrl; + uploadListener.successBlock(content); + } else if ([currentMessage.content isKindOfClass:[RCFileMessage class]]) { + RCFileMessage *content = (RCFileMessage *)uploadListener.currentMessage.content; + content.fileUrl = remoteUrl; + uploadListener.successBlock(content); + } else { + //不做处理的,一定回调返回原消息内容,保障发送方法继续执行 + uploadListener.successBlock(uploadListener.currentMessage.content); + } + } + + */ +@property (nonatomic, copy, nullable) void (^successBlock)(RCMessageContent *content); + +/*! + 上传失败需要调用的 block [errorCode:上传失败的错误码,非 0 整数] + */ +@property (nonatomic, copy, nullable) void (^errorBlock)(RCErrorCode errorCode); + +/*! + 上传取消需要调用的 block + */ +@property (nonatomic, copy, nullable) void (^cancelBlock)(void); + +/*! + 初始化媒体文件上传进度更新的 IMKit 监听 + + - Parameter message: 媒体文件消息的消息实体 + - Parameter progressBlock: 更新上传进度需要调用的 block + - Parameter successBlock: 上传成功需要调用的 block + - Parameter errorBlock: 上传失败需要调用的 block + - Parameter cancelBlock: 上传取消需要调用的 block( 如果未实现,传 nil 即可) + + - Returns: 媒体文件上传进度更新的 IMKit 监听对象 + */ +- (instancetype)initWithMessage:(RCMessage *)message + uploadProgress:(nullable void (^)(int progress))progressBlock + uploadSuccess:(nullable void (^)(RCMessageContent *content))successBlock + uploadError:(nullable void (^)(RCErrorCode errorCode))errorBlock + uploadCancel:(nullable void (^)(void))cancelBlock; + +/*! + 取消当前上传 + + 如果您实现取消正在上传的媒体消息功能,则必须实现此回调。 + 您需要在取消成功之后,调用 cancelBlock 通知 SDK,SDK 会自动更新 UI。 + */ +- (void)cancelUpload; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserGroupStatusDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserGroupStatusDelegate.h new file mode 100644 index 0000000..987b161 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserGroupStatusDelegate.h @@ -0,0 +1,76 @@ +// +// RCUserGroupStatusDelegate.h +// RongIMLibCore +// +// Created by RobinCui on 2023/1/3. +// Copyright © 2023 RongCloud. All rights reserved. +// + +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + + +@protocol RCUserGroupStatusDelegate +/*! + 当前用户收到超级群下的用户组中解散通知 + + - Parameter identifier: 会话标识[type:ConversationType_ULTRAGROUP ] + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userGroupDisbandFrom:(RCConversationIdentifier *)identifier userGroupIds:(NSArray *)userGroupIds; + +/*! + 当前用户被添加到超级群下的用户组 + + - Parameter identifier: 会话标识[type:ConversationType_ULTRAGROUP ] + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userAddedTo:(RCConversationIdentifier *)identifier userGroupIds:(NSArray *)userGroupIds; + +/*! + 当前用户从到超级群下的用户组中被移除 + + - Parameter identifier: 会话标识[type:ConversationType_ULTRAGROUP ] + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userRemovedFrom:(RCConversationIdentifier *)identifier userGroupIds:(NSArray *)userGroupIds; + + +/*! + 频道中绑定用户组回调 + + - Parameter identifier: 频道标识[type:ConversationType_ULTRAGROUP ] + - Parameter channelType: 频道类型 + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userGroupBindTo:(RCChannelIdentifier *)identifier + channelType:(RCUltraGroupChannelType)channelType + userGroupIds:(NSArray *)userGroupIds; + +/*! + 频道解绑用户组回调 + + - Parameter identifier: 频道标识[type:ConversationType_ULTRAGROUP ] + - Parameter channelType: 频道类型 + - Parameter userGroupIds: 用户组ID列表 + + - Since: 5.4.0 + */ +- (void)userGroupUnbindFrom:(RCChannelIdentifier *)identifier + channelType:(RCUltraGroupChannelType)channelType + userGroupIds:(NSArray *)userGroupIds; +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserInfo.h new file mode 100644 index 0000000..10aec9a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserInfo.h @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCUserInfo.h +// Created by Heq.Shinoda on 14-6-16. + +#import + +/// 用户类型。 +/// +/// - Since: 5.22.0 +typedef NS_ENUM(NSInteger, RCUserType) { + /// 正常用户。 + RCUserTypeNormal = 0, + /// 机器人。 + RCUserTypeRobot = 1, +}; + +NS_ASSUME_NONNULL_BEGIN + +/// 用户信息类 +@interface RCUserInfo : NSObject + +/// 用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 用户类型,默认为 `RCUserTypeNormal`。 +@property (nonatomic, assign) RCUserType userType; + +/// 用户名称 +@property (nonatomic, copy) NSString *name; + +/// 用户头像的 URL +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 用户备注 +@property (nonatomic, copy, nullable) NSString *alias; + +/// 用户信息附加字段 +@property (nonatomic, copy, nullable) NSString *extra; + +/// 用户信息的初始化方法 +/// +/// - Parameter userId: 用户 ID +/// - Parameter username: 用户名称 +/// - Parameter portrait: 用户头像的 URL +/// - Returns: 用户信息对象 +- (instancetype)initWithUserId:(NSString *)userId + name:(nullable NSString *)username + portrait:(nullable NSString *)portrait; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserOnlineStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserOnlineStatusInfo.h new file mode 100644 index 0000000..e03e798 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserOnlineStatusInfo.h @@ -0,0 +1,32 @@ +// +// RCUserOnlineStatusInfo.h +// RongIMLib +// +// Created by 杜立召 on 16/9/26. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import "RCStatusDefine.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 用户在线状态 +@interface RCUserOnlineStatusInfo : NSObject + +/// 在线的平台 +@property (nonatomic, assign) RCPlatform platform; + +/// 融云服务在线状态 +/// +/// 0 表示离线,1 表示在线 +@property (nonatomic, assign) int rcServiceStatus; + +/// 用户自定义的在线状态 (1 < customerStatus <= 255) +/// +/// 如果没有通过 RCIMClient 的 setUserOnlineStatus:success:error: 设置自定义的在线状态,默认的在线状态值为 1,若离线则为 0。 +@property (nonatomic, assign) int customerStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserProfile.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserProfile.h new file mode 100644 index 0000000..e3a1145 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserProfile.h @@ -0,0 +1,87 @@ +// +// RCUserProfile.h +// RongIMLibCore +// +// Created by Lang on 2024/4/19. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +/// 用户信息访问权限 +typedef NS_ENUM(NSUInteger, RCUserProfileVisibility) { + /// 未设置,以 AppKey 权限设置为准,默认是此状态。 + RCUserProfileVisibilityNotSet = 0, + /// 都不可见,任何人都不能搜索到我的用户信息,名称、头像除外 + RCUserProfileVisibilityInvisible = 1, + /// 所有人可见,应用中任何用户都可以查看到我的用户信息 + RCUserProfileVisibilityEveryone = 2, + /// 仅好友可见 + RCUserProfileVisibilityFriendVisible = 3, +}; + +/// 性别 +typedef NS_ENUM(NSInteger, RCUserGender) { + RCUserGenderUnknown = 0, // 未知性别 + RCUserGenderMale = 1, // 男性 + RCUserGenderFemale = 2, // 女性 +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCUserProfile : NSObject + +/// 用户 id +@property (nonatomic, copy) NSString *userId; + +/// 昵称 +/// +/// 长度不超过 32 个字符 +@property (nonatomic, copy) NSString *name; + +/// 头像地址 +/// +/// 长度不超过 128 个字符 +@property (nonatomic, copy, nullable) NSString *portraitUri; + +/// 用户应用号 +/// +/// 客户端无法直接修改 +@property (nonatomic, copy) NSString *uniqueId; + +/// 电子邮件 +/// +/// 长度不超过 128 个字符 +@property (nonatomic, copy, nullable) NSString *email; + +/// 生日 +/// +/// 长度不超过 32 个字符 +@property (nonatomic, copy, nullable) NSString *birthday; + +/// 性别 +@property (nonatomic, assign) RCUserGender gender; + +/// 所在地 +/// +/// 长度不超过 32 个字符 +@property (nonatomic, copy, nullable) NSString *location; + +/// 角色 +/// +/// 支持 0~100 以内数字 +@property (nonatomic, assign) NSUInteger role; + +/// 级别 +/// +/// 支持 0~100 以内数字 +@property (nonatomic, assign) NSUInteger level; + +/// 自定义用户扩展信息 +/// +/// 设置时请确保字典 key 值已在开发者后台配置过。 +@property (nonatomic, copy, nullable) NSDictionary *userExtProfile; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserTypingStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserTypingStatus.h new file mode 100644 index 0000000..3e0bf8b --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUserTypingStatus.h @@ -0,0 +1,38 @@ +// +// RCUserTypingStatus.h +// RongIMLib +// +// Created by 岑裕 on 16/1/8. +// Copyright © 2016 年 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// 用户输入状态类 +@interface RCUserTypingStatus : NSObject + +/// 当前正在输入的用户 ID +@property (nonatomic, copy) NSString *userId; + +/// 当前正在输入的消息类型名 +/// +/// contentType 为用户当前正在编辑的消息类型名,即 RCMessageContent 中 getObjectName 的返回值。 +/// 如文本消息,应该传类型名"RC:TxtMsg"。 +@property (nonatomic, copy) NSString *contentType; + +/// 用户输入状态消息发送时间 +@property (nonatomic, assign) long long sentTime; + +/// 初始化用户输入状态对象 +/// +/// - Parameter userId: 当前正在输入的用户 ID +/// - Parameter objectName: 当前正在输入的消息类型名 +/// +/// - Returns: 用户输入状态对象 +- (instancetype)initWithUserId:(NSString *)userId contentType:(NSString *)objectName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUtilities.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUtilities.h new file mode 100644 index 0000000..bb6376f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCUtilities.h @@ -0,0 +1,282 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCUtilities.h +// Created by Heq.Shinoda on 14-5-15. + +#ifndef __RCUtilities +#define __RCUtilities + +#import "RCMessage.h" +#import +@class CTTelephonyNetworkInfo; +/// 工具类 +@interface RCUtilities : NSObject + +/// 将 base64 编码的字符串解码并转换为 NSData 数据 +/// +/// - Parameter string: base64 编码的字符串 +/// - Returns: 解码后的 NSData 数据 +/// +/// 此方法主要用于 iOS6 解码 base64。 ++ (NSData *)dataWithBase64EncodedString:(NSString *)string; + +/// 将 NSData 数据转化并编码为 base64 的字符串 +/// +/// - Parameter data: 未编码的 NSData 数据 +/// - Returns: 编码后的 base64 字符串 +/// +/// 此方法主要用于 iOS6 编码 base64。 ++ (NSString *)base64EncodedStringFrom:(NSData *)data; + +/// scaleImage +/// +/// - Parameter image: image +/// - Parameter scaleSize: scaleSize +/// +/// - Returns: scaled image ++ (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize; + +/// imageByScalingAndCropSize +/// +/// - Parameter image: image +/// - Parameter targetSize: targetSize +/// +/// - Returns: image +/// ++ (UIImage *)imageByScalingAndCropSize:(UIImage *)image targetSize:(CGSize)targetSize; + +///根据配置压缩图片 +/// +///如果设置了 `[RCCoreClient sharedCoreClient].imageCompressConfig` 就按照此设置进行压缩。如果没有设置,就按照 RCConfig.plis 文件中的配置进行压缩。 +/// +/// - Parameter image: 原图片 +/// - Returns: 压缩后的图片 ++ (UIImage *)generateThumbnailByConfig:(UIImage *)image; + +/*! + generate thumbnail from image + + - Parameter image: image + - Parameter targetSize: targetSize + + - Returns: image + */ ++ (UIImage *)generateThumbnail:(UIImage *)image targetSize:(CGSize)targetSize; + +/*! + generate thumbnail from image + + - Parameter image: image + - Parameter targetSize: targetSize + - Parameter percent: percent + + - Returns: image + */ ++ (UIImage *)generateThumbnail:(UIImage *)image targetSize:(CGSize)targetSize percent:(CGFloat)percent; +/*! + compressedImageWithMaxDataLength + + - Parameter image: image + - Parameter maxDataLength: maxDataLength + + - Returns: NSData + */ ++ (NSData *)compressedImageWithMaxDataLength:(UIImage *)image maxDataLength:(CGFloat)maxDataLength; + +/*! + compressedImageAndScalingSize + + - Parameter image: image + - Parameter targetSize: targetSize + - Parameter maxDataLen: maxDataLen + + - Returns: image NSData + */ ++ (NSData *)compressedImageAndScalingSize:(UIImage *)image targetSize:(CGSize)targetSize maxDataLen:(CGFloat)maxDataLen; + +/*! + compressedImageAndScalingSize + + - Parameter image: image + - Parameter targetSize: targetSize + - Parameter percent: percent + + - Returns: image NSData + */ ++ (NSData *)compressedImageAndScalingSize:(UIImage *)image targetSize:(CGSize)targetSize percent:(CGFloat)percent; + +/// compressedImage +/// +/// - Parameter image: image +/// - Parameter percent: percent +/// +/// - Returns: image NSData ++ (NSData *)compressedImage:(UIImage *)image percent:(CGFloat)percent; + +/// 获取文字显示的尺寸 +/// +/// - Parameter text: 文字 +/// - Parameter font: 字体 +/// - Parameter constrainedSize: 文字显示的容器大小 +/// +/// - Returns: 文字显示的尺寸 +/// +/// 该方法在计算 iOS 7 以下系统显示的时候默认使用 NSLineBreakByTruncatingTail 模式。 ++ (CGSize)getTextDrawingSize:(NSString *)text font:(UIFont *)font constrainedSize:(CGSize)constrainedSize; + +/// 判断是否是本地路径 +/// +/// - Parameter path: 路径 +/// +/// - Returns: 是否是本地路径 +/// ++ (BOOL)isLocalPath:(NSString *)path; + +/// 判断是否是网络地址 +/// +/// - Parameter url: 地址 +/// +/// - Returns: 是否是网络地址 ++ (BOOL)isRemoteUrl:(NSString *)url; + +/// 获取沙盒修正后的文件路径 +/// +/// - Parameter localPath: 本地路径 +/// +/// - Returns: 修正后的文件路径 ++ (NSString *)getCorrectedFilePath:(NSString *)localPath; + +/// 获取文件存储路径 ++ (NSString *)getFileStoragePath; + +/// excludeBackupKeyForURL +/// +/// - Parameter storageURL: storageURL +/// +/// - Returns: BOOL ++ (BOOL)excludeBackupKeyForURL:(NSURL *)storageURL; + +/// 获取 App 的文件存放路径 +/// +/// - Returns: App 的文件存放路径 ++ (NSString *)applicationDocumentsDirectory; + +/*! + 获取融云 SDK 的文件存放路径 + + - Returns: 融云 SDK 的文件存放路径 + */ ++ (NSString *)rongDocumentsDirectory; + +/// 获取融云 SDK 的缓存路径 +/// +/// - Returns: 融云 SDK 的缓存路径 ++ (NSString *)rongImageCacheDirectory; + +/// 获取当前系统时间 +/// +/// - Returns: 当前系统时间 ++ (NSString *)currentSystemTime; + +/// 获取当前运营商名称 +/// +/// - Returns: 当前运营商名称 ++ (NSString *)currentCarrier; + ++ (CTTelephonyNetworkInfo *)telephonyNetworkInfo; + +///获取当前网络类型 +/// +/// - Returns: 当前网络类型 ++ (NSString *)currentNetWork; + +/// 获取当前网络类型 +/// +/// - Returns: 当前网络类型 ++ (NSString *)currentNetworkType; + +/// 获取系统版本 +/// +/// - Returns: 系统版本 ++ (NSString *)currentSystemVersion; + +/// 获取设备型号 +/// +/// - Returns: 设备型号 ++ (NSString *)currentDeviceModel; + +/// 获取非换行的字符串 +/// +/// - Parameter originalString: 原始的字符串 +/// +/// - Returns: 非换行的字符串 +/// +/// 所有换行符将被替换成单个空格 ++ (NSString *)getNowrapString:(NSString *)originalString; + + +/// 判断一张照片是否是含透明像素的照片 +/// +/// - Parameter image: 原始照片 +/// - Returns: 是否包含透明像素,YES 包含,NO 不包含 ++ (BOOL)isOpaque:(UIImage *)image; + +/// URL 编码 +/// +/// - Returns: 编码后的 URL ++ (NSString *)encodeURL:(NSString *)url; + ++ (NSData *)compressImage:(UIImage *)sourceImage; + +/// 检查字符串是否符合聊天室属性名称的格式 +/// +/// - Parameter key: 聊天室属性名称 +/// - Returns: 是否符合聊天室属性名称的格式,YES 符合,NO 不符合 +/// +/// Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式 ++ (BOOL)checkChatroomKey:(NSString *)key; + +///生成 22 位的 UUID +/// +///- Returns: 22 位的 UUID ++ (NSString *)get22bBitUUID; + +///生成 UUID +/// +///- Returns: UUID ++ (NSString *)getUUID; + +///生成 DeviceId +/// +///- Returns: DeviceId 连接改造使用的 ++ (NSString *)getDeviceId:(NSString *)appKey; + +/// 根据字符串生成 md5 +/// - Parameter bateNum: MD5 位数 +/// - Parameter isLowercaseStr: 是否生成小写字符串 +/// - Returns: MD5 ++ (NSString *)md5EncryptStr:(NSString *)str bateNum:(NSInteger)bateNum isLowercaseStr:(BOOL)isLowercaseStr; + +///获取手机型号 +/// +///- Returns: 手机型号 ++ (NSString *)iphoneType; + ++ (void)setModuleName:(NSString *)moduleName version:(NSString *)version; + ++ (NSDictionary *)getModuleVersionInfo; + +/// 将字典或者数组转换成字符串,能去打印的换行 '\n' 以及空格 +/// - Parameter objc: 必须是字典或者是数组 ++ (NSString *)jsonFromObject:(id)objc; + +@end + +#endif diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCVoiceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCVoiceMessage.h new file mode 100644 index 0000000..a4b7297 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCVoiceMessage.h @@ -0,0 +1,69 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RCVoiceMessage.h +// Created by Heq.Shinoda on 14-6-13. + +#import + +/// 语音消息的类型名 +#define RCVoiceMessageTypeIdentifier @"RC:VcMsg" + +NS_ASSUME_NONNULL_BEGIN + +/// 语音消息类 +/// +/// 语音消息类,此消息会进行存储并计入未读消息数。 +/// +/// - Remark: 内容类消息 +@interface RCVoiceMessage : RCMessageContent + +/// wav 格式的音频数据 +@property (nonatomic, strong) NSData *wavAudioData; + +/// 语音消息的时长,以秒为单位 +@property (nonatomic, assign) long duration; + +/// 初始化语音消息 +/// +/// - Parameter audioData: wav 格式的音频数据 +/// - Parameter duration: 语音消息的时长,以秒为单位 +/// - Returns: 语音消息对象 +/// +/// 如果您不是使用 IMKit 中的录音功能,则在初始化语音消息的时候,需要确保以下几点。 +/// 1. audioData 必须是单声道的 wav 格式音频数据; +/// 2. audioData 的采样率必须是 8000Hz,采样位数(精度)必须为 16 位。 +/// +/// 您可以参考 IMKit 中的录音参数: +/// ```objc +/// NSDictionary *settings = @{AVFormatIDKey: @(kAudioFormatLinearPCM), +/// AVSampleRateKey: @8000.00f, +/// AVNumberOfChannelsKey: @1, +/// AVLinearPCMBitDepthKey: @16, +/// AVLinearPCMIsNonInterleaved: @NO, +/// AVLinearPCMIsFloatKey: @NO, +/// AVLinearPCMIsBigEndianKey: @NO}; +/// ``` +/// ++ (instancetype)messageWithAudio:(NSData *)audioData duration:(long)duration; + +@end + +@class RCSpeechToTextInfo; + +@interface RCVoiceMessage (STT) + +/// 语音转文本内容。 +/// +/// - Since: 5.22.0 +@property (nonatomic, readonly, strong, nullable) RCSpeechToTextInfo *sttInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCiOSConfig.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCiOSConfig.h new file mode 100644 index 0000000..56cd767 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RCiOSConfig.h @@ -0,0 +1,56 @@ +// +// RCiOSConfig.h +// RongIMLib +// +// Created by 孙浩 on 2020/9/17. +// Copyright © 2020 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +/// iOS 推送级别常量 +/// "passive" 被动通知:即并不需要及时关注的通知,类似餐馆推荐通知 +/// "active" 主动通知(默认的):默认的通知,即人们可能想知道的,类似最喜欢的体育比赛的最新比分 +/// "time-sensitive" 时效性通知:需要人们立刻注意的通知,类似账户安全问题或快递动态 +/// "critical" 重要通知:关于个人健康或直接影响到设备拥有者的公共安全事件且需要立刻关注的,这类通知很少,一般是来自公共政府机构或健康 App +static NSString *const kInterruptionLevel_passive = @"passive"; +static NSString *const kInterruptionLevel_active = @"active"; +static NSString *const kInterruptionLevel_time_sensitive = @"time-sensitive"; +static NSString *const kInterruptionLevel_critical = @"critical"; + +@interface RCiOSConfig : NSObject + +/// iOS 平台通知栏分组 ID +/// +/// 相同的 thread-id 推送分为一组 +/// +/// iOS10 开始支持 +@property (nonatomic, copy, nullable) NSString *threadId; + +/// iOS 标识推送的类型 +/// +/// 如果不设置后台默认取消息类型字符串,如 RC:TxtMsg +@property (nonatomic, copy, nullable) NSString *category; + +/// iOS 平台通知覆盖 ID +/// +/// apnsCollapseId 相同时,新收到的通知会覆盖老的通知,最大 64 字节 +/// +/// iOS10 开始支持 +@property (nonatomic, copy, nullable) NSString *apnsCollapseId; + +/// iOS 富文本推送内容 +@property (nonatomic, copy, nullable) NSString *richMediaUri; + +/// iOS 推送级别。默认值 "active" +/// "passive" 被动通知:即并不需要及时关注的通知,类似餐馆推荐通知 +/// "active" 主动通知(默认的):默认的通知,即人们可能想知道的,类似最喜欢的体育比赛的最新比分 +/// "time-sensitive" 时效性通知:需要人们立刻注意的通知,类似账户安全问题或快递动态 +/// "critical" 重要通知:关于个人健康或直接影响到设备拥有者的公共安全事件且需要立刻关注的,这类通知很少,一般是来自公共政府机构或健康 App。 +@property (nonatomic, copy) NSString *interruptionLevel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RongIMLibCore.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RongIMLibCore.h new file mode 100644 index 0000000..8cab383 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Headers/RongIMLibCore.h @@ -0,0 +1,170 @@ +/** + * Copyright (c) 2014-2015, RongCloud. + * All rights reserved. + * + * All the contents are the copyright of RongCloud Network Technology Co.Ltd. + * Unless otherwise credited. http://rongcloud.cn + * + */ + +// RongIMLibCore.h +// Created by xugang on 14/12/11. + +#import + +//! Project version number for RongIMLibCore. +FOUNDATION_EXPORT double RongIMLibCoreVersionNumber; + +//! Project version string for RongIMLibCore. +FOUNDATION_EXPORT const unsigned char RongIMLibCoreVersionString[]; + +/// IMLib 核心类 +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/// 会话相关类 +#import +#import +#import +/// 消息相关类 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import + +/// 工具类 +#import +#import +#import +//#import +//#import + +/// 其他 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import + +// 已读回执 +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +// log +#import + +// Download +#import +#import + +// Socks proxy +#import + +// Subscribe Event +#import +#import +#import +#import + +// User Manager +#import + +// Group +#import +#import +#import +#import + +// Friend +#import +#import + +// Stream Message +#import +#import + +// Search Message +#import + +// Speech To Text +#import +#import + +// Translation +#import +#import +#import diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Info.plist new file mode 100644 index 0000000..6a7932d Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Modules/module.modulemap b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Modules/module.modulemap new file mode 100644 index 0000000..ee665e7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongIMLibCore { + umbrella header "RongIMLibCore.h" + + export * + module * { export * } +} diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/PrivacyInfo.xcprivacy b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..89cd543 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/PrivacyInfo.xcprivacy @@ -0,0 +1,40 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyTrackingDomains + + NSPrivacyTracking + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/RongIMLibCore b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/RongIMLibCore new file mode 100755 index 0000000..807ad71 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/RongIMLibCore differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..44b7e97 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMLibCore.xcframework/ios-arm64_i386_x86_64-simulator/RongIMLibCore.framework/_CodeSignature/CodeResources @@ -0,0 +1,2142 @@ + + + + + files + + Headers/RCAMRDataConverter.h + + 51VjlLepJaGdXXco8jbe8SZ4adE= + + Headers/RCAndroidConfig.h + + VM4lZcQ0vdWlekhyXvVJQAN6vtw= + + Headers/RCAppSettings.h + + Mo/+iDDfI9Pav4rUeQ4hpvwoJiA= + + Headers/RCBlockedMessageInfo.h + + y/YL7Y64+MioRgHvrIOOM7T984o= + + Headers/RCChannelClient+Deprecated.h + + NVYXAWhvmJdOcygfILwtaPpyYJU= + + Headers/RCChannelClient.h + + zsEYQ3jOd+gcqFG5Vz7GGAfUR/o= + + Headers/RCChannelIdentifier.h + + nWz4Ca4ugMOiK5IlEruEsvgpw+0= + + Headers/RCClearConversationOption.h + + mcqMZNh9gKfCQ+5h14/5IHiO+ZQ= + + Headers/RCClearMessageOption.h + + 4TKSyWB6He/JF+a0wcaIeBG7Ypc= + + Headers/RCCombineMessage.h + + kg9Nw5Q+6IHfs3QpA7s6Ppo8pC8= + + Headers/RCCombineV2Message.h + + 9cbwQvwcnmJHCU33MmGkMX2xmpo= + + Headers/RCCommandMessage.h + + RgebH9ZRCUELxJSeNTO6HMH0bzw= + + Headers/RCCommandNotificationMessage.h + + Cavd0ytlP87Po0JljLVlciPod7o= + + Headers/RCContactNotificationMessage.h + + 4aKENxAyRfx7TuxR8JadBdNunO4= + + Headers/RCConversation.h + + FS9X0ovlNbGDNdGHabvV9BvyFxU= + + Headers/RCConversationBatchDeletionParams.h + + ponae+uj+TJOwwQcu6pgjNWcppg= + + Headers/RCConversationChannelProtocol.h + + 6V1FUR6wdSWWG9BSxaxipgTzPm0= + + Headers/RCConversationFilterOption.h + + q9PsKrvXEVXe3g0urBs4CvSLhpY= + + Headers/RCConversationIdentifier.h + + qjXCn79G0gqktUyYwYPhsoLyn6Q= + + Headers/RCConversationStatusInfo.h + + l212y/YQ8ZLhgcLKXIP7n0DxETc= + + Headers/RCConversationTagInfo.h + + XxkR16dtX6dQ/mC8dESozMyfSiw= + + Headers/RCConversationTopOption.h + + vG+X02UlYaYTJNiEQj9ix+JkSv4= + + Headers/RCConversationUnreadInfo.h + + IymB9V3AzzgUR2w3+zFMa9/cI5U= + + Headers/RCCoreClient+Deprecated.h + + IqKN7dwO/o2ygKtzz1TuNOEZRq4= + + Headers/RCCoreClient.h + + W89SpQCxLxmYgqKX/csV2alYBjc= + + Headers/RCDownloadInfo.h + + ytwwjcn9LNMOyj8hpB1dKmk+f14= + + Headers/RCDownloadItem.h + + ULSwE/T28Wd4Z6rm/6R7qyDxdyk= + + Headers/RCEditedMessageDraft.h + + aZnCDNKTwgvT4Xh328WkeqCNxkU= + + Headers/RCErrorCode.h + + yOOXx4AiZioZfJK8+FSwKbi0oXY= + + Headers/RCFileMessage.h + + K0oPxy9PNWXDMDP5slsYy6vQi58= + + Headers/RCFileUtility.h + + 6diVzuwDxJjWSijXph7JjbqMhKE= + + Headers/RCFollowInfo.h + + r/4KJluyjZbPv9RuEYh3ll44iwA= + + Headers/RCFriendApplicationInfo.h + + 8SEVHZNeHwgIVUCuUEIp9fjpYmw= + + Headers/RCFriendEnum.h + + XJ/i0OhY8rXf9xGjt4EMolIzf9Y= + + Headers/RCFriendEventDelegate.h + + xMl1NSEZm/vhCGrcC44T5iMzPAg= + + Headers/RCFriendInfo.h + + CRJAJ6/CbwoVtH9aUO/HWBXtL5g= + + Headers/RCFriendRelationInfo.h + + DAYEhBKFYXHbYV9f5Aqa5XMiPRw= + + Headers/RCFwLog.h + + 8B2y6W8PuPyw4wGl0dF1Cq3ROHw= + + Headers/RCGIFMessage.h + + /ppI2bxIdHTOi+N6vfLX+MR9C4A= + + Headers/RCGetUnreadMentionMeConversationListParams.h + + 24nEe5UotEhC7BxJPAUZRfBOBXE= + + Headers/RCGroup.h + + kJdWQVlXSobcPaEmlZ7WVnTfplU= + + Headers/RCGroupApplicationInfo.h + + UGl7FDTkKBdl4tFS7aknzZ5kfhg= + + Headers/RCGroupEnum.h + + +aIaMk9BlIOwOj66Iuz4DB7eXTM= + + Headers/RCGroupEventDelegate.h + + Ebm+3goc0KuAM0/bG5Oyx73y55k= + + Headers/RCGroupInfo.h + + IQ0MD9bp6NkJaomuyEPkc6Ikly0= + + Headers/RCGroupMemberInfo.h + + 6dVcyJzy2HINyJaHhWG8pOzczjE= + + Headers/RCGroupMessageReaderV2.h + + Lk/kIyS6u+IffRBpL4iGPOR80zE= + + Headers/RCGroupNotificationMessage.h + + 5gmQFLL7djuNHYFKcV5inAU08KY= + + Headers/RCGroupReadReceiptInfoV2.h + + KybBkFL1HVDsd3Kt7c6pRNpWmoM= + + Headers/RCGroupReadReceiptV2Manager.h + + rcRDhi962q2pWmF5H4an1bExWqg= + + Headers/RCGroupReadReceiptV2Protocol.h + + Yc1nbKQeOKFobe9aGtF8oALCiZ4= + + Headers/RCHQVoiceMessage.h + + H8eF/qopF0uhANVgxrsalxi3XJ4= + + Headers/RCHarmonyOSConfig.h + + Bk5r2thWw++U0lJm2OwVa86I96Y= + + Headers/RCHistoryMessageOption.h + + i0Sf7+A7xqYM4xAJhG0Q6bat1vY= + + Headers/RCIMClientProtocol.h + + zTLV5ITU8Qn07V58fxZsELDyIAk= + + Headers/RCIMProxy.h + + hpm9Fte3GqFUyhDqhN/91K8GJt0= + + Headers/RCImageCompressConfig.h + + cU2ulrIG1gcXQEo25OtmGSBVARc= + + Headers/RCImageMessage.h + + FfkTCd3fBNZoH3A/oszzJsDQas8= + + Headers/RCInformationNotificationMessage.h + + LEQ08NsOLaNf7h9RqWVoeJQuEO0= + + Headers/RCInitOption.h + + Q+8RVgLx9mKsVlJLnT5NLL2qbYo= + + Headers/RCLocalConfiguration.h + + 4Zuj8FDB1f66w/WrOBGi/JnC2Z4= + + Headers/RCMediaMessageContent.h + + hZTn4OscwK8l5F8bGN5AIZ/QeYo= + + Headers/RCMentionedInfo.h + + FGCpXD+OKYVMg/3XyM3JvLPY97w= + + Headers/RCMessage+RCDeprecated.h + + ubOdPYwxdgbIu1DKUfPUaIPxWLU= + + Headers/RCMessage.h + + RvSx/iSWy/KEBTK5GzmSEX5oIpo= + + Headers/RCMessageAuditInfo.h + + ZRG0us9qa4IZbSVYA0glLbB8Zc0= + + Headers/RCMessageConfig.h + + wRM5H55Etiz05JVnyBYiODDTOQo= + + Headers/RCMessageContent.h + + 7UZvhNdKgMmp76yTcN4iZ1B/85o= + + Headers/RCMessageDigestInfo.h + + vwoiJ24qHkwU+vBirmz0A9pF0GA= + + Headers/RCMessageIdentifier.h + + 0P93XhqW0vFR9Af4kzrfOeF3GyI= + + Headers/RCMessageModifyInfo.h + + 7n8pWzhEOkgQzzE6XW7TOpaX+ZM= + + Headers/RCMessagePushConfig.h + + RoZcF78FoAY3i94NlQoHV52MXZ0= + + Headers/RCMessageResult.h + + KWK/ydltlWQCmE3hgk+pbr5Pfyk= + + Headers/RCModifyMessageParams.h + + nm/Pm52Z5EmjgvG+Xt7aIKD+rkI= + + Headers/RCNotificationQuietHoursSetting.h + + K7ldecAnoV3QFqNILK7AFWI+u6Y= + + Headers/RCPagingQueryOption.h + + bZm3vEM942gZ+PS+hJR0jffagkQ= + + Headers/RCPagingQueryResult.h + + nuzxXjO/p59hpjirj87Wt8nabJA= + + Headers/RCPlatformOnlineStatus.h + + 8Bv5vsvy4tuL1WX+nDM6gB8bjwE= + + Headers/RCProfileNotificationMessage.h + + Wz9UNEmswI8NOPILnOjnBEUcrFY= + + Headers/RCPushProfile.h + + SgRcqwyaxP7kb5Yer5YeyXcpgaE= + + Headers/RCQuitGroupConfig.h + + WNS95tKmh118SD7hfOu5/KVflYE= + + Headers/RCReadReceiptDefine.h + + pDN6qM9Z0VVApbq51g6bi/6HK+E= + + Headers/RCReadReceiptInfo.h + + BjA61P6kB0BUTpgSFs1XNmeAOtM= + + Headers/RCReadReceiptInfoV5.h + + mLdraZt+jhFQd1AcHJgkkof/iSY= + + Headers/RCReadReceiptMessage.h + + Dia3W3/TzOv+IbNN7y0q4Nr4NdY= + + Headers/RCReadReceiptResponseV5.h + + kfcJKGWmKmjmBBMxP3LUKCzWlZ8= + + Headers/RCReadReceiptUser.h + + 2dZGtvCiV1yyYmLLuekkSKJV34Q= + + Headers/RCReadReceiptUsersOption.h + + WcbUjeolvUi9BJ2ELwKTP2cGadM= + + Headers/RCReadReceiptUsersResult.h + + jfye3njfxqmW0z46IGVdXszYFzo= + + Headers/RCRecallMessageOption.h + + E2iT8wECVBY7LFf+rHZ+i57pUPM= + + Headers/RCRecallNotificationMessage.h + + 0VouquBfZuBV1S0SZ3A1Q50gF1k= + + Headers/RCReceivedStatusInfo.h + + wK9ftjsrNjsF649XHOp35m4j3yI= + + Headers/RCReferenceMessage.h + + Bdn+cCdml+RnNC0zW8Jj9lxUOqs= + + Headers/RCRefreshReferenceMessageParams.h + + gP1JHQ1flcuu5XTzzmK899fI5AA= + + Headers/RCRemoteHistoryMsgOption.h + + lmRsVkORCuxEKiXoGNfeS0fJtfE= + + Headers/RCResumableDownloader.h + + sxasiblopOpBofb6wl0GM14iRTw= + + Headers/RCRichContentMessage.h + + HSlsLBqf2wM2YhFXDsxhoIGtHt0= + + Headers/RCSearchConversationResult.h + + i+8skWh0/dAa/QZIEOAOZ0//Utk= + + Headers/RCSearchMessageParams.h + + gFNtbC325Nk8u5i+vwTaPM0FbqE= + + Headers/RCSendMessageOption.h + + vZYhTKMFd5wWpo7fneO9VzMmz8I= + + Headers/RCSightMessage.h + + X+C2pbi8+J4ha/YfJw22dRNGMU8= + + Headers/RCSpeechToTextDelegate.h + + sop1nGAXkwe0IB/q5JRrxnjR7uY= + + Headers/RCSpeechToTextInfo.h + + OB5csfnHYyXaRcyKlk3eCOafCYk= + + Headers/RCStatusDefine.h + + lV8AfCG1Qbyu8IFFx0KzI1NYE6M= + + Headers/RCStatusMessage.h + + P94OlVPKVgaUGy2pEXCd95cyuqQ= + + Headers/RCStreamMessage.h + + vZWFYWtvv0pBfRoa6Ru2zJQ4rYU= + + Headers/RCStreamMessageRequestParams.h + + w000YnuNYNEfriyHTzoGZwNpIsc= + + Headers/RCSubscribeEvent.h + + 49tBHU0wrnB1kr04uqzMafMn86U= + + Headers/RCSubscribeEventDelegate.h + + QYJUhfM6s6m1AiDOHf5f+1QO+Js= + + Headers/RCSubscribeEventRequest.h + + gsyQnRSrRRxwuzzKWkD/zs/OIf4= + + Headers/RCSubscribeInfoEvent.h + + 1voUtCRQEMiM4rQxZZ/qngib0VE= + + Headers/RCSubscribeUserOnlineStatus.h + + GCM6/B6Ai4/TwJDVfiwd+BJ94kg= + + Headers/RCSyncReadStatusMessage.h + + rOK9R+AuubDomCZXpqSdE3eJsQ4= + + Headers/RCTSMutableDictionary.h + + jDwg6+vz1oiQVAR8rylZyQUSfK8= + + Headers/RCTagInfo.h + + p7rPeSNHVdQcQR6fJXAVZPT86Sw= + + Headers/RCTagProtocol.h + + BFLVwfm0FHWRN5biLOgcxIhYURc= + + Headers/RCTextMessage.h + + 3Ma5W8NxEHZ45IrG9N1NEhqqrXQ= + + Headers/RCTranslateParams.h + + 6lysy389WHmVNbJVrUp+UbiW3uQ= + + Headers/RCTranslateResult.h + + eecCBRzYh223UMkmYwGUgeRsqcc= + + Headers/RCTranslationDelegate.h + + N3ZBIVijSeFW7NjOQoLdHJkVCFg= + + Headers/RCUltraGroupChannelChangeInfo.h + + jhPlFGwARUgefwHARqglUUp685o= + + Headers/RCUltraGroupTypingStatusInfo.h + + B8jG7T1gLl60w/MRHBDcLjw3zCU= + + Headers/RCUnknownMessage.h + + YOwhnm47VSNfvWvSKsabBSsCt68= + + Headers/RCUploadImageStatusListener.h + + g4xZbnDQQOqY93kpMVTrsZO4ftk= + + Headers/RCUploadMediaStatusListener.h + + ZgPOmadlM9LnCWp8Mgk6sv5tMw8= + + Headers/RCUserGroupStatusDelegate.h + + RYlyb8saCJ5o7tjINcBqx5uZU0M= + + Headers/RCUserInfo.h + + KlG2CJN3rvM4B8Y7TL3i+PWjpZk= + + Headers/RCUserOnlineStatusInfo.h + + klP21ai00PZSp1GN6i34ggMLhCM= + + Headers/RCUserProfile.h + + lnWdB5GSURZKYp+6DfyBSHyuWMM= + + Headers/RCUserTypingStatus.h + + 7ThJ44lZHCxDOWuir/QobNx798s= + + Headers/RCUtilities.h + + 8vOaN6WjU+/xVQLAjxHPxwo8tL4= + + Headers/RCVoiceMessage.h + + ijxtmnlQ0VF4Tg475EH8FNr+LEM= + + Headers/RCiOSConfig.h + + BTWND4G0iAIDAvH3tjvPiKu+ETc= + + Headers/RongIMLibCore.h + + 7hdrRm9Uv979YkuDIpRAec2yZB4= + + Info.plist + + IQWx6OwM9q0PnyBHIDj3DhaD3UI= + + Modules/module.modulemap + + H1rer/SL6j8CPbSoGiUA4HpEz6Q= + + PrivacyInfo.xcprivacy + + mfQ59F/rNdxqeWFAJiAE3X48yb4= + + + files2 + + Headers/RCAMRDataConverter.h + + hash + + 51VjlLepJaGdXXco8jbe8SZ4adE= + + hash2 + + PPS5zP7LY5qgbfeh4Ish3jshzYwKT04rO2rKBE3MLbA= + + + Headers/RCAndroidConfig.h + + hash + + VM4lZcQ0vdWlekhyXvVJQAN6vtw= + + hash2 + + v//YytuvTCyrFP+ukW3Od99g8wyIGKCpxRqNvTzgbfs= + + + Headers/RCAppSettings.h + + hash + + Mo/+iDDfI9Pav4rUeQ4hpvwoJiA= + + hash2 + + eFUVkYogjhcBSYBRdfBXp3bJk+Ipe7QvCar7vFSEMpI= + + + Headers/RCBlockedMessageInfo.h + + hash + + y/YL7Y64+MioRgHvrIOOM7T984o= + + hash2 + + +XySCbyORMpVHkaZ89Rfsj3WGsQklwXLcfa7IZ44+jg= + + + Headers/RCChannelClient+Deprecated.h + + hash + + NVYXAWhvmJdOcygfILwtaPpyYJU= + + hash2 + + QzAYmVzh65k7yHn2Qm9LNUgnf3bSqwEuLZIUNhKKpxY= + + + Headers/RCChannelClient.h + + hash + + zsEYQ3jOd+gcqFG5Vz7GGAfUR/o= + + hash2 + + YfEZmyFgF6SGwnYlaXs2jvxATO9WApXQrN/9aWyq7CY= + + + Headers/RCChannelIdentifier.h + + hash + + nWz4Ca4ugMOiK5IlEruEsvgpw+0= + + hash2 + + yC+E8aoGa2Cgiqq9N4LonWahC6LxO0BN66230k+dlsI= + + + Headers/RCClearConversationOption.h + + hash + + mcqMZNh9gKfCQ+5h14/5IHiO+ZQ= + + hash2 + + LuEL6rqvQB930g6/dCCKQZ9lO+5U0AqvNgSNNNC2q7w= + + + Headers/RCClearMessageOption.h + + hash + + 4TKSyWB6He/JF+a0wcaIeBG7Ypc= + + hash2 + + C6rzxO+h3hCLi/e99WvY3AZta9GQ5QT4WscL+uWcULg= + + + Headers/RCCombineMessage.h + + hash + + kg9Nw5Q+6IHfs3QpA7s6Ppo8pC8= + + hash2 + + gvZxjFw+6byg8aDMhklOCXi37tEkcRZpTbTO0yWnFr0= + + + Headers/RCCombineV2Message.h + + hash + + 9cbwQvwcnmJHCU33MmGkMX2xmpo= + + hash2 + + VXgJhWSKSPnnN4Y6D+V+DTE3XXorOuQ96PdXfdA+dGw= + + + Headers/RCCommandMessage.h + + hash + + RgebH9ZRCUELxJSeNTO6HMH0bzw= + + hash2 + + hrsEw+vXLAnphnP8SshGBsGTmA8P4UYKwhdQJ1QuhtE= + + + Headers/RCCommandNotificationMessage.h + + hash + + Cavd0ytlP87Po0JljLVlciPod7o= + + hash2 + + 9tG7aAxt+vJnSWQK9o70p9Ym8lBC8WE5VwG17Uhm+2g= + + + Headers/RCContactNotificationMessage.h + + hash + + 4aKENxAyRfx7TuxR8JadBdNunO4= + + hash2 + + f/GwOns3UeMBQuLW6CzNoMU9vFmIV61sIx52qmCvPbk= + + + Headers/RCConversation.h + + hash + + FS9X0ovlNbGDNdGHabvV9BvyFxU= + + hash2 + + So2hNe2wmkzkqHCV5EUJ0dWB7Q+8L5r9PlF2e/UErnQ= + + + Headers/RCConversationBatchDeletionParams.h + + hash + + ponae+uj+TJOwwQcu6pgjNWcppg= + + hash2 + + M/ROoEhxmVDmSWs1Rx81+gL3ggpR5k+j106q2Aq7aiQ= + + + Headers/RCConversationChannelProtocol.h + + hash + + 6V1FUR6wdSWWG9BSxaxipgTzPm0= + + hash2 + + H1ZG7ViD76W2EBURPnHUW5enGycmGAAcD0cuP6MA2l0= + + + Headers/RCConversationFilterOption.h + + hash + + q9PsKrvXEVXe3g0urBs4CvSLhpY= + + hash2 + + 2U/1YUhwK8kjb2m8glUCjATQ4P/rtvEq9jYptA61bhE= + + + Headers/RCConversationIdentifier.h + + hash + + qjXCn79G0gqktUyYwYPhsoLyn6Q= + + hash2 + + ghI/sGR/VwYjDA6IC3d3Oz2/e9kuUlyJymwsz22g9ag= + + + Headers/RCConversationStatusInfo.h + + hash + + l212y/YQ8ZLhgcLKXIP7n0DxETc= + + hash2 + + 246sm30JaKZGosGBpqjaqo8dbDFzmuZ6TC6V2zBU/0M= + + + Headers/RCConversationTagInfo.h + + hash + + XxkR16dtX6dQ/mC8dESozMyfSiw= + + hash2 + + 6np8kIJTjLK0vlYLY2BDcgFixYRo//wRpxt8YFIK+vo= + + + Headers/RCConversationTopOption.h + + hash + + vG+X02UlYaYTJNiEQj9ix+JkSv4= + + hash2 + + OzNUknLWOr0VsC4TUoxsB78eI7vl+1f8oPkZUIteiL8= + + + Headers/RCConversationUnreadInfo.h + + hash + + IymB9V3AzzgUR2w3+zFMa9/cI5U= + + hash2 + + rB5wO6qjSPGVZIAIu7U+r9IGcDD7wpsMC7iAWDj285E= + + + Headers/RCCoreClient+Deprecated.h + + hash + + IqKN7dwO/o2ygKtzz1TuNOEZRq4= + + hash2 + + ro/jo1t18ZkfeHQVy1oZEbLi4Y607m66SHicgDYHnZk= + + + Headers/RCCoreClient.h + + hash + + W89SpQCxLxmYgqKX/csV2alYBjc= + + hash2 + + dtd+NWzJer9lbJ8WYdBJb23hoZd2POMJUp7dXj/ej1k= + + + Headers/RCDownloadInfo.h + + hash + + ytwwjcn9LNMOyj8hpB1dKmk+f14= + + hash2 + + 9Bjj6B4DSLifteSiVFXeAQNEQ08aQEpBS2RForj2hTU= + + + Headers/RCDownloadItem.h + + hash + + ULSwE/T28Wd4Z6rm/6R7qyDxdyk= + + hash2 + + eji8gr2yJf6wZu8blyJ8uWPbN+ipFsVlo5dagMvGZ5k= + + + Headers/RCEditedMessageDraft.h + + hash + + aZnCDNKTwgvT4Xh328WkeqCNxkU= + + hash2 + + ov2AczzOSosPwOydKiUAj4w8yCelpvDUFwe/yoT8YUk= + + + Headers/RCErrorCode.h + + hash + + yOOXx4AiZioZfJK8+FSwKbi0oXY= + + hash2 + + nzHif/NBQsfpZBU2v+H2HR8vlpQVQBd69OA48Jq2xU0= + + + Headers/RCFileMessage.h + + hash + + K0oPxy9PNWXDMDP5slsYy6vQi58= + + hash2 + + I7Gvbu25kne6jAzpQlPkjvHU47sblmaaalRHsCo/rbE= + + + Headers/RCFileUtility.h + + hash + + 6diVzuwDxJjWSijXph7JjbqMhKE= + + hash2 + + SwzTgeuS1yxTLsJg9rsTDDekPi8SJDL5GukM9d65sRg= + + + Headers/RCFollowInfo.h + + hash + + r/4KJluyjZbPv9RuEYh3ll44iwA= + + hash2 + + e073yJzah/7R/poJHNBnNb7mtP5vQ9XLY07mgGAKEBk= + + + Headers/RCFriendApplicationInfo.h + + hash + + 8SEVHZNeHwgIVUCuUEIp9fjpYmw= + + hash2 + + jbZWZKbb5ANzqKiFh3bRnTqgWIsIwIyBD+8EIC7jeRk= + + + Headers/RCFriendEnum.h + + hash + + XJ/i0OhY8rXf9xGjt4EMolIzf9Y= + + hash2 + + QRw10tLPhbMa6o/03x+7xEFj89CPDa8+obkO0GZLYto= + + + Headers/RCFriendEventDelegate.h + + hash + + xMl1NSEZm/vhCGrcC44T5iMzPAg= + + hash2 + + 8KAbZ3qbjcxgSD2jnlHcJB6xiy1nzwsyPrym/KpFb+c= + + + Headers/RCFriendInfo.h + + hash + + CRJAJ6/CbwoVtH9aUO/HWBXtL5g= + + hash2 + + iZ/H3RjxVFPeQ+lG5iikExZNIzdrLgZ4Q5Q5qLRnKtk= + + + Headers/RCFriendRelationInfo.h + + hash + + DAYEhBKFYXHbYV9f5Aqa5XMiPRw= + + hash2 + + NmLjyMKba/mYybmaQTLEyS1Xu4c50y52FFOb3weNmd8= + + + Headers/RCFwLog.h + + hash + + 8B2y6W8PuPyw4wGl0dF1Cq3ROHw= + + hash2 + + l0haibF4MprKSRZbQ+q9n5ruhbBvx+qXzAUxNPxgkKY= + + + Headers/RCGIFMessage.h + + hash + + /ppI2bxIdHTOi+N6vfLX+MR9C4A= + + hash2 + + ERqI2XFAX59jkiJDJvc93oyDGxGWkzn7aEEGsrugVb4= + + + Headers/RCGetUnreadMentionMeConversationListParams.h + + hash + + 24nEe5UotEhC7BxJPAUZRfBOBXE= + + hash2 + + kHSCAmbvQFHYfI6AcPaSZWcJqj1+DvEGa58pZMIYUMk= + + + Headers/RCGroup.h + + hash + + kJdWQVlXSobcPaEmlZ7WVnTfplU= + + hash2 + + YeRDlbj7lJ8C9XAlPES34TdwDAfDRKJQT7mjF7Qgj88= + + + Headers/RCGroupApplicationInfo.h + + hash + + UGl7FDTkKBdl4tFS7aknzZ5kfhg= + + hash2 + + jnPjLJCnlW2CxYIX6p7BaPCacIJbUr6auKLGXcbUR/4= + + + Headers/RCGroupEnum.h + + hash + + +aIaMk9BlIOwOj66Iuz4DB7eXTM= + + hash2 + + k0HQVp3dQUym6YyfhLeFhEAGg8zTJnXITq99Zb3VgJY= + + + Headers/RCGroupEventDelegate.h + + hash + + Ebm+3goc0KuAM0/bG5Oyx73y55k= + + hash2 + + XU91o33+2CXT2uaIP0MAgwv8CYNZiebah3PCtsFQ/YI= + + + Headers/RCGroupInfo.h + + hash + + IQ0MD9bp6NkJaomuyEPkc6Ikly0= + + hash2 + + kE60qkCA+Owu3X/xdFr0PaQFP8u6qk7gYbcErt41buE= + + + Headers/RCGroupMemberInfo.h + + hash + + 6dVcyJzy2HINyJaHhWG8pOzczjE= + + hash2 + + cxON55NW7cYbS3lxGttBIQswKXPs+4QbmrzdlGOwWbA= + + + Headers/RCGroupMessageReaderV2.h + + hash + + Lk/kIyS6u+IffRBpL4iGPOR80zE= + + hash2 + + 2zcwg71M1tDudE+2QEJVG0R+ZebSA0ITE+XdRjXr0vA= + + + Headers/RCGroupNotificationMessage.h + + hash + + 5gmQFLL7djuNHYFKcV5inAU08KY= + + hash2 + + jbzaz/hiLk9CyGu0dJXy409fLTeK4TKMN2LpMx+4yBU= + + + Headers/RCGroupReadReceiptInfoV2.h + + hash + + KybBkFL1HVDsd3Kt7c6pRNpWmoM= + + hash2 + + GSTao2GfhTLQJd3p+GNDo4loUXf1cTORt7XD0httK3g= + + + Headers/RCGroupReadReceiptV2Manager.h + + hash + + rcRDhi962q2pWmF5H4an1bExWqg= + + hash2 + + Js0zgGpHXBPBeB8oqDPp50x+EfIlrCR3XFMcQfJ5C7w= + + + Headers/RCGroupReadReceiptV2Protocol.h + + hash + + Yc1nbKQeOKFobe9aGtF8oALCiZ4= + + hash2 + + 1gIbONvRr3XXkcBIdKeg4iZ7V21uTLXcENToJCyAXYU= + + + Headers/RCHQVoiceMessage.h + + hash + + H8eF/qopF0uhANVgxrsalxi3XJ4= + + hash2 + + BqVAHjIkJiOnL7QEuOVyk2PTf78sD3WgCAkcd2vHm4g= + + + Headers/RCHarmonyOSConfig.h + + hash + + Bk5r2thWw++U0lJm2OwVa86I96Y= + + hash2 + + KjLJia5NsxbPAp825EOa6B8ornUJ5g/bUEf36RKwwTg= + + + Headers/RCHistoryMessageOption.h + + hash + + i0Sf7+A7xqYM4xAJhG0Q6bat1vY= + + hash2 + + vv8ggqsMH6D3cIRY74R3Peu/Cytrmb9s9QNaBah5tMs= + + + Headers/RCIMClientProtocol.h + + hash + + zTLV5ITU8Qn07V58fxZsELDyIAk= + + hash2 + + MdBBs5Vw8KSETZiXXLxWswek5Q4tn+keaNzhJmpCNCg= + + + Headers/RCIMProxy.h + + hash + + hpm9Fte3GqFUyhDqhN/91K8GJt0= + + hash2 + + qml23QAiGEXCBlfk5ZBTI+13VmWhLYV87fjsiwB0Lbo= + + + Headers/RCImageCompressConfig.h + + hash + + cU2ulrIG1gcXQEo25OtmGSBVARc= + + hash2 + + uYR02p17OcwEcVFIQekhRIWAS3fJFAM7Lp/9qrqq7EM= + + + Headers/RCImageMessage.h + + hash + + FfkTCd3fBNZoH3A/oszzJsDQas8= + + hash2 + + jtxJ3TdJZFEuSTh9jiGPpIVxqkb1uWJpTMD5VXIZbVk= + + + Headers/RCInformationNotificationMessage.h + + hash + + LEQ08NsOLaNf7h9RqWVoeJQuEO0= + + hash2 + + gZpiP6jMLSllVxVykluSZVWKxkJ0vhsItU5llzdTWt8= + + + Headers/RCInitOption.h + + hash + + Q+8RVgLx9mKsVlJLnT5NLL2qbYo= + + hash2 + + ALu/qWkqBdbUZY9bv85HDvYHPAR5YJFVqIe9Lehbuvk= + + + Headers/RCLocalConfiguration.h + + hash + + 4Zuj8FDB1f66w/WrOBGi/JnC2Z4= + + hash2 + + c6IV9mEM3BMi/HIkZwNL1tKi1wUFxBfHe2dT1okwm2U= + + + Headers/RCMediaMessageContent.h + + hash + + hZTn4OscwK8l5F8bGN5AIZ/QeYo= + + hash2 + + SojOHf0d1E3MaQcmuSyw1BuztPwIZzYgjrHLY/qkaqM= + + + Headers/RCMentionedInfo.h + + hash + + FGCpXD+OKYVMg/3XyM3JvLPY97w= + + hash2 + + OA3sVERqlHxoGbTuBPlvIh44PaO0AFPsQmJP3EKlIX0= + + + Headers/RCMessage+RCDeprecated.h + + hash + + ubOdPYwxdgbIu1DKUfPUaIPxWLU= + + hash2 + + /TIHY9IVGx7E/Do6NujIHtU1URnlO/5Uv3FVEdIu484= + + + Headers/RCMessage.h + + hash + + RvSx/iSWy/KEBTK5GzmSEX5oIpo= + + hash2 + + FdVcTfJ30WDKUVfRiy4VpSOfJAwS8WO1qKWqF7vVssU= + + + Headers/RCMessageAuditInfo.h + + hash + + ZRG0us9qa4IZbSVYA0glLbB8Zc0= + + hash2 + + ZAOVDGhUNWnIfkI0WL2cGO1w2jswIWkBWzy6Rce/R+g= + + + Headers/RCMessageConfig.h + + hash + + wRM5H55Etiz05JVnyBYiODDTOQo= + + hash2 + + Zc09C0W5f+KBPMAPeCxVX0UquX0ejTZiDG33aQnQaVs= + + + Headers/RCMessageContent.h + + hash + + 7UZvhNdKgMmp76yTcN4iZ1B/85o= + + hash2 + + tWD4PnJI5RciDPTTdf1wi2th++xN2it6rtc/dEc3G00= + + + Headers/RCMessageDigestInfo.h + + hash + + vwoiJ24qHkwU+vBirmz0A9pF0GA= + + hash2 + + /iJ+q6w+cf+qW+xj7P6hfRiG3+uBfp/lJLR4AkLH5P0= + + + Headers/RCMessageIdentifier.h + + hash + + 0P93XhqW0vFR9Af4kzrfOeF3GyI= + + hash2 + + kA7PS6t36rtSffP09iyKC9M+tO5YZfUiMclqtkdmn7g= + + + Headers/RCMessageModifyInfo.h + + hash + + 7n8pWzhEOkgQzzE6XW7TOpaX+ZM= + + hash2 + + yr9XpRmwA0mAcJi1WHJmiwET9u4aVFnu7/f+wmQsmx4= + + + Headers/RCMessagePushConfig.h + + hash + + RoZcF78FoAY3i94NlQoHV52MXZ0= + + hash2 + + kDGYEfFUGgVFiA2vkoeyv9KwlhEarhTG/u1Y3dYj3hw= + + + Headers/RCMessageResult.h + + hash + + KWK/ydltlWQCmE3hgk+pbr5Pfyk= + + hash2 + + jRhYoRSaPSxvAYvCv8e7Jz4UXnjSexEz3tS1nTcR0PQ= + + + Headers/RCModifyMessageParams.h + + hash + + nm/Pm52Z5EmjgvG+Xt7aIKD+rkI= + + hash2 + + XwGwJ72DRqB16hyI40Nh3xBdDi2E8HiM/3K1jNnBdag= + + + Headers/RCNotificationQuietHoursSetting.h + + hash + + K7ldecAnoV3QFqNILK7AFWI+u6Y= + + hash2 + + b+Pd+GhdnuZqm1HVS9qTAXRYoMbGW2SQ8BAdOMPpUA0= + + + Headers/RCPagingQueryOption.h + + hash + + bZm3vEM942gZ+PS+hJR0jffagkQ= + + hash2 + + LFOAFupVl4vB+WPJBTnFSex0BWYhqwLXP9mbvNQCsdU= + + + Headers/RCPagingQueryResult.h + + hash + + nuzxXjO/p59hpjirj87Wt8nabJA= + + hash2 + + joM04K8nDUalA2i3iLSRX+TAOOfTQ/8kHs0ec4k3120= + + + Headers/RCPlatformOnlineStatus.h + + hash + + 8Bv5vsvy4tuL1WX+nDM6gB8bjwE= + + hash2 + + L3E2iV+Yw8+R0nWC+1zRMMCWSPRJl/EO7qxbl4ljMXA= + + + Headers/RCProfileNotificationMessage.h + + hash + + Wz9UNEmswI8NOPILnOjnBEUcrFY= + + hash2 + + 5Pm7lath4a1YrJQ2uEUdPvEW0yxStzfMrkp1o47FdS8= + + + Headers/RCPushProfile.h + + hash + + SgRcqwyaxP7kb5Yer5YeyXcpgaE= + + hash2 + + DCKy+NjeHsArEe+0INk0EKijiPXcbP62j6hNci6eGWE= + + + Headers/RCQuitGroupConfig.h + + hash + + WNS95tKmh118SD7hfOu5/KVflYE= + + hash2 + + tdROvLJwvwXMIyiwJuaDl+18iOwX7hPR3e7fqfaZuqM= + + + Headers/RCReadReceiptDefine.h + + hash + + pDN6qM9Z0VVApbq51g6bi/6HK+E= + + hash2 + + sS4sOK8WjGR+LfwNfOIMfJJ6dcuFFIB8j/vd4FE1TYM= + + + Headers/RCReadReceiptInfo.h + + hash + + BjA61P6kB0BUTpgSFs1XNmeAOtM= + + hash2 + + JRKOiCqLwGPLrel9qDH9Khe1+AvS/4YrC1EdPMPFa+g= + + + Headers/RCReadReceiptInfoV5.h + + hash + + mLdraZt+jhFQd1AcHJgkkof/iSY= + + hash2 + + BT6pnq/V5JoTuxRZ3pQuYN8ASTJvu7QfliobhtegRWU= + + + Headers/RCReadReceiptMessage.h + + hash + + Dia3W3/TzOv+IbNN7y0q4Nr4NdY= + + hash2 + + AqBwmV/KWyoVg+QdTk/uj0sx4LKi1UyD7jhRUfkfqQg= + + + Headers/RCReadReceiptResponseV5.h + + hash + + kfcJKGWmKmjmBBMxP3LUKCzWlZ8= + + hash2 + + xs8QyjkaenF3KF7lVUEb1SyLEv21zl1bBB6qovW0Vpk= + + + Headers/RCReadReceiptUser.h + + hash + + 2dZGtvCiV1yyYmLLuekkSKJV34Q= + + hash2 + + 1HB2wnSdAIWj1XHbyp7oxz2bqo2t+co+Bbz3Skync5M= + + + Headers/RCReadReceiptUsersOption.h + + hash + + WcbUjeolvUi9BJ2ELwKTP2cGadM= + + hash2 + + StZ2eOdZOC7jKH9lby1lPyaukKmJG7NTiO5xhVabRI8= + + + Headers/RCReadReceiptUsersResult.h + + hash + + jfye3njfxqmW0z46IGVdXszYFzo= + + hash2 + + WrK5kPV0QYYMp14Qus/SSr7KjnAWxLSUQYpYLDyh4Ho= + + + Headers/RCRecallMessageOption.h + + hash + + E2iT8wECVBY7LFf+rHZ+i57pUPM= + + hash2 + + VuRkDJYOlQaW2QeFCONo0N2kQQ9EdhJhowUaV38uGe0= + + + Headers/RCRecallNotificationMessage.h + + hash + + 0VouquBfZuBV1S0SZ3A1Q50gF1k= + + hash2 + + Y+9Wt/R+eMcCaiT/ddhM35b+P0Ag8MAz1nWqGOSQdEg= + + + Headers/RCReceivedStatusInfo.h + + hash + + wK9ftjsrNjsF649XHOp35m4j3yI= + + hash2 + + 8kqvuiRU6S95fhd5tTxhix49ABLdg+xeyFvTeqHc5Qs= + + + Headers/RCReferenceMessage.h + + hash + + Bdn+cCdml+RnNC0zW8Jj9lxUOqs= + + hash2 + + tGd31CycEEpjKUbH45qfmK1/Iq7fOPQWYqiaIT0PoDs= + + + Headers/RCRefreshReferenceMessageParams.h + + hash + + gP1JHQ1flcuu5XTzzmK899fI5AA= + + hash2 + + X3+DC0ZUCB3vDbks/r++SgexgA0Ang+HsmJELwVsW14= + + + Headers/RCRemoteHistoryMsgOption.h + + hash + + lmRsVkORCuxEKiXoGNfeS0fJtfE= + + hash2 + + 0tFdPt7vk2+CYMjd0r8qhdPdYhjn8+gxl031/5iVQMU= + + + Headers/RCResumableDownloader.h + + hash + + sxasiblopOpBofb6wl0GM14iRTw= + + hash2 + + 32kSHOftjF8gr2mH0sOa5sKc2RTj/ljAlbG2W3xQYhY= + + + Headers/RCRichContentMessage.h + + hash + + HSlsLBqf2wM2YhFXDsxhoIGtHt0= + + hash2 + + pHSLXdoE4BwE7pZjm/3T0AONsi3f5O098YEuUZLZP0c= + + + Headers/RCSearchConversationResult.h + + hash + + i+8skWh0/dAa/QZIEOAOZ0//Utk= + + hash2 + + cYYX2APqsLTGxSsWX67tTHRYuSef/DmjRjrvnoxoW7w= + + + Headers/RCSearchMessageParams.h + + hash + + gFNtbC325Nk8u5i+vwTaPM0FbqE= + + hash2 + + k7RhSedrgazWY44aAyofaNGkP0mKn0bKmWo0zvEFFFE= + + + Headers/RCSendMessageOption.h + + hash + + vZYhTKMFd5wWpo7fneO9VzMmz8I= + + hash2 + + 0s1pSwd0/x347/+abfincu1EPZoRYmrMOvRAV859kj8= + + + Headers/RCSightMessage.h + + hash + + X+C2pbi8+J4ha/YfJw22dRNGMU8= + + hash2 + + UGCvVddFO/v1JHahQvD4aHJtiPvmYDonRxJoEOypdSg= + + + Headers/RCSpeechToTextDelegate.h + + hash + + sop1nGAXkwe0IB/q5JRrxnjR7uY= + + hash2 + + 7OKTh0Mt4VAMYg9WXXK1kkW9o3pMwvHqdqcZ5P6rSWs= + + + Headers/RCSpeechToTextInfo.h + + hash + + OB5csfnHYyXaRcyKlk3eCOafCYk= + + hash2 + + +h3hSPONWLt80QOP79I82DhVZqz/E9RU7MJuJvrSkf8= + + + Headers/RCStatusDefine.h + + hash + + lV8AfCG1Qbyu8IFFx0KzI1NYE6M= + + hash2 + + WPo9D37uDIN+Dx50lW2c039mpZr9ub2QG/ShMZw6+CA= + + + Headers/RCStatusMessage.h + + hash + + P94OlVPKVgaUGy2pEXCd95cyuqQ= + + hash2 + + h/VdKlgZ9R6c64EsPQIwgGdzxawu9FYGPciOeBp5NLM= + + + Headers/RCStreamMessage.h + + hash + + vZWFYWtvv0pBfRoa6Ru2zJQ4rYU= + + hash2 + + VLFFQW+sdsFZzRj3E6lxZNfnlYZccAxwGfNl+ekvklU= + + + Headers/RCStreamMessageRequestParams.h + + hash + + w000YnuNYNEfriyHTzoGZwNpIsc= + + hash2 + + b3uD2X2d7r7erRrV3VIblKvlAxvJbQyGrIBOOJ78bv8= + + + Headers/RCSubscribeEvent.h + + hash + + 49tBHU0wrnB1kr04uqzMafMn86U= + + hash2 + + EmKXUl9mG5vRBtyboL+Fdak18MA9uK867KYUzK3DJLc= + + + Headers/RCSubscribeEventDelegate.h + + hash + + QYJUhfM6s6m1AiDOHf5f+1QO+Js= + + hash2 + + D/NvoVQbX63jrmDA87qxHmtmoQlEpzOPP6TIuSKgzXM= + + + Headers/RCSubscribeEventRequest.h + + hash + + gsyQnRSrRRxwuzzKWkD/zs/OIf4= + + hash2 + + QDOvAp4kyQj8usD22sQ5M90XBJCDwPzLqPE/3PNArNE= + + + Headers/RCSubscribeInfoEvent.h + + hash + + 1voUtCRQEMiM4rQxZZ/qngib0VE= + + hash2 + + NfpTvcJNS/9R9eRrFr9eFaFbKeGClhFDcZdPWXAryB4= + + + Headers/RCSubscribeUserOnlineStatus.h + + hash + + GCM6/B6Ai4/TwJDVfiwd+BJ94kg= + + hash2 + + qy+Aoq/WzOzJshm0gSJZCE41wrssNyk8PCqddeeT3jE= + + + Headers/RCSyncReadStatusMessage.h + + hash + + rOK9R+AuubDomCZXpqSdE3eJsQ4= + + hash2 + + zhhVcI4TU9hcurED7wdw6sfadeATWc1WHYRRrPuKGxo= + + + Headers/RCTSMutableDictionary.h + + hash + + jDwg6+vz1oiQVAR8rylZyQUSfK8= + + hash2 + + KRU/Hh+W2dYmgt4uXcZjLo21J3Jbtrc0Oh4GyXM7naM= + + + Headers/RCTagInfo.h + + hash + + p7rPeSNHVdQcQR6fJXAVZPT86Sw= + + hash2 + + oPAJVYAB3gCbfyPqHhfbTHKL7UudfGepNAxamr4AsjE= + + + Headers/RCTagProtocol.h + + hash + + BFLVwfm0FHWRN5biLOgcxIhYURc= + + hash2 + + ttEShEtsKqwoRProd2PyhjToDnr+TKej+80ggfTon40= + + + Headers/RCTextMessage.h + + hash + + 3Ma5W8NxEHZ45IrG9N1NEhqqrXQ= + + hash2 + + GrsUkxk0ZGHV8YO7HYAHUZotEFWOJ7FMXY3pfAejjoY= + + + Headers/RCTranslateParams.h + + hash + + 6lysy389WHmVNbJVrUp+UbiW3uQ= + + hash2 + + NvHRycrcSnyO0fDPecmHgFdJXUtMCAUiaymmafP+gnE= + + + Headers/RCTranslateResult.h + + hash + + eecCBRzYh223UMkmYwGUgeRsqcc= + + hash2 + + /JNdt9H1nub+yJp8VvMpLErAbG88hmLd+qpTPTk+ZQs= + + + Headers/RCTranslationDelegate.h + + hash + + N3ZBIVijSeFW7NjOQoLdHJkVCFg= + + hash2 + + HHDqaBDdhzInY1ukXrtgGKJjVSTglVppjFeyQBASSX8= + + + Headers/RCUltraGroupChannelChangeInfo.h + + hash + + jhPlFGwARUgefwHARqglUUp685o= + + hash2 + + GqIBda6hWKPk758myqr443lsEPQrUJ7UtHRb7WRsB+s= + + + Headers/RCUltraGroupTypingStatusInfo.h + + hash + + B8jG7T1gLl60w/MRHBDcLjw3zCU= + + hash2 + + DqzPTe7y08QKy/scjfJA2t5v3Qj9OgwqEC7KTVY6Yhk= + + + Headers/RCUnknownMessage.h + + hash + + YOwhnm47VSNfvWvSKsabBSsCt68= + + hash2 + + vEwYzAX00kptL5jzc+Cki2oRvnm9O+ByJBCUoLvaoCs= + + + Headers/RCUploadImageStatusListener.h + + hash + + g4xZbnDQQOqY93kpMVTrsZO4ftk= + + hash2 + + CIBJlCuKsJ9Jbp8Dkf1Xr3gVF0v/ZHdmKIi0oHpMeUw= + + + Headers/RCUploadMediaStatusListener.h + + hash + + ZgPOmadlM9LnCWp8Mgk6sv5tMw8= + + hash2 + + 1tamIiW2yJaqcCVIkYmFFiq8E480rtlMYHPmZk+AE9A= + + + Headers/RCUserGroupStatusDelegate.h + + hash + + RYlyb8saCJ5o7tjINcBqx5uZU0M= + + hash2 + + q82Nads5zEs9oHW5GWsHqEZXVa9oa/a0WQwaPIj2UGI= + + + Headers/RCUserInfo.h + + hash + + KlG2CJN3rvM4B8Y7TL3i+PWjpZk= + + hash2 + + LMGn9TE31ZzRHFCI+NEmagF8ZqqGUIBeo8Qul+22YTM= + + + Headers/RCUserOnlineStatusInfo.h + + hash + + klP21ai00PZSp1GN6i34ggMLhCM= + + hash2 + + 7eNgeeLgJoRcGIXOjnVl2zl8LBCeW67Dg+js1NMMOWs= + + + Headers/RCUserProfile.h + + hash + + lnWdB5GSURZKYp+6DfyBSHyuWMM= + + hash2 + + ovM22NGWpHjhrrmCKEIBYKx5lL6hkm8EgqR5XgQslKY= + + + Headers/RCUserTypingStatus.h + + hash + + 7ThJ44lZHCxDOWuir/QobNx798s= + + hash2 + + vs34wV+gxlK8Rh3Td0WKfeIlYNi+JbR87+YUCh1wx5I= + + + Headers/RCUtilities.h + + hash + + 8vOaN6WjU+/xVQLAjxHPxwo8tL4= + + hash2 + + Ct5WQ+v2lmCpCBNRCaukNwusfJ6TLg1spam9pYgvLp8= + + + Headers/RCVoiceMessage.h + + hash + + ijxtmnlQ0VF4Tg475EH8FNr+LEM= + + hash2 + + 5ZJshujJZqbTo+TsV3k3udaH92O8Dflt7VR7dMziWXk= + + + Headers/RCiOSConfig.h + + hash + + BTWND4G0iAIDAvH3tjvPiKu+ETc= + + hash2 + + KAyrYwZQ3xH3FFilBojjdr8UewkpKliMBaTn5Wg3oPU= + + + Headers/RongIMLibCore.h + + hash + + 7hdrRm9Uv979YkuDIpRAec2yZB4= + + hash2 + + pf4QSxhLa9783xu9/tDvArY2bz/gbW5M9q2llCNoQKs= + + + Modules/module.modulemap + + hash + + H1rer/SL6j8CPbSoGiUA4HpEz6Q= + + hash2 + + SmT6rIo46jrL5oVu0v0y8QH83cqHbgW6VoKiosRQ8RQ= + + + PrivacyInfo.xcprivacy + + hash + + mfQ59F/rNdxqeWFAJiAE3X48yb4= + + hash2 + + 8GxtE+V8O8G8hEs3RJRgSskKP1TR2yd9qLNOMnP9WRY= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/Info.plist new file mode 100644 index 0000000..3e2069d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/Info.plist @@ -0,0 +1,43 @@ + + + + + AvailableLibraries + + + BinaryPath + RongIMWrapper.framework/RongIMWrapper + LibraryIdentifier + ios-x86_64-simulator + LibraryPath + RongIMWrapper.framework + SupportedArchitectures + + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + BinaryPath + RongIMWrapper.framework/RongIMWrapper + LibraryIdentifier + ios-arm64 + LibraryPath + RongIMWrapper.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWBlockedMessageInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWBlockedMessageInfo.h new file mode 100644 index 0000000..7ff5513 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWBlockedMessageInfo.h @@ -0,0 +1,46 @@ +// +// RCIMIWBlockedMessageInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/20/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWChatRoomMemberAction.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWChatRoomMemberAction.h new file mode 100644 index 0000000..5b9456d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWChatRoomMemberAction.h @@ -0,0 +1,27 @@ +// +// RCIMIWChatRoomMemberAction.h +// RongIMWrapper +// +// Created by RongCloud on 2/23/22. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCommandMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCommandMessage.h new file mode 100644 index 0000000..da65d2d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCommandMessage.h @@ -0,0 +1,36 @@ +// +// RCIMIWCommandMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCommandNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCommandNotificationMessage.h new file mode 100644 index 0000000..e8ca973 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCommandNotificationMessage.h @@ -0,0 +1,36 @@ +// +// RCIMIWCommandNotificationMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCompressOptions.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCompressOptions.h new file mode 100644 index 0000000..3cda83a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCompressOptions.h @@ -0,0 +1,43 @@ +// +// RCIMIWCompressOptions.h +// RongIMWrapper +// +// Created by RongCloud on 3/21/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWConversation.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWConversation.h new file mode 100644 index 0000000..75392a7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWConversation.h @@ -0,0 +1,73 @@ +// +// Created by RongCloud on 2/16/22. +// + +#import +#import + +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWConversationTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWConversationTagInfo.h new file mode 100644 index 0000000..ef23a39 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWConversationTagInfo.h @@ -0,0 +1,27 @@ +// +// RCIMIWConversationTagInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/10/22. +// + +#import +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCustomMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCustomMessage.h new file mode 100644 index 0000000..bb98a1c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWCustomMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWCustomMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWCustomMessage : RCIMIWMessage + +@property (nonatomic, copy, readonly) NSString *identifier; + +@property (nonatomic, assign, readonly) RCIMIWCustomMessagePolicy policy; + +/*! + 消息字段 + */ +@property (nonatomic, strong, readonly) NSDictionary *fields; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWDefines.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWDefines.h new file mode 100644 index 0000000..3e9e172 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWDefines.h @@ -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 */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngine.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngine.h new file mode 100644 index 0000000..51d9849 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngine.h @@ -0,0 +1,1902 @@ +// +// RCIMIWEngine.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +@class RCIMIWEngineOptions; +@class RCIMIWCompressOptions; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWEngine : NSObject + +- (void)setEngineDelegate:(nullable id )delegate; + +#pragma mark - 初始化 + ++ (instancetype)create:(NSString *)appKey; + ++ (instancetype)create:(NSString *)appKey options:(RCIMIWEngineOptions *)options; + +- (void)destroy; + +#pragma mark - 日志等级 + +- (NSInteger)changeLogLevel:(RCIMIWLogLevel)level; + +#pragma mark - 连接 + +- (NSInteger)connect:(NSString *)token +__deprecated_msg("Use [RCIMIWEngine connect:databaseOpened:connected:] instead"); + +- (NSInteger)connect:(NSString *)token + databaseOpened:(nullable void (^)(NSInteger code))databaseOpenedBlock + connected:(nullable void (^)(NSInteger code, NSString *userId))connectedBlock; + +- (NSInteger)connect:(NSString *)token + timeout:(int)timeout +__deprecated_msg("Use [RCIMIWEngine connect:timeout:databaseOpened:connected:] instead"); + +- (NSInteger)connect:(NSString *)token + timeout:(int)timeout + databaseOpened:(nullable void (^)(NSInteger code))databaseOpenedBlock + connected:(nullable void (^)(NSInteger code, NSString *userId))connectedBlock; + +- (NSInteger)disconnect; + +- (NSInteger)disconnect:(BOOL)receivePush; + +#pragma mark - 消息创建/注册 + +- (NSInteger)registerCustomMessage:(NSArray *)messageContentClassList; + +/// 注册原生自定义普通消息 +/// +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter persistentFlag: 消息存储策略 +/// - Returns: 接口调用状态 +- (NSInteger)registerNativeCustomMessage:(NSString *)messageIdentifier persistentFlag:(RCIMIWNativeCustomMessagePersistentFlag)persistent; + +/// 注册原生自定义媒体消息 +/// +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter persistentFlag: 消息存储策略 +/// - Returns: 接口调用状态 +- (NSInteger)registerNativeCustomMediaMessage:(NSString *)messageIdentifier persistentFlag:(RCIMIWNativeCustomMessagePersistentFlag)persistent; + +- (RCIMIWTextMessage *)createTextMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + text:(NSString *)text; + +- (RCIMIWImageMessage *)createImageMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path; + +- (RCIMIWFileMessage *)createFileMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path; + +- (RCIMIWSightMessage *)createSightMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path + duration:(int)duration; + +- (RCIMIWVoiceMessage *)createVoiceMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path + duration:(int)duration; + +- (RCIMIWCustomMessage *)createCustomMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + policy:(RCIMIWCustomMessagePolicy)policy + messageIdentifier:(NSString *)messageIdentifier + fields:(NSDictionary *)fields; + +- (RCIMIWGIFMessage *)createGIFMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path; + +- (RCIMIWReferenceMessage *)createReferenceMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + referenceMessage:(RCIMIWMessage *)referMessage + text:(NSString *)referenceString; + +- (RCIMIWLocationMessage *)createLocationMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + longitude:(double)longitude + latitude:(double)latitude + poiName:(NSString *)poiName + thumbnailPath:(NSString *)thumbnailPath; + +/// 创建原生自定义普通消息 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter fields: 消息内容 +- (RCIMIWNativeCustomMessage *)createNativeCustomMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageIdentifier:(NSString *)messageIdentifier + fields:(NSDictionary *)fields; + +/// 创建原生自定义媒体消息 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter path: 媒体文件路径 +/// - Parameter fields: 消息内容 +- (RCIMIWNativeCustomMediaMessage *)createNativeCustomMediaMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageIdentifier:(NSString *)messageIdentifier + path:(NSString *)path + fields:(NSDictionary *)fields; + +#pragma mark - 发送消息 + +- (NSInteger)sendMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine sendMessage:messageSaved:messageSent:] instead"); + +- (NSInteger)sendMessage:(RCIMIWMessage *)message + messageSaved:(nullable void (^)(RCIMIWMessage *message))messageSavedBlock + messageSent:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageSentBlock; + +- (NSInteger)sendMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine sendMediaMessage:messageSaved:messageSending:sendingMediaMessageCanceled:messageSent:] instead"); + +- (NSInteger)sendMediaMessage:(RCIMIWMediaMessage *)message + messageSaved:(nullable void (^)(RCIMIWMediaMessage *message))messageSavedBlock + messageSending:(nullable void (^)(RCIMIWMediaMessage *message, NSInteger progress))messageSendingBlock + sendingMediaMessageCanceled:(nullable void (^)(RCIMIWMediaMessage *message))sendingMediaMessageCanceledBlock + messageSent:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))messageSentBlock; + +- (NSInteger)cancelSendingMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine cancelSendingMediaMessage:cancelSendingMediaMessageCalled:] instead"); + +- (NSInteger)cancelSendingMediaMessage:(RCIMIWMediaMessage *)message + cancelSendingMediaMessageCalled:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))cancelSendingMediaMessageCalledBlock; + +- (NSInteger)sendTypingStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + currentType:(NSString *)currentType; + +- (NSInteger)sendTypingStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + currentType:(NSString *)currentType; + +/*! + 发送定向消息 + + @param userIds 接收消息的用户 ID 列表 + + @return 发送的消息实体 + + @discussion 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + @discussion userIds 的用户个数不能超过 300,超过会被截断。 + + @warning 此方法目前仅支持普通群组。 + + @remarks 消息操作 + */ +- (NSInteger)sendGroupMessageToDesignatedUsers:(RCIMIWMessage *)message userIds:(NSArray *)userIds +__deprecated_msg("Use [RCIMIWEngine sendGroupMessageToDesignatedUsers:messageSaved:messageSent:] instead"); + +- (NSInteger)sendGroupMessageToDesignatedUsers:(RCIMIWMessage *)message userIds:(NSArray *)userIds + messageSaved:(nullable void (^)(RCIMIWMessage *message))messageSavedBlock + messageSent:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageSentBlock; + +#pragma mark - 下载媒体消息 + +- (NSInteger)downloadMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine downloadMediaMessage:mediaMessageDownloading:downloadingMediaMessageCanceled:mediaMessageDownloaded:] instead"); + +- (NSInteger)downloadMediaMessage:(RCIMIWMediaMessage *)message + mediaMessageDownloading:(nullable void (^)(RCIMIWMediaMessage *message, NSInteger progress))mediaMessageDownloadingBlock + downloadingMediaMessageCanceled:(nullable void (^)(RCIMIWMediaMessage *message))downloadingMediaMessageCanceledBlock + mediaMessageDownloaded:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))mediaMessageDownloadedBlock; + +- (NSInteger)cancelDownloadingMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine cancelDownloadingMediaMessage:cancelDownloadingMediaMessageCalled:] instead"); + +- (NSInteger)cancelDownloadingMediaMessage:(RCIMIWMediaMessage *)message + cancelDownloadingMediaMessageCalled:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))cancelDownloadingMediaMessageCalledBlock; + +#pragma mark - 获取历史消息 + +// +/*! + 获取远端+本地的消息 + + @param sentTime 起始的消息发送时间戳,毫秒 + @param order sentTime 时间的前后顺序 + RCIMIWOrderBefore: 结合传入的时间戳参数,获取 sentTime 之前的消息 (时间递减) + RCIMIWOrderLater: 结合传入的时间戳参数,获取 sentTime 之后的消息 (时间递增) + @param count 需要获取的消息数量, 0 < count <= 20,超过 20 条 只会加载 20条 + */ +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:sentTime:order:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:channelId:sentTime:order:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取指定 policy 类型的消息 + + @param sentTime 起始的消息发送时间戳,毫秒 + + @param order sentTime 时间的前后顺序 + RCIMIWOrderBefore: 结合传入的时间戳参数,获取 sentTime 之前的消息 (时间递减) + RCIMIWOrderLater: 结合传入的时间戳参数,获取 sentTime 之后的消息 (时间递增) + + @param count 需要获取的消息数量 + 0 < count <= 20,超过 20 条 只会加载 20条 + policy 为 RCIMIWLoadMessagePolicyLocal 时, count 数量不受限制 + + @param policy 加载策略(本地、远端、本地+远端) + */ +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:sentTime:order:policy:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:channelId:sentTime:order:policy:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedMessages:targetId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedMessages:targetId:channelId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getFirstUnreadMessage:targetId:success:error:] instead"); + +- (NSInteger)getFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(RCIMIWMessage *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getFirstUnreadMessage:targetId:channelId:success:error:] instead"); + +- (NSInteger)getFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWMessage *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)getMessageById:(long)messageId + success:(nullable void (^)(RCIMIWMessage *message))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)getMessageByUId:(NSString *)messageUId + success:(nullable void (^)(RCIMIWMessage *message))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 插入消息 + +/*! + 插入一条消息, + 可设置消息的方向(messageDirection)为 发送(RCIMIWMessageDirectionSend)或 接收(RCIMIWMessageDirectionReceive), + 同时 必须 设置消息方向对应的 发送状态(sentStatus)或 接收状态(receivedStatus) + + @param message 默认创建出来 message 的 messageDirection 是 RCIMIWMessageDirectionSend + @return 接口调用状态 + */ +- (NSInteger)insertMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine insertMessage:messageInserted:] instead"); + +- (NSInteger)insertMessage:(RCIMIWMessage *)message + messageInserted:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageInsertedBlock; + +- (NSInteger)insertMessages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine insertMessages:messagesInserted:] instead"); + +- (NSInteger)insertMessages:(NSArray *)messages + messagesInserted:(nullable void (^)(NSInteger code, NSArray *messages))messagesInsertedBlock; + +#pragma mark - 删除消息 + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:timestamp:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +/*! + 清除历史消息 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @param timestamp 清除消息时间戳,【0 <= timestamp <= 当前会话最后一条消息的 sentTime. + 0 清除所有消息,其他值清除小于等于 recordTime 的消息】 + + @discussion + 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 + + @remarks 消息操作 + */ +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:channelId:timestamp:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:timestamp:policy:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +/*! + 清除历史消息 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @param timestamp 清除消息时间戳,【0 <= timestamp <= 当前会话最后一条消息的 sentTime,0 + 清除所有消息,其他值清除小于等于 recordTime 的消息】 + @param policy 删除策略( + RCIMIWLoadMessagePolicyLocal: 删除本地; + RCIMIWLoadMessagePolicyRemote: 删除远端; + RCIMIWLoadMessagePolicyLocalRemote: 同时删除本地和远端) + + @discussion + 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 + 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 并设置 policy 为 RCIMIWLoadMessagePolicyLocalRemote + 清除消息,成功后只能获取该时间戳之后的历史消息。如果 policy 传 RCIMIWLoadMessagePolicyLocal,只会清除本地消息。 + + @remarks 消息操作 + */ +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:channelId:timestamp:policy:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +- (NSInteger)deleteLocalMessages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine deleteLocalMessages:localMessagesDeleted:] instead"); + +- (NSInteger)deleteLocalMessages:(NSArray *)messages + localMessagesDeleted:(nullable void (^)(NSInteger code, NSArray *messages))localMessagesDeletedBlock; + +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine deleteMessages:targetId:messages:messagesDeleted:] instead"); + +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + messages:(NSArray *)messages + messagesDeleted:(nullable void (^)(NSInteger code, NSArray *messages))messagesDeletedBlock; + +/*! + 批量删除某个会话中的指定消息(同时删除本地和远端消息) + + @param type 会话类型,不支持聊天室 + @param targetId 目标会话ID + @param channelId 所属会话的业务标识 + @param messages 将被删除的消息列表 + + @discussion 此方法会同时删除本地和远端消息。 + 一次批量操作仅支持删除属于同一个会话的消息,请确保消息列表中的所有消息来自同一会话 + 一次最多删除 100 条消息。 + */ +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine deleteMessages:targetId:channelId:messages:messagesDeleted:] instead"); + +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages + messagesDeleted:(nullable void (^)(NSInteger code, NSArray *messages))messagesDeletedBlock; + +#pragma mark - 撤回消息 + +- (NSInteger)recallMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine recallMessage:messageRecalled:] instead"); + +- (NSInteger)recallMessage:(RCIMIWMessage *)message + messageRecalled:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageRecalledBlock; + +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine sendPrivateReadReceiptMessage:timestamp:privateReadReceiptMessageSent:] instead"); + +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + timestamp:(long long)timestamp + privateReadReceiptMessageSent:(nullable void (^)(NSInteger code))privateReadReceiptMessageSentBlock; + +/*! + 发送某个单聊会话中消息阅读的回执 + + @discussion 此接口只支持单聊。收到远端消息已读回执之后,会回调 delegate 中的 onRemoteConversationReadStatusSynced 方法。 + */ +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine sendPrivateReadReceiptMessage:channelId:timestamp:privateReadReceiptMessageSent:] instead"); + +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + privateReadReceiptMessageSent:(nullable void (^)(NSInteger code))privateReadReceiptMessageSentBlock; + +#pragma mark - 消息扩展 + +- (NSInteger)updateMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion +__deprecated_msg("Use [RCIMIWEngine updateMessageExpansion:expansion:messageExpansionUpdated:] instead"); + +- (NSInteger)updateMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion + messageExpansionUpdated:(nullable void (^)(NSInteger code))messageExpansionUpdatedBlock; + +- (NSInteger)removeMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys +__deprecated_msg("Use [RCIMIWEngine removeMessageExpansionForKeys:keys:messageExpansionForKeysRemoved:] instead"); + +- (NSInteger)removeMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys + messageExpansionForKeysRemoved:(nullable void (^)(NSInteger code))messageExpansionForKeysRemovedBlock; + +#pragma mark - 修改消息接收、发送状态 + +- (NSInteger)changeMessageReceiveStatus:(long)messageId + receivedStatus:(RCIMIWReceivedStatus)receivedStatus +__deprecated_msg("Use [RCIMIWEngine changeMessageReceiveStatus:receivedStatus:messageReceiveStatusChanged:] instead"); + +- (NSInteger)changeMessageReceiveStatus:(long)messageId + receivedStatus:(RCIMIWReceivedStatus)receivedStatus + messageReceiveStatusChanged:(nullable void (^)(NSInteger code))messageReceiveStatusChangedBlock; + +- (NSInteger)changeMessageSentStatus:(long)messageId + sentStatus:(RCIMIWSentStatus)sentStatus +__deprecated_msg("Use [RCIMIWEngine changeMessageSentStatus:sentStatus:messageSentStatusChanged:] instead"); + +- (NSInteger)changeMessageSentStatus:(long)messageId + sentStatus:(RCIMIWSentStatus)sentStatus + messageSentStatusChanged:(nullable void (^)(NSInteger code))messageSentStatusChangedBlock; + +#pragma mark - 会话 + +- (NSInteger)loadConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getConversation:targetId:success:error:] instead"); + +- (NSInteger)getConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(RCIMIWConversation *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取单个会话数据 + + */ +- (NSInteger)loadConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getConversation:targetId:channelId:success:error:] instead"); + +- (NSInteger)getConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWConversation *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadConversations:(NSArray *)conversationTypes + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getConversations:startTime:count:success:error:] instead"); + +- (NSInteger)getConversations:(NSArray *)conversationTypes + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + + +- (NSInteger)getUnreadConversations:(NSArray *)conversationTypes + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + + +/*! + 分页获取会话列表 + + @param conversationTypes 会话类型的数组( 需要将 RCIMIWConversationType 转为 NSNumber 构建 NSArray ) + @param startTime 会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取) + @param count 获取的数量, 0 < count <= 50(当实际取回的会话数量小于 count 值时,表明已取完数据) + @return 接口调用状态 + + @discussion 此方法会从本地数据库中,读取会话列表。 + 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 + + @remarks 会话 + */ +- (NSInteger)loadConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getConversations:channelId:startTime:count:success:error:] instead"); + +- (NSInteger)getConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine removeConversation:targetId:conversationRemoved:] instead"); + +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + conversationRemoved:(nullable void (^)(NSInteger code))conversationRemovedBlock; + +/*! + 从本地存储中删除会话 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @return 接口调用状态 + + @discussion + 此方法会从本地存储中删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 + + @remarks 会话 + */ +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine removeConversation:targetId:channelId:conversationRemoved:] instead"); + +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + conversationRemoved:(nullable void (^)(NSInteger code))conversationRemovedBlock; + +- (NSInteger)removeConversations:(NSArray *)conversationTypes +__deprecated_msg("Use [RCIMIWEngine removeConversations:conversationsRemoved:] instead"); + +- (NSInteger)removeConversations:(NSArray *)conversationTypes + conversationsRemoved:(nullable void (^)(NSInteger code))conversationsRemovedBlock; + +/*! + 删除指定类型的会话 + + @param conversationTypes 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + @param channelId 所属会话的业务标识 + @return 接口调用状态 + + @discussion 此方法会从本地存储中删除该会话,同时删除会话中的消息。 + + @discussion 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 + + @remarks 会话 + */ +- (NSInteger)removeConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine removeConversations:channelId:conversationsRemoved:] instead"); + +- (NSInteger)removeConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + conversationsRemoved:(nullable void (^)(NSInteger code))conversationsRemovedBlock; + +- (NSInteger)loadMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getMessageCount:targetId:success:error:] instead"); + +- (NSInteger)getMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取会话中的消息数量 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @return 会话中的消息数量 + + @remarks 会话 + */ +- (NSInteger)loadMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getMessageCount:targetId:channelId:success:error:] instead"); + +- (NSInteger)getMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 会话未读数 + +- (NSInteger)loadTotalUnreadCount +__deprecated_msg("Use [RCIMIWEngine getTotalUnreadCount:error:] instead"); + +- (NSInteger)getTotalUnreadCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadTotalUnreadCount:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getTotalUnreadCount:success:error:] instead"); + +- (NSInteger)getTotalUnreadCount:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUnreadCount:targetId:success:error:] instead"); + +- (NSInteger)getUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUnreadCount:targetId:channelId:success:error:] instead"); + +- (NSInteger)getUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadCountByConversationTypes:(NSArray *)conversationTypes + contain:(BOOL)contain +__deprecated_msg("Use [RCIMIWEngine getUnreadCountByConversationTypes:contain:success:error:] instead"); + +- (NSInteger)getUnreadCountByConversationTypes:(NSArray *)conversationTypes + contain:(BOOL)contain + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/** + 获取某些类型的会话中所有的未读消息数 (聊天室会话除外) + + @param conversationTypes 会话类型的数组 + @param channelId 所属会话的业务标识 + @param contain 是否包含免打扰消息的未读数 + @return 该类型的会话中所有的未读消息数 + + @remarks 会话 + */ +- (NSInteger)loadUnreadCountByConversationTypes:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + contain:(BOOL)contain +__deprecated_msg("Use [RCIMIWEngine getUnreadCountByConversationTypes:channelId:contain:success:error:] instead"); + +- (NSInteger)getUnreadCountByConversationTypes:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + contain:(BOOL)contain + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedCount:targetId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取会话中@提醒自己的消息 + + @discussion 此接口仅支持 RCIMIWConversationTypeGroup、 RCIMIWConversationTypeUltraGroup + */ +- (NSInteger)loadUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedCount:targetId:channelId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearUnreadCount:targetId:timestamp:unreadCountCleared:] instead"); + +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + unreadCountCleared:(nullable void (^)(NSInteger code))unreadCountClearedBlock; + +/*! + 清除某个会话中的未读消息数 + + @param type 会话类型,不支持聊天室 + @param targetId 会话 ID + @param timestamp 该会话已阅读的最后一条消息的发送时间戳 (该会话在时间戳 timestamp 之前的消息将被置成已读,传 0 表示 清除某个会话中的所有未读消息数) + */ +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearUnreadCount:targetId:channelId:timestamp:unreadCountCleared:] instead"); + +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + unreadCountCleared:(nullable void (^)(NSInteger code))unreadCountClearedBlock; + +#pragma mark - 会话草稿 + +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + draft:(NSString *)draft +__deprecated_msg("Use [RCIMIWEngine saveDraftMessage:targetId:draft:draftMessageSaved:] instead"); + +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + draft:(NSString *)draft + draftMessageSaved:(nullable void (^)(NSInteger code))draftMessageSavedBlock; + +/*! + 保存草稿信息(用户输入但未发送的暂存消息) + + @param type 会话类型 + @param targetId 会话 ID + @param draft 草稿信息 + */ +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + draft:(NSString *)draft +__deprecated_msg("Use [RCIMIWEngine saveDraftMessage:targetId:channelId:draft:draftMessageSaved:] instead"); + +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + draft:(NSString *)draft + draftMessageSaved:(nullable void (^)(NSInteger code))draftMessageSavedBlock; + +- (NSInteger)loadDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getDraftMessage:targetId:success:error:] instead"); + +- (NSInteger)getDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSString * _Nullable draft))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getDraftMessage:targetId:channelId:success:error:] instead"); + +- (NSInteger)getDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSString * _Nullable draft))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine clearDraftMessage:targetId:draftMessageCleared:] instead"); + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + draftMessageCleared:(nullable void (^)(NSInteger code))draftMessageClearedBlock; + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine clearDraftMessage:targetId:channelId:draftMessageCleared:] instead"); + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + draftMessageCleared:(nullable void (^)(NSInteger code))draftMessageClearedBlock; + +#pragma mark - 会话免打扰 + +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeConversationNotificationLevel:targetId:level:conversationNotificationLevelChanged:] instead"); + +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level + conversationNotificationLevelChanged:(nullable void (^)(NSInteger code))conversationNotificationLevelChangedBlock; + +/** + * @param type 会话类型 + * @param targetId 会话 ID + * @param channelId 频道 ID + * @param level 消息通知级别 + * @discussion 如要移除免打扰,设置 level 为 RCIMIWPushNotificationLevelDefault 表示移除免打扰 + */ +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeConversationNotificationLevel:targetId:channelId:level:conversationNotificationLevelChanged:] instead"); + +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level + conversationNotificationLevelChanged:(nullable void (^)(NSInteger code))conversationNotificationLevelChangedBlock; + +- (NSInteger)loadConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getConversationNotificationLevel:targetId:success:error:] instead"); + +- (NSInteger)getConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getConversationNotificationLevel:targetId:channelId:success:error:] instead"); + +- (NSInteger)getConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadBlockedConversations:(NSArray *)conversationTypes +__deprecated_msg("Use [RCIMIWEngine getBlockedConversations:success:error:] instead"); + +- (NSInteger)getBlockedConversations:(NSArray *)conversationTypes + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadBlockedConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getBlockedConversations:channelId:success:error:] instead"); + +- (NSInteger)getBlockedConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/** + * 设置会话类型免打扰 + * @param type 会话类型 + * @param level 消息通知级别 + * @discussion 如要移除消息提醒状态,设置 level 为 RCIMIWPushNotificationLevelDefault + */ +- (NSInteger)changeConversationTypeNotificationLevel:(RCIMIWConversationType)type + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeConversationTypeNotificationLevel:level:conversationTypeNotificationLevelChanged:] instead"); + +- (NSInteger)changeConversationTypeNotificationLevel:(RCIMIWConversationType)type + level:(RCIMIWPushNotificationLevel)level + conversationTypeNotificationLevelChanged:(nullable void (^)(NSInteger code))conversationTypeNotificationLevelChangedBlock; + +/** + * 获取会话类型的消息提醒状态 + * @param type 会话类型 + */ +- (NSInteger)loadConversationTypeNotificationLevel:(RCIMIWConversationType)type +__deprecated_msg("Use [RCIMIWEngine getConversationTypeNotificationLevel:success:error:] instead"); + +- (NSInteger)getConversationTypeNotificationLevel:(RCIMIWConversationType)type + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 会话置顶 + +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + top:(BOOL)top +__deprecated_msg("Use [RCIMIWEngine changeConversationTopStatus:targetId:top:conversationTopStatusChanged:] instead"); + +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + top:(BOOL)top + conversationTopStatusChanged:(nullable void (^)(NSInteger code))conversationTopStatusChangedBlock; + +/** + * + * @param type 会话类型 + * @param targetId 会话 ID + * @param channelId 频道 ID + * @param top 是否置顶 + * @return 接口调用状态码 + */ +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + top:(BOOL)top +__deprecated_msg("Use [RCIMIWEngine changeConversationTopStatus:targetId:channelId:top:conversationTopStatusChanged:] instead"); + +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + top:(BOOL)top + conversationTopStatusChanged:(nullable void (^)(NSInteger code))conversationTopStatusChangedBlock; + +- (NSInteger)loadConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getConversationTopStatus:targetId:success:error:] instead"); + +- (NSInteger)getConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/** + * + * @param type 会话类型 + * @param targetId 会话 ID + * @return 接口调用状态码 + */ +- (NSInteger)loadConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getConversationTopStatus:targetId:channelId:success:error:] instead"); + +- (NSInteger)getConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadTopConversations:(NSArray *)conversationTypes +__deprecated_msg("Use [RCIMIWEngine getTopConversations:success:error:] instead"); + +- (NSInteger)getTopConversations:(NSArray *)conversationTypes + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取置顶的会话列表 + + @param conversationTypes 会话类型的数组( 需要将 RCIMIWConversationType 转为 NSNumber 构建 NSArray ) + @return 接口调用状态 + + @discussion 此方法会从本地数据库中,读取置顶的会话列表。 + + @remarks 会话列表 + */ +- (NSInteger)loadTopConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getTopConversations:channelId:success:error:] instead"); + +- (NSInteger)getTopConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 多端状态同步 + +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine syncConversationReadStatus:targetId:timestamp:conversationReadStatusSynced:] instead"); + +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + conversationReadStatusSynced:(nullable void (^)(NSInteger code))conversationReadStatusSyncedBlock; + +/*! + 同步会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @param timestamp 已经阅读的最后一条消息的 Unix 时间戳(毫秒) + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 高级功能 + */ +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine syncConversationReadStatus:targetId:channelId:timestamp:conversationReadStatusSynced:] instead"); + +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + conversationReadStatusSynced:(nullable void (^)(NSInteger code))conversationReadStatusSyncedBlock; + +#pragma mark - 聊天室 + +- (NSInteger)joinChatRoom:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:messageCount:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +- (NSInteger)joinChatRoom:(NSString *)targetId + autoCreate:(BOOL)autoCreate +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:autoCreate:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + autoCreate:(BOOL)autoCreate + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +/*! + 加入聊天室 + + @param targetId 聊天室 ID + @param messageCount 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + @param autoCreate 如果聊天室不存在,是否自动创建。 YES: 自动创建 NO: 不自动创建 + [status: 加入聊天室失败的错误码] + + @discussion + 可以通过传入的 messageCount 设置加入聊天室成功之后需要获取的历史消息数量。 + -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50 + 为具体获取的消息数量,最大值为 50。注:如果是 7.x 系统获取历史消息数量不要大于 30 + + @warning 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除 + + @remarks 聊天室 + */ +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + autoCreate:(BOOL)autoCreate +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:messageCount:autoCreate:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + autoCreate:(BOOL)autoCreate + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +- (NSInteger)leaveChatRoom:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine leaveChatRoom:chatRoomLeft:] instead"); + +- (NSInteger)leaveChatRoom:(NSString *)targetId + chatRoomLeft:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomLeftBlock; + +/*! + 获取聊天室的历史消息 + @param targetId 聊天室 ID + @param timestamp 起始的消息发送时间戳,毫秒 + @param order 拉取顺序 + RCIMIWTimeOrderBefore:表示拉取小(早)于 timestamp 的消息。 + RCIMIWTimeOrderAfter:表示拉取大(晚)于 timestamp 的消息。 + @param count 需要获取的消息数量, 0 < count <= 50 + */ +- (NSInteger)loadChatRoomMessages:(NSString *)targetId + timestamp:(long long)timestamp + order:(RCIMIWTimeOrder)order + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getChatRoomMessages:timestamp:order:count:success:error:] instead"); + +- (NSInteger)getChatRoomMessages:(NSString *)targetId + timestamp:(long long)timestamp + order:(RCIMIWTimeOrder)order + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 聊天室 KV + +/** + 设置聊天室自定义属性 + + @param targetId 聊天室 ID + @param key 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 + @param value 聊天室属性对应的值,最大长度 4096 个字符 + @param deleteWhenLeft 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知 + @param overwrite 如果 overwrite 为 YES ,设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。 + 如果 overwrite 为 NO,设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key + 的创建者可以更新属性的值。 + + @discussion 必须先开通聊天室状态存储功能 + 强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。 + + @remarks 聊天室 + */ +- (NSInteger)addChatRoomEntry:(NSString *)targetId + key:(NSString *)key + value:(NSString *)value + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite +__deprecated_msg("Use [RCIMIWEngine addChatRoomEntry:key:value:deleteWhenLeft:overwrite:chatRoomEntryAdded:] instead"); + +- (NSInteger)addChatRoomEntry:(NSString *)targetId + key:(NSString *)key + value:(NSString *)value + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite + chatRoomEntryAdded:(nullable void (^)(NSInteger code))chatRoomEntryAddedBlock; + +- (NSInteger)addChatRoomEntries:(NSString *)targetId + entries:(NSDictionary *)entries + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite +__deprecated_msg("Use [RCIMIWEngine addChatRoomEntries:entries:deleteWhenLeft:overwrite:chatRoomEntriesAdded:] instead"); + +- (NSInteger)addChatRoomEntries:(NSString *)targetId + entries:(NSDictionary *)entries + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite + chatRoomEntriesAdded:(nullable void (^)(NSInteger code, NSDictionary * _Nullable errors))chatRoomEntriesAddedBlock; + +- (NSInteger)loadChatRoomEntry:(NSString *)targetId + key:(NSString *)key +__deprecated_msg("Use [RCIMIWEngine getChatRoomEntry:key:success:error:] instead"); + +- (NSInteger)getChatRoomEntry:(NSString *)targetId + key:(NSString *)key + success:(nullable void (^)(NSDictionary *entry))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadChatRoomAllEntries:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getChatRoomAllEntries:success:error:] instead"); + +- (NSInteger)getChatRoomAllEntries:(NSString *)targetId + success:(nullable void (^)(NSDictionary *entries))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)removeChatRoomEntry:(NSString *)targetId + key:(NSString *)key + force:(BOOL)force +__deprecated_msg("Use [RCIMIWEngine removeChatRoomEntry:key:force:chatRoomEntryRemoved:] instead"); + +- (NSInteger)removeChatRoomEntry:(NSString *)targetId + key:(NSString *)key + force:(BOOL)force + chatRoomEntryRemoved:(nullable void (^)(NSInteger code))chatRoomEntryRemovedBlock; + +- (NSInteger)removeChatRoomEntries:(NSString *)targetId + keys:(NSArray *)keys + force:(BOOL)force +__deprecated_msg("Use [RCIMIWEngine removeChatRoomEntries:key:force:chatRoomEntriesRemoved:] instead"); + +- (NSInteger)removeChatRoomEntries:(NSString *)targetId + keys:(NSArray *)keys + force:(BOOL)force + chatRoomEntriesRemoved:(nullable void (^)(NSInteger code))chatRoomEntriesRemovedBlock; + +#pragma mark - 用户管理 + +- (NSInteger)addToBlacklist:(NSString *)userId +__deprecated_msg("Use [RCIMIWEngine addToBlacklist:blacklistAdded:] instead"); + +- (NSInteger)addToBlacklist:(NSString *)userId + blacklistAdded:(nullable void (^)(NSInteger code, NSString *userId))blacklistAddedBlock; + +- (NSInteger)removeFromBlacklist:(NSString *)userId +__deprecated_msg("Use [RCIMIWEngine removeFromBlacklist:blacklistRemoved:] instead"); + +- (NSInteger)removeFromBlacklist:(NSString *)userId + blacklistRemoved:(nullable void (^)(NSInteger code, NSString *userId))blacklistRemovedBlock; + +- (NSInteger)loadBlacklist +__deprecated_msg("Use [RCIMIWEngine getBlacklist:error:] instead"); + +- (NSInteger)getBlacklist:(nullable void (^)(NSArray *userIds))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadBlacklistStatus:(NSString *)userId +__deprecated_msg("Use [RCIMIWEngine getBlacklistStatus:success:error:] instead"); + +- (NSInteger)getBlacklistStatus:(NSString *)userId + success:(nullable void (^)(RCIMIWBlacklistStatus status))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 搜索消息 + +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessages:targetId:keyword:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 根据关键字搜索指定会话中的消息 + + @param type 会话类型 ( 不支持超级群的会话类型 ) + @param targetId 会话 ID + @param keyword 关键字 + @param count 最大的查询数量 0 < count <= 50 + @param startTime 查询 startTime 之前的消息(传 0 表示不限时间) + + @return 接口调用状态 + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 消息操作 + */ +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessages:targetId:channelId:keyword:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByTimeRange:targetId:keyword:startTime:endTime:offset:count:success:error:] instead"); + +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 根据时间,偏移量和个数搜索指定会话中的消息 + + @param type 会话类型 + @param targetId 会话 ID + @param keyword 关键字,传空默认为是查全部符合条件的消息 + @param startTime 查询 startTime 之后的消息, startTime >= 0 + @param endTime 查询 endTime 之前的消息,endTime > startTime + @param offset 查询的消息的偏移量,offset >= 0 + @param count 最大的查询数量, 0 < count <= 50。 + + @return 匹配的消息列表 + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 消息操作 + */ +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByTimeRange:targetId:channelId:keyword:startTime:endTime:offset:count:success:error:] instead"); + +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByUserId:type:targetId:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 按用户 ID 搜索指定会话中的消息 + + @param userId 搜索用户 ID + @param type 会话类型 + @param targetId 会话 ID + @param count 最大的查询数量 0 < count <= 50 + @param startTime 查询 startTime 之前的消息(传 0 表示不限时间) + + @return 匹配的消息列表 + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 消息操作 + */ +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByUserId:type:targetId:channelId:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 群聊回执 + +- (NSInteger)sendGroupReadReceiptRequest:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine sendGroupReadReceiptRequest:groupReadReceiptRequestSent:] instead"); + +- (NSInteger)sendGroupReadReceiptRequest:(RCIMIWMessage *)message + groupReadReceiptRequestSent:(nullable void (^)(NSInteger code, RCIMIWMessage *message))groupReadReceiptRequestSentBlock; + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine sendGroupReadReceiptResponse:messages:groupReadReceiptResponseSent:] instead"); + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + messages:(NSArray *)messages + groupReadReceiptResponseSent:(nullable void (^)(NSInteger code, NSArray *messages))groupReadReceiptResponseSentBlock; + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine sendGroupReadReceiptResponse:channelId:messages:groupReadReceiptResponseSent:] instead"); + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages + groupReadReceiptResponseSent:(nullable void (^)(NSInteger code, NSArray *messages))groupReadReceiptResponseSentBlock; + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword +__deprecated_msg("Use [RCIMIWEngine searchConversations:messageTypes:keyword:success:error:] instead"); + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword + success:(nullable void (^)(NSArray *results))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword +__deprecated_msg("Use [RCIMIWEngine searchConversations:channelId:messageTypes:keyword:success:error:] instead"); + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword + success:(nullable void (^)(NSArray *results))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 会话标签 +// +- (NSInteger)createTag:(NSString *)tagId tagName:(NSString *)tagName tagCreated:(nullable void (^)(NSInteger code))tagCreatedBlock; +// +- (NSInteger)removeTag:(NSString *)tagId tagRemoved:(nullable void (^)(NSInteger code))tagRemovedBlock; + +- (NSInteger)updateTagNameById:(NSString *)tagId newName:(NSString *)newName tagNameByIdUpdated:(nullable void (^)(NSInteger code))tagNameByIdUpdatedBlock; + +- (NSInteger)getTags:(nullable void (^)(NSArray *results))successBlock + error:(nullable void (^)(NSInteger code))errorBlock;; + +- (NSInteger)addConversationToTag:(NSString *)tagId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + conversationToTagAdded:(nullable void (^)(NSInteger code))conversationToTagAddedBlock; + +/*! + 从指定标签移除会话 + */ +- (NSInteger)removeConversationFromTag:(NSString *)tagId + type: (RCIMIWConversationType)type + targetId:(NSString *)targetId + conversationFromTagRemoved:(nullable void (^)(NSInteger code))conversationFromTagRemovedBlock; + +/*! + 删除指定会话中的某些标签 + */ +- (NSInteger)removeTagsFromConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + tagIds:(NSArray *)tagIds + tagsFromConversationRemoved:(nullable void (^)(NSInteger code))tagsFromConversationRemovedBlock; +// +- (NSInteger)getTagsFromConversation:(RCIMIWConversationType)type targetId:(NSString *)targetId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +- (NSInteger)getConversationsFromTagByPage:(NSString *)tagId + timestamp:(long long)timestamp + count:(int)count + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)getUnreadCountByTag:(NSString *)tagId contain:(BOOL)containBlocked success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +- (NSInteger)changeConversationTopStatusInTag:(NSString *)tagId type:(RCIMIWConversationType)type targetId:(NSString *)targetId top:(BOOL)top + conversationTopStatusInTagChanged:(nullable void (^)(NSInteger code))conversationTopStatusInTagChangedBlock;; +// +- (NSInteger)getConversationTopStatusInTag:(NSString *)tagId type:(RCIMIWConversationType)type targetId:(NSString *)targetId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +- (NSInteger)clearMessagesUnreadStatusByTag:(NSString *)tagId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +///*! +// @param deleteMessage 是否清除本地历史消息 +// */ +- (NSInteger)clearConversationsByTag:(NSString *)tagId deleteMessage:(BOOL)deleteMessage + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 全局免打扰 + +/*! + 全局屏蔽某个时间段的消息提醒 + + @param startTime 开始消息免打扰时间,格式为 HH:MM:SS + @param spanMinutes 需要消息免打扰分钟数,0 < spanMins < 1440( 比如,您设置的起始时间是 00:00, 结束时间为 + 23:59,则 spanMins 为 23 * 60 + 59 = 1439 分钟。) + @param level 传递 RCPushNotificationQuietHoursLevelDefault 表示移除免打扰 + */ +- (NSInteger)changeNotificationQuietHours:(NSString *)startTime + spanMinutes:(int)spanMinutes + level:(RCIMIWPushNotificationQuietHoursLevel)level +__deprecated_msg("Use [RCIMIWEngine changeNotificationQuietHours:spanMinutes:level:notificationQuietHoursChanged:] instead"); + +- (NSInteger)changeNotificationQuietHours:(NSString *)startTime + spanMinutes:(int)spanMinutes + level:(RCIMIWPushNotificationQuietHoursLevel)level + notificationQuietHoursChanged:(nullable void (^)(NSInteger code))notificationQuietHoursChangedBlock; + +- (NSInteger)loadNotificationQuietHours +__deprecated_msg("Use [RCIMIWEngine getNotificationQuietHours:error:] instead"); + +- (NSInteger)getNotificationQuietHours:(nullable void (^)(NSString *startTime, int spanMinutes, RCIMIWPushNotificationQuietHoursLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)removeNotificationQuietHours +__deprecated_msg("Use [RCIMIWEngine removeNotificationQuietHours:] instead"); + +- (NSInteger)removeNotificationQuietHours:(nullable void (^)(NSInteger code))notificationQuietHoursRemovedBlock; + +#pragma mark - 推送配置 + +/*! + 设置 deviceToken(已兼容 iOS 13),用于远程推送 + + @param deviceToken 从系统获取到的 deviceToken (不需要处理) + + @discussion + deviceToken 是系统提供的,从苹果服务器获取的,用于 APNs 远程推送必须使用的设备唯一值。 + 您需要将 -application:didRegisterForRemoteNotificationsWithDeviceToken: 获取到的 deviceToken 作为参数传入此方法。 + + 如: + - (void)application:(UIApplication *)application + didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + //调用 setDeviceToken + } + @remarks 功能设置 + */ ++ (NSInteger)setDeviceToken:(NSData *)deviceToken; + +/*! + 设置是否显示远程推送的内容 + + @param showContent 是否显示推送的具体内容( YES 显示 NO 不显示) + */ +- (NSInteger)changePushContentShowStatus:(BOOL)showContent +__deprecated_msg("Use [RCIMIWEngine changePushContentShowStatus:pushContentShowStatusChanged:] instead"); + +- (NSInteger)changePushContentShowStatus:(BOOL)showContent + pushContentShowStatusChanged:(nullable void (^)(NSInteger code))pushContentShowStatusChangedBlock; + +/** + 设置推送内容的自然语言 + + @param language 通过 SDK 设置的语言环境,语言缩写内容格式为 (ISO-639 Language Code)_(ISO-3166 Country Codes),如:zh_CN。目前融云支持的内置推送语言为 zh_CN、en_US、ar_SA + */ +- (NSInteger)changePushLanguage:(NSString *)language +__deprecated_msg("Use [RCIMIWEngine changePushLanguage:pushLanguageChanged:] instead"); + +- (NSInteger)changePushLanguage:(NSString *)language + pushLanguageChanged:(nullable void (^)(NSInteger code))pushLanguageChangedBlock; + +/*! + 设置 Web 端在线时,手机端是否接收推送 + + @param receive 是否接收推送( YES 接收 NO 不接收) + */ +- (NSInteger)changePushReceiveStatus:(BOOL)receive +__deprecated_msg("Use [RCIMIWEngine changePushReceiveStatus:pushReceiveStatusChanged:] instead"); + +- (NSInteger)changePushReceiveStatus:(BOOL)receive + pushReceiveStatusChanged:(nullable void (^)(NSInteger code))pushReceiveStatusChangedBlock; + +#pragma mark - 超级群 +- (NSInteger)syncUltraGroupReadStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine syncUltraGroupReadStatus:channelId:timestamp:ultraGroupReadStatusSynced:] instead"); + +- (NSInteger)syncUltraGroupReadStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + ultraGroupReadStatusSynced:(nullable void (^)(NSInteger code))ultraGroupReadStatusSyncedBlock; + +- (NSInteger)loadConversationsForAllChannel:(RCIMIWConversationType)type + targetId:(NSString *) targetId +__deprecated_msg("Use [RCIMIWEngine getConversationsForAllChannel:targetId:success:error:] instead"); + +- (NSInteger)getConversationsForAllChannel:(RCIMIWConversationType)type + targetId:(NSString *) targetId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)modifyUltraGroupMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine modifyUltraGroupMessage:ultraGroupMessageModified:] instead"); + +- (NSInteger)modifyUltraGroupMessage:(RCIMIWMessage *)message + ultraGroupMessageModified:(nullable void (^)(NSInteger code))ultraGroupMessageModifiedBlock; + +/** + 消息修改 + + @param messageUId 将被修改的消息id + @param message 将被修改的消息 + + @discussion + 此方法只能修改相同频道的同类型消息,仅能修改自己发送的消息 + */ +- (NSInteger)modifyUltraGroupMessage:(NSString *)messageUId + message:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine modifyUltraGroupMessage:message:ultraGroupMessageModified:] instead"); + +- (NSInteger)modifyUltraGroupMessage:(NSString *)messageUId + message:(RCIMIWMessage *)message + ultraGroupMessageModified:(nullable void (^)(NSInteger code))ultraGroupMessageModifiedBlock; + +/*! + 撤回消息 + + @param message 需要撤回的消息 + @param deleteRemote 是否移除远端消息记录,YES: 移除远端消息记录, NO:不移除远端消息记录 + */ +- (NSInteger)recallUltraGroupMessage:(RCIMIWMessage *)message + deleteRemote:(BOOL)deleteRemote +__deprecated_msg("Use [RCIMIWEngine recallUltraGroupMessage:deleteRemote:ultraGroupMessageRecalled:] instead"); + +- (NSInteger)recallUltraGroupMessage:(RCIMIWMessage *)message + deleteRemote:(BOOL)deleteRemote + ultraGroupMessageRecalled:(nullable void (^)(NSInteger code))ultraGroupMessageRecalledBlock; + +- (NSInteger)clearUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy +__deprecated_msg("Use [RCIMIWEngine clearUltraGroupMessages:channelId:timestamp:policy:ultraGroupMessagesCleared:] instead"); + +- (NSInteger)clearUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy + ultraGroupMessagesCleared:(nullable void (^)(NSInteger code))ultraGroupMessagesClearedBlock; + +- (NSInteger)clearUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearUltraGroupMessagesForAllChannel:timestamp:ultraGroupMessagesClearedForAllChannel:] instead"); + +- (NSInteger)clearUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp + ultraGroupMessagesClearedForAllChannel:(nullable void (^)(NSInteger code))ultraGroupMessagesClearedForAllChannelBlock; + +- (NSInteger)sendUltraGroupTypingStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + typingStatus:(RCIMIWUltraGroupTypingStatus)typingStatus +__deprecated_msg("Use [RCIMIWEngine sendUltraGroupTypingStatus:channelId:typingStatus:ultraGroupTypingStatusSent:] instead"); + +- (NSInteger)sendUltraGroupTypingStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + typingStatus:(RCIMIWUltraGroupTypingStatus)typingStatus + ultraGroupTypingStatusSent:(nullable void (^)(NSInteger code))ultraGroupTypingStatusSentBlock; + +/*! + 获取同一个超级群下的批量服务消息(含所有频道) + + @param messages 消息列表 + @remarks 高级功能 + */ +- (NSInteger)loadBatchRemoteUltraGroupMessages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine getBatchRemoteUltraGroupMessages:success:error:] instead"); + +- (NSInteger)getBatchRemoteUltraGroupMessages:(NSArray *)messages + success:(nullable void (^)(NSArray * _Nullable matchedMessages, NSArray * _Nullable notMatchedMessages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)updateUltraGroupMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion +__deprecated_msg("Use [RCIMIWEngine updateUltraGroupMessageExpansion:expansion:ultraGroupMessageExpansionUpdated:] instead"); + +- (NSInteger)updateUltraGroupMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion + ultraGroupMessageExpansionUpdated:(nullable void (^)(NSInteger code))ultraGroupMessageExpansionUpdatedBlock; + +- (NSInteger)removeUltraGroupMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys +__deprecated_msg("Use [RCIMIWEngine removeUltraGroupMessageExpansionForKeys:keys:ultraGroupMessageExpansionForKeysRemoved:] instead"); + +- (NSInteger)removeUltraGroupMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys + ultraGroupMessageExpansionForKeysRemoved:(nullable void (^)(NSInteger code))ultraGroupMessageExpansionForKeysRemovedBlock; + +/*! + 设置超级群的默认消息状态 + + @param targetId 会话 ID + @param level 消息通知级别 + */ +- (NSInteger)changeUltraGroupDefaultNotificationLevel:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeUltraGroupDefaultNotificationLevel:level:ultraGroupDefaultNotificationLevelChanged:] instead"); + +- (NSInteger)changeUltraGroupDefaultNotificationLevel:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level + ultraGroupDefaultNotificationLevelChanged:(nullable void (^)(NSInteger code))ultraGroupDefaultNotificationLevelChangedBlock; + +/*! + 获取超级群的默认消息状态 + + @param targetId 会话 ID + */ +- (NSInteger)loadUltraGroupDefaultNotificationLevel:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupDefaultNotificationLevel:success:error:] instead"); + +- (NSInteger)getUltraGroupDefaultNotificationLevel:(NSString *)targetId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 设置超级群频道的默认消息状态 + + @param targetId 会话 ID + @param channelId 频道 ID + @param level 消息通知级别 + */ +- (NSInteger)changeUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeUltraGroupChannelDefaultNotificationLevel:channelId:level:ultraGroupChannelDefaultNotificationLevelChanged:] instead"); + +- (NSInteger)changeUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level + ultraGroupChannelDefaultNotificationLevelChanged:(nullable void (^)(NSInteger code))ultraGroupChannelDefaultNotificationLevelChangedBlock; + +/*! + 获取超级群频道的默认消息状态 + + @param targetId 会话 ID + @param channelId 频道 ID + */ +- (NSInteger)loadUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupChannelDefaultNotificationLevel:channelId:success:error:] instead"); + +- (NSInteger)getUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取所有会话的未读消息数 +- (NSInteger)loadUltraGroupAllUnreadCount +__deprecated_msg("Use [RCIMIWEngine getUltraGroupAllUnreadCount:error:] instead"); + +- (NSInteger)getUltraGroupAllUnreadCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取所有会话的未读 @ 消息数 +- (NSInteger)loadUltraGroupAllUnreadMentionedCount +__deprecated_msg("Use [RCIMIWEngine getUltraGroupAllUnreadMentionedCount:error:] instead"); + +- (NSInteger)getUltraGroupAllUnreadMentionedCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取指定会话的未读消息数 +- (NSInteger)loadUltraGroupUnreadCount:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupUnreadCount:success:error:] instead"); + +- (NSInteger)getUltraGroupUnreadCount:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取指定会话的未读 @ 消息数 +- (NSInteger)loadUltraGroupUnreadMentionedCount:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupUnreadMentionedCount:success:error:] instead"); + +- (NSInteger)getUltraGroupUnreadMentionedCount:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +/*! + 获取当前手机与服务器的时间差 + + @return 时间差 + @discussion 消息发送成功后,SDK 会与服务器同步时间,消息所在数据库中存储的时间就是服务器时间。 + + @remarks 数据获取 + */ +- (long long)getDeltaTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngineDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngineDelegate.h new file mode 100644 index 0000000..10f1a53 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngineDelegate.h @@ -0,0 +1,664 @@ +// +// RCIMIWEngineDelegate.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import +#import +#import + +@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 + +@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 *)messages; + +- (void)onUnreadMentionedMessagesLoaded:(NSInteger)code + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId + messages:(NSArray *)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 *)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 *)messages; + +- (void)onMessagesDeleted:(NSInteger)code + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId + messages:(NSArray *)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 *)expansion; + +- (void)onMessageExpansionForKeysRemoved:(NSInteger)code + messageUId:(NSString *)messageUId + keys:(NSArray *)keys; +/** + 远端更改消息扩展信息的回调 + + @param expansion 消息扩展信息中更新的键值对 + @param message 消息 + + @discussion expansionDic 只包含更新的键值对,不是全部的数据。如果想获取全部的键值对,请使用 message 的 expansion 属性。 + */ +- (void)onRemoteMessageExpansionUpdated:(NSDictionary *)expansion message:(RCIMIWMessage *)message; + +/** + 远端删除消息扩展信息的回调 + */ +- (void)onRemoteMessageExpansionForKeyRemoved:(RCIMIWMessage *)message keys:(NSArray *)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 *)conversationTypes + channelId:(NSString *)channelId + startTime:(long long)startTime + count:(int)count + conversations:(nullable NSArray *)conversations; + +- (void)onConversationRemoved:(NSInteger)code + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId; + +- (void)onConversationsRemoved:(NSInteger)code + conversationTypes:(NSArray *)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 *)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 *)conversationTypes + channelId:(NSString *)channelId + conversations:(nullable NSArray *)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 *)conversationTypes + channelId:(NSString *)channelId + conversations:(nullable NSArray *)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 *)messages; + +/*! + 群聊消息回执请求监听 + */ +- (void)onGroupMessageReadReceiptRequestReceived:(NSString *)targetId messageUId:(NSString *)messageUId; + +/*! + 群聊消息回执响应监听 + */ +- (void)onGroupMessageReadReceiptResponseReceived:(NSString *)targetId messageUId:(NSString *)messageUId respondUserIds:(NSDictionary *)respondUserIds; + +#pragma mark - 输入状态 + +- (void)onTypingStatusChanged:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId + userTypingStatus:(NSArray *)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 *)actions; + +- (void)onChatRoomMessagesLoaded:(NSInteger)code + targetId:(NSString *)targetId + messages:(NSArray *)messages + syncTime:(long long)syncTime; + +- (void)onChatRoomEntryAdded:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key; + +- (void)onChatRoomEntriesAdded:(NSInteger)code + targetId:(NSString *)targetId + entries:(NSDictionary *)entries + errorEntries:(NSDictionary *)errorEntries; + +- (void)onChatRoomEntryLoaded:(NSInteger)code targetId:(NSString *)targetId entry:(NSDictionary *)entry; + +- (void)onChatRoomAllEntriesLoaded:(NSInteger)code + targetId:(NSString *)targetId + entries:(NSDictionary *)entries; + +- (void)onChatRoomEntryRemoved:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key; + +- (void)onChatRoomEntriesRemoved:(NSInteger)code targetId:(NSString *)targetId keys:(NSArray *)keys; + +// kv 同步完成 +- (void)onChatRoomEntriesSynced:(NSString *)roomId; + +// kv 改变回调,包含更新和删除 +- (void)onChatRoomEntriesChanged:(RCIMIWChatRoomEntriesOperationType)operationType + roomId:(NSString *)roomId + entries:(NSDictionary *)entries; + +#pragma mark - 用户管理 + +- (void)onBlacklistAdded:(NSInteger)code userId:(NSString *)userId; + +- (void)onBlacklistRemoved:(NSInteger)code userId:(NSString *)userId; + +- (void)onBlacklistLoaded:(NSInteger)code userIds:(NSArray *)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 *)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 *)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 *)messages; + +- (void)onConversationsSearched:(NSInteger)code + conversationTypes:(NSArray *)conversationTypes + channelId:(NSString *)channelId + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword + conversations:(NSArray *)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 *)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 *)tagIds; + +- (void)onTagsLoadedFromConversation:(NSInteger)code + tags:(NSArray *)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 *)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 *)matchedMessages + notMatchedMessages:(NSArray *)notMatchMessages; + +- (void)onUltraGroupMessageExpansionUpdated:(NSInteger)code + expansion:(NSDictionary *)expansion + messageUId:(NSString *)messageUId; + +- (void)onUltraGroupMessageExpansionForKeysRemoved:(NSInteger)code + messageUId:(NSString *)messageUId + keys:(NSArray *)keys; + +/** + 超级群已读时间同步 + + @param targetId 会话 ID + @param channelId 频道 ID + @param timestamp 已读时间 + */ +- (void)onUltraGroupReadTimeReceived:(NSString *)targetId channelId:(NSString *)channelId timestamp:(long long)timestamp; + +/** + 超级群远端更新消息扩展的回调 + */ +- (void)onRemoteUltraGroupMessageExpansionUpdated:(NSArray *)messages; + +/** + 超级群远端修改消息的回调 + */ +- (void)onRemoteUltraGroupMessageModified:(NSArray *)messages; + +- (void)onRemoteUltraGroupMessageRecalled:(NSArray *)messages; + +- (void)onUltraGroupTypingStatusChanged:(NSArray *)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 */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngineOptions.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngineOptions.h new file mode 100644 index 0000000..545a02f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWEngineOptions.h @@ -0,0 +1,51 @@ +// +// RCIMIWEngineOptions.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWFileMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWFileMessage.h new file mode 100644 index 0000000..1391340 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWFileMessage.h @@ -0,0 +1,32 @@ +// +// RCIMIWFileMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWGIFMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWGIFMessage.h new file mode 100644 index 0000000..c0a8484 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWGIFMessage.h @@ -0,0 +1,31 @@ +// +// RCIMIWGIFMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/8/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWGroupReadReceiptInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWGroupReadReceiptInfo.h new file mode 100644 index 0000000..0dfff66 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWGroupReadReceiptInfo.h @@ -0,0 +1,32 @@ +// +// RCIMIWGroupReadReceiptInfo.h +// RongIMWrapper +// +// Created by RongCloud on 4/7/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +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 *respondUserIds; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWImageMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWImageMessage.h new file mode 100644 index 0000000..ec564a5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWImageMessage.h @@ -0,0 +1,28 @@ +// +// RCIMIWImageMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWLocationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWLocationMessage.h new file mode 100644 index 0000000..0c6329d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWLocationMessage.h @@ -0,0 +1,37 @@ +// +// RCIMIWLocationMessage.h +// RongIMWrapper +// +// Created by RongCloud on 8/15/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMediaMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMediaMessage.h new file mode 100644 index 0000000..41ea674 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMediaMessage.h @@ -0,0 +1,20 @@ +// +// RCIMIWMediaMessage.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWMediaMessage : RCIMIWMessage + +@property (nonatomic, copy, readonly) NSString *local; +@property (nonatomic, copy, readonly) NSString *remote; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMentionedInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMentionedInfo.h new file mode 100644 index 0000000..6e5f5fe --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMentionedInfo.h @@ -0,0 +1,34 @@ +// +// RCIMIWMentionedInfo.h +// RongIMWrapper +// +// Created by RongCloud on 2/18/22. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWMentionedInfo : NSObject + +/*! + @ 提醒的类型 + */ +@property (nonatomic, assign) RCIMIWMentionedType type; + +/*! + @ 的用户 ID 列表 + + @discussion 如果 type 是 @ 所有人,则可以传 nil + */ +@property (nonatomic, copy) NSArray *userIdList; + +/*! + 包含 @ 提醒的消息,本地通知和远程推送显示的内容 + */ +@property (nonatomic, copy) NSString *mentionedContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMessage.h new file mode 100644 index 0000000..c43ab57 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMessage.h @@ -0,0 +1,110 @@ +// +// RCIMIWMessage.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import +#import +#import +#import + +@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 *expansion; + +//- (instancetype)init __attribute__((unavailable("请使用 RCIMIWEngine 中 createXXMessage 系列方法创建对应的 message "))); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMessagePushOptions.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMessagePushOptions.h new file mode 100644 index 0000000..f5c8b44 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWMessagePushOptions.h @@ -0,0 +1,225 @@ +// +// RCIMIWMessagePushOptions.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import + +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMediaMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMediaMessage.h new file mode 100644 index 0000000..1aa2fde --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMediaMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWNativeCustomMediaMessage.h +// RongIMWrapper +// +// Created by Lang on 2024/6/3. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWNativeCustomMediaMessage : RCIMIWMediaMessage + +/// 自定义消息的内容 +@property (nonatomic, copy) NSDictionary *fields; + +/// 消息搜索关键字 +@property (nonatomic, copy) NSArray *searchableWords; + +/// 消息类型名 +@property (nonatomic, copy, readonly) NSString *messageIdentifier; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMessage.h new file mode 100644 index 0000000..56022bc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWNativeCustomMessage.h +// RongIMWrapper +// +// Created by Lang on 2024/5/30. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWNativeCustomMessage : RCIMIWMessage + +/// 自定义消息的 json 内容 +@property (nonatomic, copy) NSDictionary *fields; + +/// 消息搜索关键字 +@property (nonatomic, copy) NSArray *searchableWords; + +/// 消息类型名 +@property (nonatomic, copy, readonly) NSString *messageIdentifier; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWPlatformConverter.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWPlatformConverter.h new file mode 100644 index 0000000..967211d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWPlatformConverter.h @@ -0,0 +1,99 @@ +// +// RCIMIWPlatformConverter.h +// RongIMWrapper +// +// Created by zhangyifan on 2022/5/10. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWRecallNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWRecallNotificationMessage.h new file mode 100644 index 0000000..fa0902a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWRecallNotificationMessage.h @@ -0,0 +1,47 @@ +// +// RCIMIWRecallNotificationMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWReferenceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWReferenceMessage.h new file mode 100644 index 0000000..69dc34d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWReferenceMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWReferenceMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/8/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWReferenceMessage : RCIMIWMessage + +/*! + 文本 + */ +@property (nonatomic, strong, readonly) NSString *text; + +/*! + 被引用消息体 + */ +@property (nonatomic, strong, readonly) RCIMIWMessage *referenceMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWSearchConversationResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWSearchConversationResult.h new file mode 100644 index 0000000..d91594d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWSearchConversationResult.h @@ -0,0 +1,29 @@ +// +// RCIMIWSearchConversationResult.h +// RongIMWrapper +// +// Created by RongCloud on 3/17/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWSightMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWSightMessage.h new file mode 100644 index 0000000..d111af3 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWSightMessage.h @@ -0,0 +1,33 @@ +// +// RCIMIWSightMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTagInfo.h new file mode 100644 index 0000000..c46dfab --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTagInfo.h @@ -0,0 +1,45 @@ +// +// RCIMIWTagInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/3/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTextMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTextMessage.h new file mode 100644 index 0000000..848126e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTextMessage.h @@ -0,0 +1,18 @@ +// +// RCIMIWTextMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWTextMessage : RCIMIWMessage + +@property (nonatomic, copy) NSString *text; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTypingStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTypingStatus.h new file mode 100644 index 0000000..2c78c1d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWTypingStatus.h @@ -0,0 +1,29 @@ +// +// RCIMIWTypingStatus.h +// RongIMWrapper +// +// Created by RongCloud on 3/3/22. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUltraGroupTypingStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUltraGroupTypingStatusInfo.h new file mode 100644 index 0000000..bd952f4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUltraGroupTypingStatusInfo.h @@ -0,0 +1,48 @@ +// +// RCIMIWUltraGroupTypingStatusInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/21/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUnknownMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUnknownMessage.h new file mode 100644 index 0000000..7445407 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUnknownMessage.h @@ -0,0 +1,19 @@ +// +// RCIMIWUnknownMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWUnknownMessage : RCIMIWMessage + +@property (nonatomic, copy, readonly) NSString *rawData; +@property (nonatomic, copy, readonly) NSString *objectName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUserInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUserInfo.h new file mode 100644 index 0000000..e002715 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWUserInfo.h @@ -0,0 +1,51 @@ +// +// RCIMIWUserInfo.h +// RongIMWrapper +// +// Created by RongCloud on 2/18/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWVoiceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWVoiceMessage.h new file mode 100644 index 0000000..5f5a748 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RCIMIWVoiceMessage.h @@ -0,0 +1,21 @@ +// +// RCIMIWVoiceMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWVoiceMessage : RCIMIWMediaMessage + +/** + 语音时长,以秒为单位 + */ +@property (nonatomic, assign, readonly) NSUInteger duration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RongIMWrapper.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RongIMWrapper.h new file mode 100644 index 0000000..047598d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Headers/RongIMWrapper.h @@ -0,0 +1,57 @@ +// +// RongIMWrapper.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import + +//! 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 + + +#import + +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import + +#import + +#import + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Info.plist new file mode 100644 index 0000000..ee162ac Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Modules/module.modulemap b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Modules/module.modulemap new file mode 100644 index 0000000..d971069 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongIMWrapper { + umbrella header "RongIMWrapper.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/RongIMWrapper b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/RongIMWrapper new file mode 100755 index 0000000..6c5deb2 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/RongIMWrapper differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..6eb1c11 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-arm64/RongIMWrapper.framework/_CodeSignature/CodeResources @@ -0,0 +1,657 @@ + + + + + files + + Headers/RCIMIWBlockedMessageInfo.h + + oFtw97CuFfdFacaQCYa0vlc7X8w= + + Headers/RCIMIWChatRoomMemberAction.h + + Irj/sfQvPSbDI155s7oeMqPcawg= + + Headers/RCIMIWCommandMessage.h + + Qx757Ked5q26cEvzSx+fAp6GI9M= + + Headers/RCIMIWCommandNotificationMessage.h + + OG3jeKw+nw3SaLkg9FWDi2X3lrc= + + Headers/RCIMIWCompressOptions.h + + xHum9csO4h31oM4ThiqfGWmExVE= + + Headers/RCIMIWConversation.h + + 9eTyDyAkPaqkeLDtc3BXetXSxYY= + + Headers/RCIMIWConversationTagInfo.h + + C5vgJNgPATsesPBQufy4L5gpSnQ= + + Headers/RCIMIWCustomMessage.h + + rrUBcrcJmz829fv4diEcXP4H5YE= + + Headers/RCIMIWDefines.h + + eol/yMMWxD5sCT05wcGeXcYmqUM= + + Headers/RCIMIWEngine.h + + 64Y+xrsLW0p1FIexk8K8ICOLCw0= + + Headers/RCIMIWEngineDelegate.h + + ZyHi3S2t7/25g9YxWxmKpUVHm9w= + + Headers/RCIMIWEngineOptions.h + + ud+wnRuziaUxwXm6wxNrhO2bBRc= + + Headers/RCIMIWFileMessage.h + + UPDum8Tj3FXB+ldQidm+r+tr01s= + + Headers/RCIMIWGIFMessage.h + + mpVdornL+JqEIlGXyJ7F9b7MJZ4= + + Headers/RCIMIWGroupReadReceiptInfo.h + + 03Hkay3rOYHjnhURsy8rsK2tX/k= + + Headers/RCIMIWImageMessage.h + + KYDTFZHSu5lEYa4l+lg1KBxDKOs= + + Headers/RCIMIWLocationMessage.h + + 5mU4FWewcdpZyIUwjF8GOXihTmQ= + + Headers/RCIMIWMediaMessage.h + + Jqjv39goLbc6GSwraJ9Wspz/vpA= + + Headers/RCIMIWMentionedInfo.h + + 2LvZ0xCmos1SX4KawuSJY1Tkd98= + + Headers/RCIMIWMessage.h + + KUjzmIGwOMx9PT8vTkFgWYjdSwU= + + Headers/RCIMIWMessagePushOptions.h + + INZw8eqQqHxDVlRDBufb3BzB0zw= + + Headers/RCIMIWNativeCustomMediaMessage.h + + TtJvIjR75Xsdwui1Xgi2LDy7sQo= + + Headers/RCIMIWNativeCustomMessage.h + + jl/KqekfUeoiPBsnZx9uSXwL604= + + Headers/RCIMIWPlatformConverter.h + + qBfombP/fhIyPE4YuBePNjby9DI= + + Headers/RCIMIWRecallNotificationMessage.h + + hfpwloo0psjA3Do5qKerrEEGxwI= + + Headers/RCIMIWReferenceMessage.h + + grgrdiQxBQgcjcv5n0veJ+CAziI= + + Headers/RCIMIWSearchConversationResult.h + + qxxZUH0k9fzbrwHlwWHhHBxJ5R0= + + Headers/RCIMIWSightMessage.h + + sHEoJgaWKxvOUA1AsuPuaXTQZOM= + + Headers/RCIMIWTagInfo.h + + nay+4cxqaKWFfJAFjRSFwhInC/8= + + Headers/RCIMIWTextMessage.h + + Rm8BdDUpfiiOteZNWkBihhndJ9k= + + Headers/RCIMIWTypingStatus.h + + akJLOB7HKoppJFBl7M+CRqVnzsE= + + Headers/RCIMIWUltraGroupTypingStatusInfo.h + + bbwfwGtOchVmLKU/iOe3eDHptik= + + Headers/RCIMIWUnknownMessage.h + + qgUrjxdq+sCU6/1/T4I9sq4LcHA= + + Headers/RCIMIWUserInfo.h + + 5g7vzLQk3tcFraYj6LiXTofflNA= + + Headers/RCIMIWVoiceMessage.h + + qsVZR8GP7n2O5FqQcKtBfAChfbM= + + Headers/RongIMWrapper.h + + YdH8Ujk85GPUJ+MR6roHGiP+3tU= + + Info.plist + + JEjrQsRzdqV0hZBP0cKNNZUHjkI= + + Modules/module.modulemap + + Vh9vdNQkaXreFCi1krLgoYVDvCg= + + + files2 + + Headers/RCIMIWBlockedMessageInfo.h + + hash + + oFtw97CuFfdFacaQCYa0vlc7X8w= + + hash2 + + nNHHGlz3h+zRUQ/VsvRQ0Xyqx9kgRY4NHDprJKhsDO4= + + + Headers/RCIMIWChatRoomMemberAction.h + + hash + + Irj/sfQvPSbDI155s7oeMqPcawg= + + hash2 + + dJEENT/QimJq1ZJ8juxcIs3g2V+UwfgDdKPLV6JWzKE= + + + Headers/RCIMIWCommandMessage.h + + hash + + Qx757Ked5q26cEvzSx+fAp6GI9M= + + hash2 + + A9QP8rCAngk9gKWqr4RNV6DGmW5fLwrb7DPjG0eEcAQ= + + + Headers/RCIMIWCommandNotificationMessage.h + + hash + + OG3jeKw+nw3SaLkg9FWDi2X3lrc= + + hash2 + + d7RxZ/a+a2wBKPE09QvuXYbEoFH9QbpPuiPKgkLJLIw= + + + Headers/RCIMIWCompressOptions.h + + hash + + xHum9csO4h31oM4ThiqfGWmExVE= + + hash2 + + Xb4YsZJJ9PUPGBvsmbDufy2NBIti11o4QSQQFC4fUZo= + + + Headers/RCIMIWConversation.h + + hash + + 9eTyDyAkPaqkeLDtc3BXetXSxYY= + + hash2 + + Ce0mpcf06Wl3c56Ree9dpQJxyw0eXrQFSOSbW6aWe90= + + + Headers/RCIMIWConversationTagInfo.h + + hash + + C5vgJNgPATsesPBQufy4L5gpSnQ= + + hash2 + + yLRPC+dWbAoNGPmwjd8jVNHZIlaphbKuehQWY93v28w= + + + Headers/RCIMIWCustomMessage.h + + hash + + rrUBcrcJmz829fv4diEcXP4H5YE= + + hash2 + + g1szSyNUGQlIdSQREcs8KG0fudaJVU5WO83PHR7lABM= + + + Headers/RCIMIWDefines.h + + hash + + eol/yMMWxD5sCT05wcGeXcYmqUM= + + hash2 + + BVGBRSwY5wKEat5PE4nFqps1FVWTbwCiBdItmLNcK8o= + + + Headers/RCIMIWEngine.h + + hash + + 64Y+xrsLW0p1FIexk8K8ICOLCw0= + + hash2 + + UrxJREgUJC9UUYi/wE70/8Fgbg8xckI7i9xH1h/Wc54= + + + Headers/RCIMIWEngineDelegate.h + + hash + + ZyHi3S2t7/25g9YxWxmKpUVHm9w= + + hash2 + + YrXKrToIMLnsY3hFS4qYUPmJAxQxIU7sWDyF/7qLBac= + + + Headers/RCIMIWEngineOptions.h + + hash + + ud+wnRuziaUxwXm6wxNrhO2bBRc= + + hash2 + + fx4bU9ekLddFW8qP+iwvOFcOUPzUBbAxoTLD8Cq0PyM= + + + Headers/RCIMIWFileMessage.h + + hash + + UPDum8Tj3FXB+ldQidm+r+tr01s= + + hash2 + + EXIbvs8fvoqaNmk6DEtStlqa1b/GSwp/IMD+q+Uzqyg= + + + Headers/RCIMIWGIFMessage.h + + hash + + mpVdornL+JqEIlGXyJ7F9b7MJZ4= + + hash2 + + 9gw+eXxC5N3mDzYscVLCwN3YlIHO+Chge5egYeGrKDA= + + + Headers/RCIMIWGroupReadReceiptInfo.h + + hash + + 03Hkay3rOYHjnhURsy8rsK2tX/k= + + hash2 + + mO8PiMP6mtcgKMmAHp0RtXS3S2DWkw/zJebC7+B576g= + + + Headers/RCIMIWImageMessage.h + + hash + + KYDTFZHSu5lEYa4l+lg1KBxDKOs= + + hash2 + + 9vSrnft9SHddZuUKxnqwi3dqhwEcDSeDqpGrXGPjWy4= + + + Headers/RCIMIWLocationMessage.h + + hash + + 5mU4FWewcdpZyIUwjF8GOXihTmQ= + + hash2 + + 4aN0WFOisK9iWsIfPYpaiemEqSkLKjSBHp0AKzwFDbI= + + + Headers/RCIMIWMediaMessage.h + + hash + + Jqjv39goLbc6GSwraJ9Wspz/vpA= + + hash2 + + UYTeVsVzOiRxW6tvDrjUCFzDtAJ59EcdumZOhPe6fuc= + + + Headers/RCIMIWMentionedInfo.h + + hash + + 2LvZ0xCmos1SX4KawuSJY1Tkd98= + + hash2 + + a8e+yr5CJavd91kN/ceqjRtkVqnL3WGKd96FSaIYn1M= + + + Headers/RCIMIWMessage.h + + hash + + KUjzmIGwOMx9PT8vTkFgWYjdSwU= + + hash2 + + 8+94KpgMMid7dfHc81WzTIFeRWUvKg9FOfB0i45IOXQ= + + + Headers/RCIMIWMessagePushOptions.h + + hash + + INZw8eqQqHxDVlRDBufb3BzB0zw= + + hash2 + + H0JJfmDTazbk58Jx/4KfuloerPu+JFrxF8b7kwmAGqw= + + + Headers/RCIMIWNativeCustomMediaMessage.h + + hash + + TtJvIjR75Xsdwui1Xgi2LDy7sQo= + + hash2 + + x0bXk2B/V8CSuGyipr38ldRg4z5VlJewFFik2dIfKQc= + + + Headers/RCIMIWNativeCustomMessage.h + + hash + + jl/KqekfUeoiPBsnZx9uSXwL604= + + hash2 + + zJCZ22Musnlgmz168nQy/X2928Pf0VqeH3OBJJ0ALA8= + + + Headers/RCIMIWPlatformConverter.h + + hash + + qBfombP/fhIyPE4YuBePNjby9DI= + + hash2 + + Qp/Je6EMWPamGGqKOzxdrGy0S8nJgak5S/PNUKIj2VY= + + + Headers/RCIMIWRecallNotificationMessage.h + + hash + + hfpwloo0psjA3Do5qKerrEEGxwI= + + hash2 + + gihBvLY/5dIi3+f0eAk+x/6AP3p7qmm23Las654a+pE= + + + Headers/RCIMIWReferenceMessage.h + + hash + + grgrdiQxBQgcjcv5n0veJ+CAziI= + + hash2 + + p7uOCVt34XJnhVyZuh3WEsfeEtytZqBrCro2sjG3HGQ= + + + Headers/RCIMIWSearchConversationResult.h + + hash + + qxxZUH0k9fzbrwHlwWHhHBxJ5R0= + + hash2 + + BILRIt1LsrKPy8ElRc5Iwhi/2lKbizV4Pq4sqJuRLzA= + + + Headers/RCIMIWSightMessage.h + + hash + + sHEoJgaWKxvOUA1AsuPuaXTQZOM= + + hash2 + + 4CmK0XgLeudMWN1ykqHcl7IdgL02aWI+jYabboUNE1M= + + + Headers/RCIMIWTagInfo.h + + hash + + nay+4cxqaKWFfJAFjRSFwhInC/8= + + hash2 + + OvNot8iVhndDHQ1NSkK/1XvSCv8+FZiwVSSJTR3zcVk= + + + Headers/RCIMIWTextMessage.h + + hash + + Rm8BdDUpfiiOteZNWkBihhndJ9k= + + hash2 + + AYeHN9oWIpMsiyefGcxC7jFEpauDhASYP4RcxB9Kl08= + + + Headers/RCIMIWTypingStatus.h + + hash + + akJLOB7HKoppJFBl7M+CRqVnzsE= + + hash2 + + YPGPyuROOdLhtyhf3E331BOPgHc5YfeK1PN7idp54Cc= + + + Headers/RCIMIWUltraGroupTypingStatusInfo.h + + hash + + bbwfwGtOchVmLKU/iOe3eDHptik= + + hash2 + + 0AdngedKL3OJA0QFjGXRtRR1hwUdvsTWcoEvcyaEPTc= + + + Headers/RCIMIWUnknownMessage.h + + hash + + qgUrjxdq+sCU6/1/T4I9sq4LcHA= + + hash2 + + 7p4NYJJwAMXAwYqWwWuhBA438tLXAy24c4QzH5/IZDk= + + + Headers/RCIMIWUserInfo.h + + hash + + 5g7vzLQk3tcFraYj6LiXTofflNA= + + hash2 + + V10qEawgeZq8vDYhIOHCHovrNnRR7oXom02wtpweU6I= + + + Headers/RCIMIWVoiceMessage.h + + hash + + qsVZR8GP7n2O5FqQcKtBfAChfbM= + + hash2 + + b6rItb69TZZsbwvHeE4AtW3UE1msdPiF/u+hCT1jJ9k= + + + Headers/RongIMWrapper.h + + hash + + YdH8Ujk85GPUJ+MR6roHGiP+3tU= + + hash2 + + FMIRQbrWJ0ecIdMZivMktP0aloY6adherETYM/denrQ= + + + Modules/module.modulemap + + hash + + Vh9vdNQkaXreFCi1krLgoYVDvCg= + + hash2 + + 6yfqbvnbVio5ptAdCyz4sU2INYt+rvxvT8q9gkJ+AkQ= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWBlockedMessageInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWBlockedMessageInfo.h new file mode 100644 index 0000000..7ff5513 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWBlockedMessageInfo.h @@ -0,0 +1,46 @@ +// +// RCIMIWBlockedMessageInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/20/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWChatRoomMemberAction.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWChatRoomMemberAction.h new file mode 100644 index 0000000..5b9456d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWChatRoomMemberAction.h @@ -0,0 +1,27 @@ +// +// RCIMIWChatRoomMemberAction.h +// RongIMWrapper +// +// Created by RongCloud on 2/23/22. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCommandMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCommandMessage.h new file mode 100644 index 0000000..da65d2d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCommandMessage.h @@ -0,0 +1,36 @@ +// +// RCIMIWCommandMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCommandNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCommandNotificationMessage.h new file mode 100644 index 0000000..e8ca973 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCommandNotificationMessage.h @@ -0,0 +1,36 @@ +// +// RCIMIWCommandNotificationMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCompressOptions.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCompressOptions.h new file mode 100644 index 0000000..3cda83a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCompressOptions.h @@ -0,0 +1,43 @@ +// +// RCIMIWCompressOptions.h +// RongIMWrapper +// +// Created by RongCloud on 3/21/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWConversation.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWConversation.h new file mode 100644 index 0000000..75392a7 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWConversation.h @@ -0,0 +1,73 @@ +// +// Created by RongCloud on 2/16/22. +// + +#import +#import + +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWConversationTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWConversationTagInfo.h new file mode 100644 index 0000000..ef23a39 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWConversationTagInfo.h @@ -0,0 +1,27 @@ +// +// RCIMIWConversationTagInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/10/22. +// + +#import +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCustomMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCustomMessage.h new file mode 100644 index 0000000..bb98a1c --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWCustomMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWCustomMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWCustomMessage : RCIMIWMessage + +@property (nonatomic, copy, readonly) NSString *identifier; + +@property (nonatomic, assign, readonly) RCIMIWCustomMessagePolicy policy; + +/*! + 消息字段 + */ +@property (nonatomic, strong, readonly) NSDictionary *fields; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWDefines.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWDefines.h new file mode 100644 index 0000000..3e9e172 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWDefines.h @@ -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 */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngine.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngine.h new file mode 100644 index 0000000..51d9849 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngine.h @@ -0,0 +1,1902 @@ +// +// RCIMIWEngine.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +@class RCIMIWEngineOptions; +@class RCIMIWCompressOptions; + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWEngine : NSObject + +- (void)setEngineDelegate:(nullable id )delegate; + +#pragma mark - 初始化 + ++ (instancetype)create:(NSString *)appKey; + ++ (instancetype)create:(NSString *)appKey options:(RCIMIWEngineOptions *)options; + +- (void)destroy; + +#pragma mark - 日志等级 + +- (NSInteger)changeLogLevel:(RCIMIWLogLevel)level; + +#pragma mark - 连接 + +- (NSInteger)connect:(NSString *)token +__deprecated_msg("Use [RCIMIWEngine connect:databaseOpened:connected:] instead"); + +- (NSInteger)connect:(NSString *)token + databaseOpened:(nullable void (^)(NSInteger code))databaseOpenedBlock + connected:(nullable void (^)(NSInteger code, NSString *userId))connectedBlock; + +- (NSInteger)connect:(NSString *)token + timeout:(int)timeout +__deprecated_msg("Use [RCIMIWEngine connect:timeout:databaseOpened:connected:] instead"); + +- (NSInteger)connect:(NSString *)token + timeout:(int)timeout + databaseOpened:(nullable void (^)(NSInteger code))databaseOpenedBlock + connected:(nullable void (^)(NSInteger code, NSString *userId))connectedBlock; + +- (NSInteger)disconnect; + +- (NSInteger)disconnect:(BOOL)receivePush; + +#pragma mark - 消息创建/注册 + +- (NSInteger)registerCustomMessage:(NSArray *)messageContentClassList; + +/// 注册原生自定义普通消息 +/// +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter persistentFlag: 消息存储策略 +/// - Returns: 接口调用状态 +- (NSInteger)registerNativeCustomMessage:(NSString *)messageIdentifier persistentFlag:(RCIMIWNativeCustomMessagePersistentFlag)persistent; + +/// 注册原生自定义媒体消息 +/// +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter persistentFlag: 消息存储策略 +/// - Returns: 接口调用状态 +- (NSInteger)registerNativeCustomMediaMessage:(NSString *)messageIdentifier persistentFlag:(RCIMIWNativeCustomMessagePersistentFlag)persistent; + +- (RCIMIWTextMessage *)createTextMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + text:(NSString *)text; + +- (RCIMIWImageMessage *)createImageMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path; + +- (RCIMIWFileMessage *)createFileMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path; + +- (RCIMIWSightMessage *)createSightMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path + duration:(int)duration; + +- (RCIMIWVoiceMessage *)createVoiceMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path + duration:(int)duration; + +- (RCIMIWCustomMessage *)createCustomMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + policy:(RCIMIWCustomMessagePolicy)policy + messageIdentifier:(NSString *)messageIdentifier + fields:(NSDictionary *)fields; + +- (RCIMIWGIFMessage *)createGIFMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + path:(NSString *)path; + +- (RCIMIWReferenceMessage *)createReferenceMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + referenceMessage:(RCIMIWMessage *)referMessage + text:(NSString *)referenceString; + +- (RCIMIWLocationMessage *)createLocationMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + longitude:(double)longitude + latitude:(double)latitude + poiName:(NSString *)poiName + thumbnailPath:(NSString *)thumbnailPath; + +/// 创建原生自定义普通消息 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter fields: 消息内容 +- (RCIMIWNativeCustomMessage *)createNativeCustomMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageIdentifier:(NSString *)messageIdentifier + fields:(NSDictionary *)fields; + +/// 创建原生自定义媒体消息 +/// +/// - Parameter type: 会话类型 +/// - Parameter targetId: 会话 ID +/// - Parameter channelId: 所属会话的业务标识 +/// - Parameter messageIdentifier: 消息唯一标识 +/// - Parameter path: 媒体文件路径 +/// - Parameter fields: 消息内容 +- (RCIMIWNativeCustomMediaMessage *)createNativeCustomMediaMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messageIdentifier:(NSString *)messageIdentifier + path:(NSString *)path + fields:(NSDictionary *)fields; + +#pragma mark - 发送消息 + +- (NSInteger)sendMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine sendMessage:messageSaved:messageSent:] instead"); + +- (NSInteger)sendMessage:(RCIMIWMessage *)message + messageSaved:(nullable void (^)(RCIMIWMessage *message))messageSavedBlock + messageSent:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageSentBlock; + +- (NSInteger)sendMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine sendMediaMessage:messageSaved:messageSending:sendingMediaMessageCanceled:messageSent:] instead"); + +- (NSInteger)sendMediaMessage:(RCIMIWMediaMessage *)message + messageSaved:(nullable void (^)(RCIMIWMediaMessage *message))messageSavedBlock + messageSending:(nullable void (^)(RCIMIWMediaMessage *message, NSInteger progress))messageSendingBlock + sendingMediaMessageCanceled:(nullable void (^)(RCIMIWMediaMessage *message))sendingMediaMessageCanceledBlock + messageSent:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))messageSentBlock; + +- (NSInteger)cancelSendingMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine cancelSendingMediaMessage:cancelSendingMediaMessageCalled:] instead"); + +- (NSInteger)cancelSendingMediaMessage:(RCIMIWMediaMessage *)message + cancelSendingMediaMessageCalled:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))cancelSendingMediaMessageCalledBlock; + +- (NSInteger)sendTypingStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + currentType:(NSString *)currentType; + +- (NSInteger)sendTypingStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + currentType:(NSString *)currentType; + +/*! + 发送定向消息 + + @param userIds 接收消息的用户 ID 列表 + + @return 发送的消息实体 + + @discussion 此方法用于在群组和讨论组中发送消息给其中的部分用户,其它用户不会收到这条消息。 + @discussion userIds 的用户个数不能超过 300,超过会被截断。 + + @warning 此方法目前仅支持普通群组。 + + @remarks 消息操作 + */ +- (NSInteger)sendGroupMessageToDesignatedUsers:(RCIMIWMessage *)message userIds:(NSArray *)userIds +__deprecated_msg("Use [RCIMIWEngine sendGroupMessageToDesignatedUsers:messageSaved:messageSent:] instead"); + +- (NSInteger)sendGroupMessageToDesignatedUsers:(RCIMIWMessage *)message userIds:(NSArray *)userIds + messageSaved:(nullable void (^)(RCIMIWMessage *message))messageSavedBlock + messageSent:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageSentBlock; + +#pragma mark - 下载媒体消息 + +- (NSInteger)downloadMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine downloadMediaMessage:mediaMessageDownloading:downloadingMediaMessageCanceled:mediaMessageDownloaded:] instead"); + +- (NSInteger)downloadMediaMessage:(RCIMIWMediaMessage *)message + mediaMessageDownloading:(nullable void (^)(RCIMIWMediaMessage *message, NSInteger progress))mediaMessageDownloadingBlock + downloadingMediaMessageCanceled:(nullable void (^)(RCIMIWMediaMessage *message))downloadingMediaMessageCanceledBlock + mediaMessageDownloaded:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))mediaMessageDownloadedBlock; + +- (NSInteger)cancelDownloadingMediaMessage:(RCIMIWMediaMessage *)message +__deprecated_msg("Use [RCIMIWEngine cancelDownloadingMediaMessage:cancelDownloadingMediaMessageCalled:] instead"); + +- (NSInteger)cancelDownloadingMediaMessage:(RCIMIWMediaMessage *)message + cancelDownloadingMediaMessageCalled:(nullable void (^)(NSInteger code, RCIMIWMediaMessage *message))cancelDownloadingMediaMessageCalledBlock; + +#pragma mark - 获取历史消息 + +// +/*! + 获取远端+本地的消息 + + @param sentTime 起始的消息发送时间戳,毫秒 + @param order sentTime 时间的前后顺序 + RCIMIWOrderBefore: 结合传入的时间戳参数,获取 sentTime 之前的消息 (时间递减) + RCIMIWOrderLater: 结合传入的时间戳参数,获取 sentTime 之后的消息 (时间递增) + @param count 需要获取的消息数量, 0 < count <= 20,超过 20 条 只会加载 20条 + */ +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:sentTime:order:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:channelId:sentTime:order:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取指定 policy 类型的消息 + + @param sentTime 起始的消息发送时间戳,毫秒 + + @param order sentTime 时间的前后顺序 + RCIMIWOrderBefore: 结合传入的时间戳参数,获取 sentTime 之前的消息 (时间递减) + RCIMIWOrderLater: 结合传入的时间戳参数,获取 sentTime 之后的消息 (时间递增) + + @param count 需要获取的消息数量 + 0 < count <= 20,超过 20 条 只会加载 20条 + policy 为 RCIMIWLoadMessagePolicyLocal 时, count 数量不受限制 + + @param policy 加载策略(本地、远端、本地+远端) + */ +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:sentTime:order:policy:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getMessages:targetId:channelId:sentTime:order:policy:count:success:error:] instead"); + +- (NSInteger)getMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + sentTime:(long long)sentTime + order:(RCIMIWTimeOrder)order + policy:(RCIMIWMessageOperationPolicy)policy + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedMessages:targetId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedMessages:targetId:channelId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getFirstUnreadMessage:targetId:success:error:] instead"); + +- (NSInteger)getFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(RCIMIWMessage *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getFirstUnreadMessage:targetId:channelId:success:error:] instead"); + +- (NSInteger)getFirstUnreadMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWMessage *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)getMessageById:(long)messageId + success:(nullable void (^)(RCIMIWMessage *message))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)getMessageByUId:(NSString *)messageUId + success:(nullable void (^)(RCIMIWMessage *message))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 插入消息 + +/*! + 插入一条消息, + 可设置消息的方向(messageDirection)为 发送(RCIMIWMessageDirectionSend)或 接收(RCIMIWMessageDirectionReceive), + 同时 必须 设置消息方向对应的 发送状态(sentStatus)或 接收状态(receivedStatus) + + @param message 默认创建出来 message 的 messageDirection 是 RCIMIWMessageDirectionSend + @return 接口调用状态 + */ +- (NSInteger)insertMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine insertMessage:messageInserted:] instead"); + +- (NSInteger)insertMessage:(RCIMIWMessage *)message + messageInserted:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageInsertedBlock; + +- (NSInteger)insertMessages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine insertMessages:messagesInserted:] instead"); + +- (NSInteger)insertMessages:(NSArray *)messages + messagesInserted:(nullable void (^)(NSInteger code, NSArray *messages))messagesInsertedBlock; + +#pragma mark - 删除消息 + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:timestamp:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +/*! + 清除历史消息 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @param timestamp 清除消息时间戳,【0 <= timestamp <= 当前会话最后一条消息的 sentTime. + 0 清除所有消息,其他值清除小于等于 recordTime 的消息】 + + @discussion + 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 + + @remarks 消息操作 + */ +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:channelId:timestamp:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:timestamp:policy:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +/*! + 清除历史消息 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @param timestamp 清除消息时间戳,【0 <= timestamp <= 当前会话最后一条消息的 sentTime,0 + 清除所有消息,其他值清除小于等于 recordTime 的消息】 + @param policy 删除策略( + RCIMIWLoadMessagePolicyLocal: 删除本地; + RCIMIWLoadMessagePolicyRemote: 删除远端; + RCIMIWLoadMessagePolicyLocalRemote: 同时删除本地和远端) + + @discussion + 此方法可以清除服务器端历史消息和本地消息,如果清除服务器端消息必须先开通历史消息云存储功能。 + 例如,您不想从服务器上获取更多的历史消息,通过指定 recordTime 并设置 policy 为 RCIMIWLoadMessagePolicyLocalRemote + 清除消息,成功后只能获取该时间戳之后的历史消息。如果 policy 传 RCIMIWLoadMessagePolicyLocal,只会清除本地消息。 + + @remarks 消息操作 + */ +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy +__deprecated_msg("Use [RCIMIWEngine clearMessages:targetId:channelId:timestamp:policy:messagesCleared:] instead"); + +- (NSInteger)clearMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy + messagesCleared:(nullable void (^)(NSInteger code))messagesClearedBlock; + +- (NSInteger)deleteLocalMessages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine deleteLocalMessages:localMessagesDeleted:] instead"); + +- (NSInteger)deleteLocalMessages:(NSArray *)messages + localMessagesDeleted:(nullable void (^)(NSInteger code, NSArray *messages))localMessagesDeletedBlock; + +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine deleteMessages:targetId:messages:messagesDeleted:] instead"); + +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + messages:(NSArray *)messages + messagesDeleted:(nullable void (^)(NSInteger code, NSArray *messages))messagesDeletedBlock; + +/*! + 批量删除某个会话中的指定消息(同时删除本地和远端消息) + + @param type 会话类型,不支持聊天室 + @param targetId 目标会话ID + @param channelId 所属会话的业务标识 + @param messages 将被删除的消息列表 + + @discussion 此方法会同时删除本地和远端消息。 + 一次批量操作仅支持删除属于同一个会话的消息,请确保消息列表中的所有消息来自同一会话 + 一次最多删除 100 条消息。 + */ +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine deleteMessages:targetId:channelId:messages:messagesDeleted:] instead"); + +- (NSInteger)deleteMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages + messagesDeleted:(nullable void (^)(NSInteger code, NSArray *messages))messagesDeletedBlock; + +#pragma mark - 撤回消息 + +- (NSInteger)recallMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine recallMessage:messageRecalled:] instead"); + +- (NSInteger)recallMessage:(RCIMIWMessage *)message + messageRecalled:(nullable void (^)(NSInteger code, RCIMIWMessage *message))messageRecalledBlock; + +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine sendPrivateReadReceiptMessage:timestamp:privateReadReceiptMessageSent:] instead"); + +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + timestamp:(long long)timestamp + privateReadReceiptMessageSent:(nullable void (^)(NSInteger code))privateReadReceiptMessageSentBlock; + +/*! + 发送某个单聊会话中消息阅读的回执 + + @discussion 此接口只支持单聊。收到远端消息已读回执之后,会回调 delegate 中的 onRemoteConversationReadStatusSynced 方法。 + */ +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine sendPrivateReadReceiptMessage:channelId:timestamp:privateReadReceiptMessageSent:] instead"); + +- (NSInteger)sendPrivateReadReceiptMessage:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + privateReadReceiptMessageSent:(nullable void (^)(NSInteger code))privateReadReceiptMessageSentBlock; + +#pragma mark - 消息扩展 + +- (NSInteger)updateMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion +__deprecated_msg("Use [RCIMIWEngine updateMessageExpansion:expansion:messageExpansionUpdated:] instead"); + +- (NSInteger)updateMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion + messageExpansionUpdated:(nullable void (^)(NSInteger code))messageExpansionUpdatedBlock; + +- (NSInteger)removeMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys +__deprecated_msg("Use [RCIMIWEngine removeMessageExpansionForKeys:keys:messageExpansionForKeysRemoved:] instead"); + +- (NSInteger)removeMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys + messageExpansionForKeysRemoved:(nullable void (^)(NSInteger code))messageExpansionForKeysRemovedBlock; + +#pragma mark - 修改消息接收、发送状态 + +- (NSInteger)changeMessageReceiveStatus:(long)messageId + receivedStatus:(RCIMIWReceivedStatus)receivedStatus +__deprecated_msg("Use [RCIMIWEngine changeMessageReceiveStatus:receivedStatus:messageReceiveStatusChanged:] instead"); + +- (NSInteger)changeMessageReceiveStatus:(long)messageId + receivedStatus:(RCIMIWReceivedStatus)receivedStatus + messageReceiveStatusChanged:(nullable void (^)(NSInteger code))messageReceiveStatusChangedBlock; + +- (NSInteger)changeMessageSentStatus:(long)messageId + sentStatus:(RCIMIWSentStatus)sentStatus +__deprecated_msg("Use [RCIMIWEngine changeMessageSentStatus:sentStatus:messageSentStatusChanged:] instead"); + +- (NSInteger)changeMessageSentStatus:(long)messageId + sentStatus:(RCIMIWSentStatus)sentStatus + messageSentStatusChanged:(nullable void (^)(NSInteger code))messageSentStatusChangedBlock; + +#pragma mark - 会话 + +- (NSInteger)loadConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getConversation:targetId:success:error:] instead"); + +- (NSInteger)getConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(RCIMIWConversation *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取单个会话数据 + + */ +- (NSInteger)loadConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getConversation:targetId:channelId:success:error:] instead"); + +- (NSInteger)getConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWConversation *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadConversations:(NSArray *)conversationTypes + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getConversations:startTime:count:success:error:] instead"); + +- (NSInteger)getConversations:(NSArray *)conversationTypes + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + + +- (NSInteger)getUnreadConversations:(NSArray *)conversationTypes + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + + +/*! + 分页获取会话列表 + + @param conversationTypes 会话类型的数组( 需要将 RCIMIWConversationType 转为 NSNumber 构建 NSArray ) + @param startTime 会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取) + @param count 获取的数量, 0 < count <= 50(当实际取回的会话数量小于 count 值时,表明已取完数据) + @return 接口调用状态 + + @discussion 此方法会从本地数据库中,读取会话列表。 + 返回的会话列表按照时间从前往后排列,如果有置顶的会话,则置顶的会话会排列在前面。 + + @remarks 会话 + */ +- (NSInteger)loadConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getConversations:channelId:startTime:count:success:error:] instead"); + +- (NSInteger)getConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine removeConversation:targetId:conversationRemoved:] instead"); + +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + conversationRemoved:(nullable void (^)(NSInteger code))conversationRemovedBlock; + +/*! + 从本地存储中删除会话 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @return 接口调用状态 + + @discussion + 此方法会从本地存储中删除该会话,但是不会删除会话中的消息。如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息。 + + @remarks 会话 + */ +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine removeConversation:targetId:channelId:conversationRemoved:] instead"); + +- (NSInteger)removeConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + conversationRemoved:(nullable void (^)(NSInteger code))conversationRemovedBlock; + +- (NSInteger)removeConversations:(NSArray *)conversationTypes +__deprecated_msg("Use [RCIMIWEngine removeConversations:conversationsRemoved:] instead"); + +- (NSInteger)removeConversations:(NSArray *)conversationTypes + conversationsRemoved:(nullable void (^)(NSInteger code))conversationsRemovedBlock; + +/*! + 删除指定类型的会话 + + @param conversationTypes 会话类型的数组(需要将 RCConversationType 转为 NSNumber 构建 NSArray) + @param channelId 所属会话的业务标识 + @return 接口调用状态 + + @discussion 此方法会从本地存储中删除该会话,同时删除会话中的消息。 + + @discussion 此方法不支持超级群的会话类型,包含超级群时可能会造成数据异常。 + + @remarks 会话 + */ +- (NSInteger)removeConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine removeConversations:channelId:conversationsRemoved:] instead"); + +- (NSInteger)removeConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + conversationsRemoved:(nullable void (^)(NSInteger code))conversationsRemovedBlock; + +- (NSInteger)loadMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getMessageCount:targetId:success:error:] instead"); + +- (NSInteger)getMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取会话中的消息数量 + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @return 会话中的消息数量 + + @remarks 会话 + */ +- (NSInteger)loadMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getMessageCount:targetId:channelId:success:error:] instead"); + +- (NSInteger)getMessageCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 会话未读数 + +- (NSInteger)loadTotalUnreadCount +__deprecated_msg("Use [RCIMIWEngine getTotalUnreadCount:error:] instead"); + +- (NSInteger)getTotalUnreadCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadTotalUnreadCount:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getTotalUnreadCount:success:error:] instead"); + +- (NSInteger)getTotalUnreadCount:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUnreadCount:targetId:success:error:] instead"); + +- (NSInteger)getUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUnreadCount:targetId:channelId:success:error:] instead"); + +- (NSInteger)getUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadCountByConversationTypes:(NSArray *)conversationTypes + contain:(BOOL)contain +__deprecated_msg("Use [RCIMIWEngine getUnreadCountByConversationTypes:contain:success:error:] instead"); + +- (NSInteger)getUnreadCountByConversationTypes:(NSArray *)conversationTypes + contain:(BOOL)contain + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/** + 获取某些类型的会话中所有的未读消息数 (聊天室会话除外) + + @param conversationTypes 会话类型的数组 + @param channelId 所属会话的业务标识 + @param contain 是否包含免打扰消息的未读数 + @return 该类型的会话中所有的未读消息数 + + @remarks 会话 + */ +- (NSInteger)loadUnreadCountByConversationTypes:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + contain:(BOOL)contain +__deprecated_msg("Use [RCIMIWEngine getUnreadCountByConversationTypes:channelId:contain:success:error:] instead"); + +- (NSInteger)getUnreadCountByConversationTypes:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + contain:(BOOL)contain + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedCount:targetId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取会话中@提醒自己的消息 + + @discussion 此接口仅支持 RCIMIWConversationTypeGroup、 RCIMIWConversationTypeUltraGroup + */ +- (NSInteger)loadUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUnreadMentionedCount:targetId:channelId:success:error:] instead"); + +- (NSInteger)getUnreadMentionedCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearUnreadCount:targetId:timestamp:unreadCountCleared:] instead"); + +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + unreadCountCleared:(nullable void (^)(NSInteger code))unreadCountClearedBlock; + +/*! + 清除某个会话中的未读消息数 + + @param type 会话类型,不支持聊天室 + @param targetId 会话 ID + @param timestamp 该会话已阅读的最后一条消息的发送时间戳 (该会话在时间戳 timestamp 之前的消息将被置成已读,传 0 表示 清除某个会话中的所有未读消息数) + */ +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearUnreadCount:targetId:channelId:timestamp:unreadCountCleared:] instead"); + +- (NSInteger)clearUnreadCount:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + unreadCountCleared:(nullable void (^)(NSInteger code))unreadCountClearedBlock; + +#pragma mark - 会话草稿 + +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + draft:(NSString *)draft +__deprecated_msg("Use [RCIMIWEngine saveDraftMessage:targetId:draft:draftMessageSaved:] instead"); + +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + draft:(NSString *)draft + draftMessageSaved:(nullable void (^)(NSInteger code))draftMessageSavedBlock; + +/*! + 保存草稿信息(用户输入但未发送的暂存消息) + + @param type 会话类型 + @param targetId 会话 ID + @param draft 草稿信息 + */ +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + draft:(NSString *)draft +__deprecated_msg("Use [RCIMIWEngine saveDraftMessage:targetId:channelId:draft:draftMessageSaved:] instead"); + +- (NSInteger)saveDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + draft:(NSString *)draft + draftMessageSaved:(nullable void (^)(NSInteger code))draftMessageSavedBlock; + +- (NSInteger)loadDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getDraftMessage:targetId:success:error:] instead"); + +- (NSInteger)getDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(NSString * _Nullable draft))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getDraftMessage:targetId:channelId:success:error:] instead"); + +- (NSInteger)getDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSString * _Nullable draft))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine clearDraftMessage:targetId:draftMessageCleared:] instead"); + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + draftMessageCleared:(nullable void (^)(NSInteger code))draftMessageClearedBlock; + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine clearDraftMessage:targetId:channelId:draftMessageCleared:] instead"); + +- (NSInteger)clearDraftMessage:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + draftMessageCleared:(nullable void (^)(NSInteger code))draftMessageClearedBlock; + +#pragma mark - 会话免打扰 + +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeConversationNotificationLevel:targetId:level:conversationNotificationLevelChanged:] instead"); + +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level + conversationNotificationLevelChanged:(nullable void (^)(NSInteger code))conversationNotificationLevelChangedBlock; + +/** + * @param type 会话类型 + * @param targetId 会话 ID + * @param channelId 频道 ID + * @param level 消息通知级别 + * @discussion 如要移除免打扰,设置 level 为 RCIMIWPushNotificationLevelDefault 表示移除免打扰 + */ +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeConversationNotificationLevel:targetId:channelId:level:conversationNotificationLevelChanged:] instead"); + +- (NSInteger)changeConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level + conversationNotificationLevelChanged:(nullable void (^)(NSInteger code))conversationNotificationLevelChangedBlock; + +- (NSInteger)loadConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getConversationNotificationLevel:targetId:success:error:] instead"); + +- (NSInteger)getConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getConversationNotificationLevel:targetId:channelId:success:error:] instead"); + +- (NSInteger)getConversationNotificationLevel:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadBlockedConversations:(NSArray *)conversationTypes +__deprecated_msg("Use [RCIMIWEngine getBlockedConversations:success:error:] instead"); + +- (NSInteger)getBlockedConversations:(NSArray *)conversationTypes + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadBlockedConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getBlockedConversations:channelId:success:error:] instead"); + +- (NSInteger)getBlockedConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/** + * 设置会话类型免打扰 + * @param type 会话类型 + * @param level 消息通知级别 + * @discussion 如要移除消息提醒状态,设置 level 为 RCIMIWPushNotificationLevelDefault + */ +- (NSInteger)changeConversationTypeNotificationLevel:(RCIMIWConversationType)type + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeConversationTypeNotificationLevel:level:conversationTypeNotificationLevelChanged:] instead"); + +- (NSInteger)changeConversationTypeNotificationLevel:(RCIMIWConversationType)type + level:(RCIMIWPushNotificationLevel)level + conversationTypeNotificationLevelChanged:(nullable void (^)(NSInteger code))conversationTypeNotificationLevelChangedBlock; + +/** + * 获取会话类型的消息提醒状态 + * @param type 会话类型 + */ +- (NSInteger)loadConversationTypeNotificationLevel:(RCIMIWConversationType)type +__deprecated_msg("Use [RCIMIWEngine getConversationTypeNotificationLevel:success:error:] instead"); + +- (NSInteger)getConversationTypeNotificationLevel:(RCIMIWConversationType)type + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 会话置顶 + +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + top:(BOOL)top +__deprecated_msg("Use [RCIMIWEngine changeConversationTopStatus:targetId:top:conversationTopStatusChanged:] instead"); + +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + top:(BOOL)top + conversationTopStatusChanged:(nullable void (^)(NSInteger code))conversationTopStatusChangedBlock; + +/** + * + * @param type 会话类型 + * @param targetId 会话 ID + * @param channelId 频道 ID + * @param top 是否置顶 + * @return 接口调用状态码 + */ +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + top:(BOOL)top +__deprecated_msg("Use [RCIMIWEngine changeConversationTopStatus:targetId:channelId:top:conversationTopStatusChanged:] instead"); + +- (NSInteger)changeConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + top:(BOOL)top + conversationTopStatusChanged:(nullable void (^)(NSInteger code))conversationTopStatusChangedBlock; + +- (NSInteger)loadConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getConversationTopStatus:targetId:success:error:] instead"); + +- (NSInteger)getConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/** + * + * @param type 会话类型 + * @param targetId 会话 ID + * @return 接口调用状态码 + */ +- (NSInteger)loadConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getConversationTopStatus:targetId:channelId:success:error:] instead"); + +- (NSInteger)getConversationTopStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadTopConversations:(NSArray *)conversationTypes +__deprecated_msg("Use [RCIMIWEngine getTopConversations:success:error:] instead"); + +- (NSInteger)getTopConversations:(NSArray *)conversationTypes + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 获取置顶的会话列表 + + @param conversationTypes 会话类型的数组( 需要将 RCIMIWConversationType 转为 NSNumber 构建 NSArray ) + @return 接口调用状态 + + @discussion 此方法会从本地数据库中,读取置顶的会话列表。 + + @remarks 会话列表 + */ +- (NSInteger)loadTopConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getTopConversations:channelId:success:error:] instead"); + +- (NSInteger)getTopConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 多端状态同步 + +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine syncConversationReadStatus:targetId:timestamp:conversationReadStatusSynced:] instead"); + +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + timestamp:(long long)timestamp + conversationReadStatusSynced:(nullable void (^)(NSInteger code))conversationReadStatusSyncedBlock; + +/*! + 同步会话阅读状态(把指定会话里所有发送时间早于 timestamp 的消息置为已读) + + @param type 会话类型 + @param targetId 会话 ID + @param channelId 所属会话的业务标识 + @param timestamp 已经阅读的最后一条消息的 Unix 时间戳(毫秒) + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 高级功能 + */ +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine syncConversationReadStatus:targetId:channelId:timestamp:conversationReadStatusSynced:] instead"); + +- (NSInteger)syncConversationReadStatus:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + conversationReadStatusSynced:(nullable void (^)(NSInteger code))conversationReadStatusSyncedBlock; + +#pragma mark - 聊天室 + +- (NSInteger)joinChatRoom:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:messageCount:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +- (NSInteger)joinChatRoom:(NSString *)targetId + autoCreate:(BOOL)autoCreate +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:autoCreate:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + autoCreate:(BOOL)autoCreate + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +/*! + 加入聊天室 + + @param targetId 聊天室 ID + @param messageCount 进入聊天室时获取历史消息的数量,-1 <= messageCount <= 50 + @param autoCreate 如果聊天室不存在,是否自动创建。 YES: 自动创建 NO: 不自动创建 + [status: 加入聊天室失败的错误码] + + @discussion + 可以通过传入的 messageCount 设置加入聊天室成功之后需要获取的历史消息数量。 + -1 表示不获取任何历史消息,0 表示不特殊设置而使用SDK默认的设置(默认为获取 10 条),0 < messageCount <= 50 + 为具体获取的消息数量,最大值为 50。注:如果是 7.x 系统获取历史消息数量不要大于 30 + + @warning 没有加入过的聊天室(或杀死 app 重新打开),调用该接口会把该聊天室本地的消息与 KV 清除 + + @remarks 聊天室 + */ +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + autoCreate:(BOOL)autoCreate +__deprecated_msg("Use [RCIMIWEngine joinChatRoom:messageCount:autoCreate:chatRoomJoined:] instead"); + +- (NSInteger)joinChatRoom:(NSString *)targetId + messageCount:(int)messageCount + autoCreate:(BOOL)autoCreate + chatRoomJoined:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomJoinedBlock; + +- (NSInteger)leaveChatRoom:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine leaveChatRoom:chatRoomLeft:] instead"); + +- (NSInteger)leaveChatRoom:(NSString *)targetId + chatRoomLeft:(nullable void (^)(NSInteger code, NSString *targetId))chatRoomLeftBlock; + +/*! + 获取聊天室的历史消息 + @param targetId 聊天室 ID + @param timestamp 起始的消息发送时间戳,毫秒 + @param order 拉取顺序 + RCIMIWTimeOrderBefore:表示拉取小(早)于 timestamp 的消息。 + RCIMIWTimeOrderAfter:表示拉取大(晚)于 timestamp 的消息。 + @param count 需要获取的消息数量, 0 < count <= 50 + */ +- (NSInteger)loadChatRoomMessages:(NSString *)targetId + timestamp:(long long)timestamp + order:(RCIMIWTimeOrder)order + count:(int)count +__deprecated_msg("Use [RCIMIWEngine getChatRoomMessages:timestamp:order:count:success:error:] instead"); + +- (NSInteger)getChatRoomMessages:(NSString *)targetId + timestamp:(long long)timestamp + order:(RCIMIWTimeOrder)order + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 聊天室 KV + +/** + 设置聊天室自定义属性 + + @param targetId 聊天室 ID + @param key 聊天室属性名称,Key 支持大小写英文字母、数字、部分特殊符号 + = - _ 的组合方式,最大长度 128 个字符 + @param value 聊天室属性对应的值,最大长度 4096 个字符 + @param deleteWhenLeft 用户掉线或退出时,是否自动删除该 Key、Value 值;自动删除时不会发送通知 + @param overwrite 如果 overwrite 为 YES ,设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。 + 如果 overwrite 为 NO,设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值,且只有 key + 的创建者可以更新属性的值。 + + @discussion 必须先开通聊天室状态存储功能 + 强制设置聊天室自定义属性,当 key 不存在时,代表增加属性; 当 key 已经存在时,代表更新属性的值。 + + @remarks 聊天室 + */ +- (NSInteger)addChatRoomEntry:(NSString *)targetId + key:(NSString *)key + value:(NSString *)value + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite +__deprecated_msg("Use [RCIMIWEngine addChatRoomEntry:key:value:deleteWhenLeft:overwrite:chatRoomEntryAdded:] instead"); + +- (NSInteger)addChatRoomEntry:(NSString *)targetId + key:(NSString *)key + value:(NSString *)value + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite + chatRoomEntryAdded:(nullable void (^)(NSInteger code))chatRoomEntryAddedBlock; + +- (NSInteger)addChatRoomEntries:(NSString *)targetId + entries:(NSDictionary *)entries + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite +__deprecated_msg("Use [RCIMIWEngine addChatRoomEntries:entries:deleteWhenLeft:overwrite:chatRoomEntriesAdded:] instead"); + +- (NSInteger)addChatRoomEntries:(NSString *)targetId + entries:(NSDictionary *)entries + deleteWhenLeft:(BOOL)deleteWhenLeft + overwrite:(BOOL)overwrite + chatRoomEntriesAdded:(nullable void (^)(NSInteger code, NSDictionary * _Nullable errors))chatRoomEntriesAddedBlock; + +- (NSInteger)loadChatRoomEntry:(NSString *)targetId + key:(NSString *)key +__deprecated_msg("Use [RCIMIWEngine getChatRoomEntry:key:success:error:] instead"); + +- (NSInteger)getChatRoomEntry:(NSString *)targetId + key:(NSString *)key + success:(nullable void (^)(NSDictionary *entry))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadChatRoomAllEntries:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getChatRoomAllEntries:success:error:] instead"); + +- (NSInteger)getChatRoomAllEntries:(NSString *)targetId + success:(nullable void (^)(NSDictionary *entries))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)removeChatRoomEntry:(NSString *)targetId + key:(NSString *)key + force:(BOOL)force +__deprecated_msg("Use [RCIMIWEngine removeChatRoomEntry:key:force:chatRoomEntryRemoved:] instead"); + +- (NSInteger)removeChatRoomEntry:(NSString *)targetId + key:(NSString *)key + force:(BOOL)force + chatRoomEntryRemoved:(nullable void (^)(NSInteger code))chatRoomEntryRemovedBlock; + +- (NSInteger)removeChatRoomEntries:(NSString *)targetId + keys:(NSArray *)keys + force:(BOOL)force +__deprecated_msg("Use [RCIMIWEngine removeChatRoomEntries:key:force:chatRoomEntriesRemoved:] instead"); + +- (NSInteger)removeChatRoomEntries:(NSString *)targetId + keys:(NSArray *)keys + force:(BOOL)force + chatRoomEntriesRemoved:(nullable void (^)(NSInteger code))chatRoomEntriesRemovedBlock; + +#pragma mark - 用户管理 + +- (NSInteger)addToBlacklist:(NSString *)userId +__deprecated_msg("Use [RCIMIWEngine addToBlacklist:blacklistAdded:] instead"); + +- (NSInteger)addToBlacklist:(NSString *)userId + blacklistAdded:(nullable void (^)(NSInteger code, NSString *userId))blacklistAddedBlock; + +- (NSInteger)removeFromBlacklist:(NSString *)userId +__deprecated_msg("Use [RCIMIWEngine removeFromBlacklist:blacklistRemoved:] instead"); + +- (NSInteger)removeFromBlacklist:(NSString *)userId + blacklistRemoved:(nullable void (^)(NSInteger code, NSString *userId))blacklistRemovedBlock; + +- (NSInteger)loadBlacklist +__deprecated_msg("Use [RCIMIWEngine getBlacklist:error:] instead"); + +- (NSInteger)getBlacklist:(nullable void (^)(NSArray *userIds))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)loadBlacklistStatus:(NSString *)userId +__deprecated_msg("Use [RCIMIWEngine getBlacklistStatus:success:error:] instead"); + +- (NSInteger)getBlacklistStatus:(NSString *)userId + success:(nullable void (^)(RCIMIWBlacklistStatus status))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 搜索消息 + +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessages:targetId:keyword:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 根据关键字搜索指定会话中的消息 + + @param type 会话类型 ( 不支持超级群的会话类型 ) + @param targetId 会话 ID + @param keyword 关键字 + @param count 最大的查询数量 0 < count <= 50 + @param startTime 查询 startTime 之前的消息(传 0 表示不限时间) + + @return 接口调用状态 + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 消息操作 + */ +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessages:targetId:channelId:keyword:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessages:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByTimeRange:targetId:keyword:startTime:endTime:offset:count:success:error:] instead"); + +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 根据时间,偏移量和个数搜索指定会话中的消息 + + @param type 会话类型 + @param targetId 会话 ID + @param keyword 关键字,传空默认为是查全部符合条件的消息 + @param startTime 查询 startTime 之后的消息, startTime >= 0 + @param endTime 查询 endTime 之前的消息,endTime > startTime + @param offset 查询的消息的偏移量,offset >= 0 + @param count 最大的查询数量, 0 < count <= 50。 + + @return 匹配的消息列表 + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 消息操作 + */ +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByTimeRange:targetId:channelId:keyword:startTime:endTime:offset:count:success:error:] instead"); + +- (NSInteger)searchMessagesByTimeRange:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + keyword:(NSString *)keyword + startTime:(long long)startTime + endTime:(long long)endTime + offset:(int)offset + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByUserId:type:targetId:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 按用户 ID 搜索指定会话中的消息 + + @param userId 搜索用户 ID + @param type 会话类型 + @param targetId 会话 ID + @param count 最大的查询数量 0 < count <= 50 + @param startTime 查询 startTime 之前的消息(传 0 表示不限时间) + + @return 匹配的消息列表 + + @discussion 此方法不支持超级群的会话类型。 + + @remarks 消息操作 + */ +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count +__deprecated_msg("Use [RCIMIWEngine searchMessagesByUserId:type:targetId:channelId:startTime:count:success:error:] instead"); + +- (NSInteger)searchMessagesByUserId:(NSString *)userId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(nullable NSString *)channelId + startTime:(long long)startTime + count:(int)count + success:(nullable void (^)(NSArray *messages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 群聊回执 + +- (NSInteger)sendGroupReadReceiptRequest:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine sendGroupReadReceiptRequest:groupReadReceiptRequestSent:] instead"); + +- (NSInteger)sendGroupReadReceiptRequest:(RCIMIWMessage *)message + groupReadReceiptRequestSent:(nullable void (^)(NSInteger code, RCIMIWMessage *message))groupReadReceiptRequestSentBlock; + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine sendGroupReadReceiptResponse:messages:groupReadReceiptResponseSent:] instead"); + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + messages:(NSArray *)messages + groupReadReceiptResponseSent:(nullable void (^)(NSInteger code, NSArray *messages))groupReadReceiptResponseSentBlock; + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine sendGroupReadReceiptResponse:channelId:messages:groupReadReceiptResponseSent:] instead"); + +- (NSInteger)sendGroupReadReceiptResponse:(NSString *)targetId + channelId:(nullable NSString *)channelId + messages:(NSArray *)messages + groupReadReceiptResponseSent:(nullable void (^)(NSInteger code, NSArray *messages))groupReadReceiptResponseSentBlock; + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword +__deprecated_msg("Use [RCIMIWEngine searchConversations:messageTypes:keyword:success:error:] instead"); + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword + success:(nullable void (^)(NSArray *results))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword +__deprecated_msg("Use [RCIMIWEngine searchConversations:channelId:messageTypes:keyword:success:error:] instead"); + +- (NSInteger)searchConversations:(NSArray *)conversationTypes + channelId:(nullable NSString *)channelId + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword + success:(nullable void (^)(NSArray *results))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 会话标签 +// +- (NSInteger)createTag:(NSString *)tagId tagName:(NSString *)tagName tagCreated:(nullable void (^)(NSInteger code))tagCreatedBlock; +// +- (NSInteger)removeTag:(NSString *)tagId tagRemoved:(nullable void (^)(NSInteger code))tagRemovedBlock; + +- (NSInteger)updateTagNameById:(NSString *)tagId newName:(NSString *)newName tagNameByIdUpdated:(nullable void (^)(NSInteger code))tagNameByIdUpdatedBlock; + +- (NSInteger)getTags:(nullable void (^)(NSArray *results))successBlock + error:(nullable void (^)(NSInteger code))errorBlock;; + +- (NSInteger)addConversationToTag:(NSString *)tagId + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + conversationToTagAdded:(nullable void (^)(NSInteger code))conversationToTagAddedBlock; + +/*! + 从指定标签移除会话 + */ +- (NSInteger)removeConversationFromTag:(NSString *)tagId + type: (RCIMIWConversationType)type + targetId:(NSString *)targetId + conversationFromTagRemoved:(nullable void (^)(NSInteger code))conversationFromTagRemovedBlock; + +/*! + 删除指定会话中的某些标签 + */ +- (NSInteger)removeTagsFromConversation:(RCIMIWConversationType)type + targetId:(NSString *)targetId + tagIds:(NSArray *)tagIds + tagsFromConversationRemoved:(nullable void (^)(NSInteger code))tagsFromConversationRemovedBlock; +// +- (NSInteger)getTagsFromConversation:(RCIMIWConversationType)type targetId:(NSString *)targetId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +- (NSInteger)getConversationsFromTagByPage:(NSString *)tagId + timestamp:(long long)timestamp + count:(int)count + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)getUnreadCountByTag:(NSString *)tagId contain:(BOOL)containBlocked success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +- (NSInteger)changeConversationTopStatusInTag:(NSString *)tagId type:(RCIMIWConversationType)type targetId:(NSString *)targetId top:(BOOL)top + conversationTopStatusInTagChanged:(nullable void (^)(NSInteger code))conversationTopStatusInTagChangedBlock;; +// +- (NSInteger)getConversationTopStatusInTag:(NSString *)tagId type:(RCIMIWConversationType)type targetId:(NSString *)targetId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +- (NSInteger)clearMessagesUnreadStatusByTag:(NSString *)tagId + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +// +///*! +// @param deleteMessage 是否清除本地历史消息 +// */ +- (NSInteger)clearConversationsByTag:(NSString *)tagId deleteMessage:(BOOL)deleteMessage + success:(nullable void (^)(BOOL top))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +#pragma mark - 全局免打扰 + +/*! + 全局屏蔽某个时间段的消息提醒 + + @param startTime 开始消息免打扰时间,格式为 HH:MM:SS + @param spanMinutes 需要消息免打扰分钟数,0 < spanMins < 1440( 比如,您设置的起始时间是 00:00, 结束时间为 + 23:59,则 spanMins 为 23 * 60 + 59 = 1439 分钟。) + @param level 传递 RCPushNotificationQuietHoursLevelDefault 表示移除免打扰 + */ +- (NSInteger)changeNotificationQuietHours:(NSString *)startTime + spanMinutes:(int)spanMinutes + level:(RCIMIWPushNotificationQuietHoursLevel)level +__deprecated_msg("Use [RCIMIWEngine changeNotificationQuietHours:spanMinutes:level:notificationQuietHoursChanged:] instead"); + +- (NSInteger)changeNotificationQuietHours:(NSString *)startTime + spanMinutes:(int)spanMinutes + level:(RCIMIWPushNotificationQuietHoursLevel)level + notificationQuietHoursChanged:(nullable void (^)(NSInteger code))notificationQuietHoursChangedBlock; + +- (NSInteger)loadNotificationQuietHours +__deprecated_msg("Use [RCIMIWEngine getNotificationQuietHours:error:] instead"); + +- (NSInteger)getNotificationQuietHours:(nullable void (^)(NSString *startTime, int spanMinutes, RCIMIWPushNotificationQuietHoursLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)removeNotificationQuietHours +__deprecated_msg("Use [RCIMIWEngine removeNotificationQuietHours:] instead"); + +- (NSInteger)removeNotificationQuietHours:(nullable void (^)(NSInteger code))notificationQuietHoursRemovedBlock; + +#pragma mark - 推送配置 + +/*! + 设置 deviceToken(已兼容 iOS 13),用于远程推送 + + @param deviceToken 从系统获取到的 deviceToken (不需要处理) + + @discussion + deviceToken 是系统提供的,从苹果服务器获取的,用于 APNs 远程推送必须使用的设备唯一值。 + 您需要将 -application:didRegisterForRemoteNotificationsWithDeviceToken: 获取到的 deviceToken 作为参数传入此方法。 + + 如: + - (void)application:(UIApplication *)application + didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + //调用 setDeviceToken + } + @remarks 功能设置 + */ ++ (NSInteger)setDeviceToken:(NSData *)deviceToken; + +/*! + 设置是否显示远程推送的内容 + + @param showContent 是否显示推送的具体内容( YES 显示 NO 不显示) + */ +- (NSInteger)changePushContentShowStatus:(BOOL)showContent +__deprecated_msg("Use [RCIMIWEngine changePushContentShowStatus:pushContentShowStatusChanged:] instead"); + +- (NSInteger)changePushContentShowStatus:(BOOL)showContent + pushContentShowStatusChanged:(nullable void (^)(NSInteger code))pushContentShowStatusChangedBlock; + +/** + 设置推送内容的自然语言 + + @param language 通过 SDK 设置的语言环境,语言缩写内容格式为 (ISO-639 Language Code)_(ISO-3166 Country Codes),如:zh_CN。目前融云支持的内置推送语言为 zh_CN、en_US、ar_SA + */ +- (NSInteger)changePushLanguage:(NSString *)language +__deprecated_msg("Use [RCIMIWEngine changePushLanguage:pushLanguageChanged:] instead"); + +- (NSInteger)changePushLanguage:(NSString *)language + pushLanguageChanged:(nullable void (^)(NSInteger code))pushLanguageChangedBlock; + +/*! + 设置 Web 端在线时,手机端是否接收推送 + + @param receive 是否接收推送( YES 接收 NO 不接收) + */ +- (NSInteger)changePushReceiveStatus:(BOOL)receive +__deprecated_msg("Use [RCIMIWEngine changePushReceiveStatus:pushReceiveStatusChanged:] instead"); + +- (NSInteger)changePushReceiveStatus:(BOOL)receive + pushReceiveStatusChanged:(nullable void (^)(NSInteger code))pushReceiveStatusChangedBlock; + +#pragma mark - 超级群 +- (NSInteger)syncUltraGroupReadStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine syncUltraGroupReadStatus:channelId:timestamp:ultraGroupReadStatusSynced:] instead"); + +- (NSInteger)syncUltraGroupReadStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + ultraGroupReadStatusSynced:(nullable void (^)(NSInteger code))ultraGroupReadStatusSyncedBlock; + +- (NSInteger)loadConversationsForAllChannel:(RCIMIWConversationType)type + targetId:(NSString *) targetId +__deprecated_msg("Use [RCIMIWEngine getConversationsForAllChannel:targetId:success:error:] instead"); + +- (NSInteger)getConversationsForAllChannel:(RCIMIWConversationType)type + targetId:(NSString *) targetId + success:(nullable void (^)(NSArray *conversations))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)modifyUltraGroupMessage:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine modifyUltraGroupMessage:ultraGroupMessageModified:] instead"); + +- (NSInteger)modifyUltraGroupMessage:(RCIMIWMessage *)message + ultraGroupMessageModified:(nullable void (^)(NSInteger code))ultraGroupMessageModifiedBlock; + +/** + 消息修改 + + @param messageUId 将被修改的消息id + @param message 将被修改的消息 + + @discussion + 此方法只能修改相同频道的同类型消息,仅能修改自己发送的消息 + */ +- (NSInteger)modifyUltraGroupMessage:(NSString *)messageUId + message:(RCIMIWMessage *)message +__deprecated_msg("Use [RCIMIWEngine modifyUltraGroupMessage:message:ultraGroupMessageModified:] instead"); + +- (NSInteger)modifyUltraGroupMessage:(NSString *)messageUId + message:(RCIMIWMessage *)message + ultraGroupMessageModified:(nullable void (^)(NSInteger code))ultraGroupMessageModifiedBlock; + +/*! + 撤回消息 + + @param message 需要撤回的消息 + @param deleteRemote 是否移除远端消息记录,YES: 移除远端消息记录, NO:不移除远端消息记录 + */ +- (NSInteger)recallUltraGroupMessage:(RCIMIWMessage *)message + deleteRemote:(BOOL)deleteRemote +__deprecated_msg("Use [RCIMIWEngine recallUltraGroupMessage:deleteRemote:ultraGroupMessageRecalled:] instead"); + +- (NSInteger)recallUltraGroupMessage:(RCIMIWMessage *)message + deleteRemote:(BOOL)deleteRemote + ultraGroupMessageRecalled:(nullable void (^)(NSInteger code))ultraGroupMessageRecalledBlock; + +- (NSInteger)clearUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy +__deprecated_msg("Use [RCIMIWEngine clearUltraGroupMessages:channelId:timestamp:policy:ultraGroupMessagesCleared:] instead"); + +- (NSInteger)clearUltraGroupMessages:(NSString *)targetId + channelId:(nullable NSString *)channelId + timestamp:(long long)timestamp + policy:(RCIMIWMessageOperationPolicy)policy + ultraGroupMessagesCleared:(nullable void (^)(NSInteger code))ultraGroupMessagesClearedBlock; + +- (NSInteger)clearUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp +__deprecated_msg("Use [RCIMIWEngine clearUltraGroupMessagesForAllChannel:timestamp:ultraGroupMessagesClearedForAllChannel:] instead"); + +- (NSInteger)clearUltraGroupMessagesForAllChannel:(NSString *)targetId + timestamp:(long long)timestamp + ultraGroupMessagesClearedForAllChannel:(nullable void (^)(NSInteger code))ultraGroupMessagesClearedForAllChannelBlock; + +- (NSInteger)sendUltraGroupTypingStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + typingStatus:(RCIMIWUltraGroupTypingStatus)typingStatus +__deprecated_msg("Use [RCIMIWEngine sendUltraGroupTypingStatus:channelId:typingStatus:ultraGroupTypingStatusSent:] instead"); + +- (NSInteger)sendUltraGroupTypingStatus:(NSString *)targetId + channelId:(nullable NSString *)channelId + typingStatus:(RCIMIWUltraGroupTypingStatus)typingStatus + ultraGroupTypingStatusSent:(nullable void (^)(NSInteger code))ultraGroupTypingStatusSentBlock; + +/*! + 获取同一个超级群下的批量服务消息(含所有频道) + + @param messages 消息列表 + @remarks 高级功能 + */ +- (NSInteger)loadBatchRemoteUltraGroupMessages:(NSArray *)messages +__deprecated_msg("Use [RCIMIWEngine getBatchRemoteUltraGroupMessages:success:error:] instead"); + +- (NSInteger)getBatchRemoteUltraGroupMessages:(NSArray *)messages + success:(nullable void (^)(NSArray * _Nullable matchedMessages, NSArray * _Nullable notMatchedMessages))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +- (NSInteger)updateUltraGroupMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion +__deprecated_msg("Use [RCIMIWEngine updateUltraGroupMessageExpansion:expansion:ultraGroupMessageExpansionUpdated:] instead"); + +- (NSInteger)updateUltraGroupMessageExpansion:(NSString *)messageUId + expansion:(NSDictionary *)expansion + ultraGroupMessageExpansionUpdated:(nullable void (^)(NSInteger code))ultraGroupMessageExpansionUpdatedBlock; + +- (NSInteger)removeUltraGroupMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys +__deprecated_msg("Use [RCIMIWEngine removeUltraGroupMessageExpansionForKeys:keys:ultraGroupMessageExpansionForKeysRemoved:] instead"); + +- (NSInteger)removeUltraGroupMessageExpansionForKeys:(NSString *)messageUId + keys:(NSArray *)keys + ultraGroupMessageExpansionForKeysRemoved:(nullable void (^)(NSInteger code))ultraGroupMessageExpansionForKeysRemovedBlock; + +/*! + 设置超级群的默认消息状态 + + @param targetId 会话 ID + @param level 消息通知级别 + */ +- (NSInteger)changeUltraGroupDefaultNotificationLevel:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeUltraGroupDefaultNotificationLevel:level:ultraGroupDefaultNotificationLevelChanged:] instead"); + +- (NSInteger)changeUltraGroupDefaultNotificationLevel:(NSString *)targetId + level:(RCIMIWPushNotificationLevel)level + ultraGroupDefaultNotificationLevelChanged:(nullable void (^)(NSInteger code))ultraGroupDefaultNotificationLevelChangedBlock; + +/*! + 获取超级群的默认消息状态 + + @param targetId 会话 ID + */ +- (NSInteger)loadUltraGroupDefaultNotificationLevel:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupDefaultNotificationLevel:success:error:] instead"); + +- (NSInteger)getUltraGroupDefaultNotificationLevel:(NSString *)targetId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +/*! + 设置超级群频道的默认消息状态 + + @param targetId 会话 ID + @param channelId 频道 ID + @param level 消息通知级别 + */ +- (NSInteger)changeUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level +__deprecated_msg("Use [RCIMIWEngine changeUltraGroupChannelDefaultNotificationLevel:channelId:level:ultraGroupChannelDefaultNotificationLevelChanged:] instead"); + +- (NSInteger)changeUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + level:(RCIMIWPushNotificationLevel)level + ultraGroupChannelDefaultNotificationLevelChanged:(nullable void (^)(NSInteger code))ultraGroupChannelDefaultNotificationLevelChangedBlock; + +/*! + 获取超级群频道的默认消息状态 + + @param targetId 会话 ID + @param channelId 频道 ID + */ +- (NSInteger)loadUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupChannelDefaultNotificationLevel:channelId:success:error:] instead"); + +- (NSInteger)getUltraGroupChannelDefaultNotificationLevel:(NSString *)targetId + channelId:(nullable NSString *)channelId + success:(nullable void (^)(RCIMIWPushNotificationLevel level))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取所有会话的未读消息数 +- (NSInteger)loadUltraGroupAllUnreadCount +__deprecated_msg("Use [RCIMIWEngine getUltraGroupAllUnreadCount:error:] instead"); + +- (NSInteger)getUltraGroupAllUnreadCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取所有会话的未读 @ 消息数 +- (NSInteger)loadUltraGroupAllUnreadMentionedCount +__deprecated_msg("Use [RCIMIWEngine getUltraGroupAllUnreadMentionedCount:error:] instead"); + +- (NSInteger)getUltraGroupAllUnreadMentionedCount:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取指定会话的未读消息数 +- (NSInteger)loadUltraGroupUnreadCount:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupUnreadCount:success:error:] instead"); + +- (NSInteger)getUltraGroupUnreadCount:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; + +// 获取指定会话的未读 @ 消息数 +- (NSInteger)loadUltraGroupUnreadMentionedCount:(NSString *)targetId +__deprecated_msg("Use [RCIMIWEngine getUltraGroupUnreadMentionedCount:success:error:] instead"); + +- (NSInteger)getUltraGroupUnreadMentionedCount:(NSString *)targetId + success:(nullable void (^)(NSInteger count))successBlock + error:(nullable void (^)(NSInteger code))errorBlock; +/*! + 获取当前手机与服务器的时间差 + + @return 时间差 + @discussion 消息发送成功后,SDK 会与服务器同步时间,消息所在数据库中存储的时间就是服务器时间。 + + @remarks 数据获取 + */ +- (long long)getDeltaTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngineDelegate.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngineDelegate.h new file mode 100644 index 0000000..10f1a53 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngineDelegate.h @@ -0,0 +1,664 @@ +// +// RCIMIWEngineDelegate.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import +#import +#import + +@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 + +@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 *)messages; + +- (void)onUnreadMentionedMessagesLoaded:(NSInteger)code + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId + messages:(NSArray *)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 *)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 *)messages; + +- (void)onMessagesDeleted:(NSInteger)code + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId + messages:(NSArray *)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 *)expansion; + +- (void)onMessageExpansionForKeysRemoved:(NSInteger)code + messageUId:(NSString *)messageUId + keys:(NSArray *)keys; +/** + 远端更改消息扩展信息的回调 + + @param expansion 消息扩展信息中更新的键值对 + @param message 消息 + + @discussion expansionDic 只包含更新的键值对,不是全部的数据。如果想获取全部的键值对,请使用 message 的 expansion 属性。 + */ +- (void)onRemoteMessageExpansionUpdated:(NSDictionary *)expansion message:(RCIMIWMessage *)message; + +/** + 远端删除消息扩展信息的回调 + */ +- (void)onRemoteMessageExpansionForKeyRemoved:(RCIMIWMessage *)message keys:(NSArray *)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 *)conversationTypes + channelId:(NSString *)channelId + startTime:(long long)startTime + count:(int)count + conversations:(nullable NSArray *)conversations; + +- (void)onConversationRemoved:(NSInteger)code + type:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId; + +- (void)onConversationsRemoved:(NSInteger)code + conversationTypes:(NSArray *)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 *)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 *)conversationTypes + channelId:(NSString *)channelId + conversations:(nullable NSArray *)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 *)conversationTypes + channelId:(NSString *)channelId + conversations:(nullable NSArray *)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 *)messages; + +/*! + 群聊消息回执请求监听 + */ +- (void)onGroupMessageReadReceiptRequestReceived:(NSString *)targetId messageUId:(NSString *)messageUId; + +/*! + 群聊消息回执响应监听 + */ +- (void)onGroupMessageReadReceiptResponseReceived:(NSString *)targetId messageUId:(NSString *)messageUId respondUserIds:(NSDictionary *)respondUserIds; + +#pragma mark - 输入状态 + +- (void)onTypingStatusChanged:(RCIMIWConversationType)type + targetId:(NSString *)targetId + channelId:(NSString *)channelId + userTypingStatus:(NSArray *)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 *)actions; + +- (void)onChatRoomMessagesLoaded:(NSInteger)code + targetId:(NSString *)targetId + messages:(NSArray *)messages + syncTime:(long long)syncTime; + +- (void)onChatRoomEntryAdded:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key; + +- (void)onChatRoomEntriesAdded:(NSInteger)code + targetId:(NSString *)targetId + entries:(NSDictionary *)entries + errorEntries:(NSDictionary *)errorEntries; + +- (void)onChatRoomEntryLoaded:(NSInteger)code targetId:(NSString *)targetId entry:(NSDictionary *)entry; + +- (void)onChatRoomAllEntriesLoaded:(NSInteger)code + targetId:(NSString *)targetId + entries:(NSDictionary *)entries; + +- (void)onChatRoomEntryRemoved:(NSInteger)code targetId:(NSString *)targetId key:(NSString *)key; + +- (void)onChatRoomEntriesRemoved:(NSInteger)code targetId:(NSString *)targetId keys:(NSArray *)keys; + +// kv 同步完成 +- (void)onChatRoomEntriesSynced:(NSString *)roomId; + +// kv 改变回调,包含更新和删除 +- (void)onChatRoomEntriesChanged:(RCIMIWChatRoomEntriesOperationType)operationType + roomId:(NSString *)roomId + entries:(NSDictionary *)entries; + +#pragma mark - 用户管理 + +- (void)onBlacklistAdded:(NSInteger)code userId:(NSString *)userId; + +- (void)onBlacklistRemoved:(NSInteger)code userId:(NSString *)userId; + +- (void)onBlacklistLoaded:(NSInteger)code userIds:(NSArray *)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 *)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 *)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 *)messages; + +- (void)onConversationsSearched:(NSInteger)code + conversationTypes:(NSArray *)conversationTypes + channelId:(NSString *)channelId + messageTypes:(NSArray *)messageTypes + keyword:(NSString *)keyword + conversations:(NSArray *)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 *)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 *)tagIds; + +- (void)onTagsLoadedFromConversation:(NSInteger)code + tags:(NSArray *)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 *)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 *)matchedMessages + notMatchedMessages:(NSArray *)notMatchMessages; + +- (void)onUltraGroupMessageExpansionUpdated:(NSInteger)code + expansion:(NSDictionary *)expansion + messageUId:(NSString *)messageUId; + +- (void)onUltraGroupMessageExpansionForKeysRemoved:(NSInteger)code + messageUId:(NSString *)messageUId + keys:(NSArray *)keys; + +/** + 超级群已读时间同步 + + @param targetId 会话 ID + @param channelId 频道 ID + @param timestamp 已读时间 + */ +- (void)onUltraGroupReadTimeReceived:(NSString *)targetId channelId:(NSString *)channelId timestamp:(long long)timestamp; + +/** + 超级群远端更新消息扩展的回调 + */ +- (void)onRemoteUltraGroupMessageExpansionUpdated:(NSArray *)messages; + +/** + 超级群远端修改消息的回调 + */ +- (void)onRemoteUltraGroupMessageModified:(NSArray *)messages; + +- (void)onRemoteUltraGroupMessageRecalled:(NSArray *)messages; + +- (void)onUltraGroupTypingStatusChanged:(NSArray *)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 */ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngineOptions.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngineOptions.h new file mode 100644 index 0000000..545a02f --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWEngineOptions.h @@ -0,0 +1,51 @@ +// +// RCIMIWEngineOptions.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWFileMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWFileMessage.h new file mode 100644 index 0000000..1391340 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWFileMessage.h @@ -0,0 +1,32 @@ +// +// RCIMIWFileMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWGIFMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWGIFMessage.h new file mode 100644 index 0000000..c0a8484 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWGIFMessage.h @@ -0,0 +1,31 @@ +// +// RCIMIWGIFMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/8/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWGroupReadReceiptInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWGroupReadReceiptInfo.h new file mode 100644 index 0000000..0dfff66 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWGroupReadReceiptInfo.h @@ -0,0 +1,32 @@ +// +// RCIMIWGroupReadReceiptInfo.h +// RongIMWrapper +// +// Created by RongCloud on 4/7/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +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 *respondUserIds; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWImageMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWImageMessage.h new file mode 100644 index 0000000..ec564a5 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWImageMessage.h @@ -0,0 +1,28 @@ +// +// RCIMIWImageMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWLocationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWLocationMessage.h new file mode 100644 index 0000000..0c6329d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWLocationMessage.h @@ -0,0 +1,37 @@ +// +// RCIMIWLocationMessage.h +// RongIMWrapper +// +// Created by RongCloud on 8/15/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMediaMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMediaMessage.h new file mode 100644 index 0000000..41ea674 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMediaMessage.h @@ -0,0 +1,20 @@ +// +// RCIMIWMediaMessage.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWMediaMessage : RCIMIWMessage + +@property (nonatomic, copy, readonly) NSString *local; +@property (nonatomic, copy, readonly) NSString *remote; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMentionedInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMentionedInfo.h new file mode 100644 index 0000000..6e5f5fe --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMentionedInfo.h @@ -0,0 +1,34 @@ +// +// RCIMIWMentionedInfo.h +// RongIMWrapper +// +// Created by RongCloud on 2/18/22. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWMentionedInfo : NSObject + +/*! + @ 提醒的类型 + */ +@property (nonatomic, assign) RCIMIWMentionedType type; + +/*! + @ 的用户 ID 列表 + + @discussion 如果 type 是 @ 所有人,则可以传 nil + */ +@property (nonatomic, copy) NSArray *userIdList; + +/*! + 包含 @ 提醒的消息,本地通知和远程推送显示的内容 + */ +@property (nonatomic, copy) NSString *mentionedContent; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMessage.h new file mode 100644 index 0000000..c43ab57 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMessage.h @@ -0,0 +1,110 @@ +// +// RCIMIWMessage.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import +#import +#import +#import + +@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 *expansion; + +//- (instancetype)init __attribute__((unavailable("请使用 RCIMIWEngine 中 createXXMessage 系列方法创建对应的 message "))); + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMessagePushOptions.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMessagePushOptions.h new file mode 100644 index 0000000..f5c8b44 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWMessagePushOptions.h @@ -0,0 +1,225 @@ +// +// RCIMIWMessagePushOptions.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import +#import + +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMediaMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMediaMessage.h new file mode 100644 index 0000000..1aa2fde --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMediaMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWNativeCustomMediaMessage.h +// RongIMWrapper +// +// Created by Lang on 2024/6/3. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWNativeCustomMediaMessage : RCIMIWMediaMessage + +/// 自定义消息的内容 +@property (nonatomic, copy) NSDictionary *fields; + +/// 消息搜索关键字 +@property (nonatomic, copy) NSArray *searchableWords; + +/// 消息类型名 +@property (nonatomic, copy, readonly) NSString *messageIdentifier; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMessage.h new file mode 100644 index 0000000..56022bc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWNativeCustomMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWNativeCustomMessage.h +// RongIMWrapper +// +// Created by Lang on 2024/5/30. +// Copyright © 2024 RongCloud. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWNativeCustomMessage : RCIMIWMessage + +/// 自定义消息的 json 内容 +@property (nonatomic, copy) NSDictionary *fields; + +/// 消息搜索关键字 +@property (nonatomic, copy) NSArray *searchableWords; + +/// 消息类型名 +@property (nonatomic, copy, readonly) NSString *messageIdentifier; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWPlatformConverter.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWPlatformConverter.h new file mode 100644 index 0000000..967211d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWPlatformConverter.h @@ -0,0 +1,99 @@ +// +// RCIMIWPlatformConverter.h +// RongIMWrapper +// +// Created by zhangyifan on 2022/5/10. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWRecallNotificationMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWRecallNotificationMessage.h new file mode 100644 index 0000000..fa0902a --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWRecallNotificationMessage.h @@ -0,0 +1,47 @@ +// +// RCIMIWRecallNotificationMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWReferenceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWReferenceMessage.h new file mode 100644 index 0000000..69dc34d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWReferenceMessage.h @@ -0,0 +1,26 @@ +// +// RCIMIWReferenceMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/8/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWReferenceMessage : RCIMIWMessage + +/*! + 文本 + */ +@property (nonatomic, strong, readonly) NSString *text; + +/*! + 被引用消息体 + */ +@property (nonatomic, strong, readonly) RCIMIWMessage *referenceMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWSearchConversationResult.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWSearchConversationResult.h new file mode 100644 index 0000000..d91594d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWSearchConversationResult.h @@ -0,0 +1,29 @@ +// +// RCIMIWSearchConversationResult.h +// RongIMWrapper +// +// Created by RongCloud on 3/17/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import + +@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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWSightMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWSightMessage.h new file mode 100644 index 0000000..d111af3 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWSightMessage.h @@ -0,0 +1,33 @@ +// +// RCIMIWSightMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTagInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTagInfo.h new file mode 100644 index 0000000..c46dfab --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTagInfo.h @@ -0,0 +1,45 @@ +// +// RCIMIWTagInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/3/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTextMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTextMessage.h new file mode 100644 index 0000000..848126e --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTextMessage.h @@ -0,0 +1,18 @@ +// +// RCIMIWTextMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWTextMessage : RCIMIWMessage + +@property (nonatomic, copy) NSString *text; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTypingStatus.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTypingStatus.h new file mode 100644 index 0000000..2c78c1d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWTypingStatus.h @@ -0,0 +1,29 @@ +// +// RCIMIWTypingStatus.h +// RongIMWrapper +// +// Created by RongCloud on 3/3/22. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUltraGroupTypingStatusInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUltraGroupTypingStatusInfo.h new file mode 100644 index 0000000..bd952f4 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUltraGroupTypingStatusInfo.h @@ -0,0 +1,48 @@ +// +// RCIMIWUltraGroupTypingStatusInfo.h +// RongIMWrapper +// +// Created by RongCloud on 3/21/22. +// Copyright © 2022 RongCloud. All rights reserved. +// + +#import +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUnknownMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUnknownMessage.h new file mode 100644 index 0000000..7445407 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUnknownMessage.h @@ -0,0 +1,19 @@ +// +// RCIMIWUnknownMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/9/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWUnknownMessage : RCIMIWMessage + +@property (nonatomic, copy, readonly) NSString *rawData; +@property (nonatomic, copy, readonly) NSString *objectName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUserInfo.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUserInfo.h new file mode 100644 index 0000000..e002715 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWUserInfo.h @@ -0,0 +1,51 @@ +// +// RCIMIWUserInfo.h +// RongIMWrapper +// +// Created by RongCloud on 2/18/22. +// + +#import + +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 diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWVoiceMessage.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWVoiceMessage.h new file mode 100644 index 0000000..5f5a748 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RCIMIWVoiceMessage.h @@ -0,0 +1,21 @@ +// +// RCIMIWVoiceMessage.h +// RongIMWrapper +// +// Created by RongCloud on 3/7/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface RCIMIWVoiceMessage : RCIMIWMediaMessage + +/** + 语音时长,以秒为单位 + */ +@property (nonatomic, assign, readonly) NSUInteger duration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RongIMWrapper.h b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RongIMWrapper.h new file mode 100644 index 0000000..047598d --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Headers/RongIMWrapper.h @@ -0,0 +1,57 @@ +// +// RongIMWrapper.h +// RongIMWrapper +// +// Created by RongCloud on 2/15/22. +// + +#import + +//! 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 + + +#import + +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import + +#import + +#import + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Info.plist b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Info.plist new file mode 100644 index 0000000..dbf16fe Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Info.plist differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Modules/module.modulemap b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Modules/module.modulemap new file mode 100644 index 0000000..d971069 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module RongIMWrapper { + umbrella header "RongIMWrapper.h" + export * + + module * { export * } +} diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/RCConfig.plist b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/RCConfig.plist new file mode 100644 index 0000000..322bfcc --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/RCConfig.plist @@ -0,0 +1,61 @@ + + + + + Location + + LocationImageQuality + 0.7 + LocationImageWidth + 480 + LocationImageHeight + 240 + + File + + RelativePath + Documents/MyFile + MaxRangeUnit + 1048576 + + Voice + + AudioEncodingBitRate + 7950 + + Image + + ThumbnailQuality + 0.3 + ThumbnailMaxSize + 240 + ThumbnailMinSize + 100 + ImageQuality + 0.85 + ImageWidth + 1080 + ImageHeight + 1080 + + CustomerService + + SuspendWhenLeave + + + Download + + DownloadSliceSize + 20971520 + + Sight + + SightCompressWidth + 540 + SightCompressHeight + 960 + + HeartBeatInterval + 15 + + diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/RongIMWrapper b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/RongIMWrapper new file mode 100755 index 0000000..f8353c2 Binary files /dev/null and b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/RongIMWrapper differ diff --git a/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/_CodeSignature/CodeResources b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..b4c4bc1 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/ios/RongIMWrapper.xcframework/ios-x86_64-simulator/RongIMWrapper.framework/_CodeSignature/CodeResources @@ -0,0 +1,672 @@ + + + + + files + + Headers/RCIMIWBlockedMessageInfo.h + + oFtw97CuFfdFacaQCYa0vlc7X8w= + + Headers/RCIMIWChatRoomMemberAction.h + + Irj/sfQvPSbDI155s7oeMqPcawg= + + Headers/RCIMIWCommandMessage.h + + Qx757Ked5q26cEvzSx+fAp6GI9M= + + Headers/RCIMIWCommandNotificationMessage.h + + OG3jeKw+nw3SaLkg9FWDi2X3lrc= + + Headers/RCIMIWCompressOptions.h + + xHum9csO4h31oM4ThiqfGWmExVE= + + Headers/RCIMIWConversation.h + + 9eTyDyAkPaqkeLDtc3BXetXSxYY= + + Headers/RCIMIWConversationTagInfo.h + + C5vgJNgPATsesPBQufy4L5gpSnQ= + + Headers/RCIMIWCustomMessage.h + + rrUBcrcJmz829fv4diEcXP4H5YE= + + Headers/RCIMIWDefines.h + + eol/yMMWxD5sCT05wcGeXcYmqUM= + + Headers/RCIMIWEngine.h + + 64Y+xrsLW0p1FIexk8K8ICOLCw0= + + Headers/RCIMIWEngineDelegate.h + + ZyHi3S2t7/25g9YxWxmKpUVHm9w= + + Headers/RCIMIWEngineOptions.h + + ud+wnRuziaUxwXm6wxNrhO2bBRc= + + Headers/RCIMIWFileMessage.h + + UPDum8Tj3FXB+ldQidm+r+tr01s= + + Headers/RCIMIWGIFMessage.h + + mpVdornL+JqEIlGXyJ7F9b7MJZ4= + + Headers/RCIMIWGroupReadReceiptInfo.h + + 03Hkay3rOYHjnhURsy8rsK2tX/k= + + Headers/RCIMIWImageMessage.h + + KYDTFZHSu5lEYa4l+lg1KBxDKOs= + + Headers/RCIMIWLocationMessage.h + + 5mU4FWewcdpZyIUwjF8GOXihTmQ= + + Headers/RCIMIWMediaMessage.h + + Jqjv39goLbc6GSwraJ9Wspz/vpA= + + Headers/RCIMIWMentionedInfo.h + + 2LvZ0xCmos1SX4KawuSJY1Tkd98= + + Headers/RCIMIWMessage.h + + KUjzmIGwOMx9PT8vTkFgWYjdSwU= + + Headers/RCIMIWMessagePushOptions.h + + INZw8eqQqHxDVlRDBufb3BzB0zw= + + Headers/RCIMIWNativeCustomMediaMessage.h + + TtJvIjR75Xsdwui1Xgi2LDy7sQo= + + Headers/RCIMIWNativeCustomMessage.h + + jl/KqekfUeoiPBsnZx9uSXwL604= + + Headers/RCIMIWPlatformConverter.h + + qBfombP/fhIyPE4YuBePNjby9DI= + + Headers/RCIMIWRecallNotificationMessage.h + + hfpwloo0psjA3Do5qKerrEEGxwI= + + Headers/RCIMIWReferenceMessage.h + + grgrdiQxBQgcjcv5n0veJ+CAziI= + + Headers/RCIMIWSearchConversationResult.h + + qxxZUH0k9fzbrwHlwWHhHBxJ5R0= + + Headers/RCIMIWSightMessage.h + + sHEoJgaWKxvOUA1AsuPuaXTQZOM= + + Headers/RCIMIWTagInfo.h + + nay+4cxqaKWFfJAFjRSFwhInC/8= + + Headers/RCIMIWTextMessage.h + + Rm8BdDUpfiiOteZNWkBihhndJ9k= + + Headers/RCIMIWTypingStatus.h + + akJLOB7HKoppJFBl7M+CRqVnzsE= + + Headers/RCIMIWUltraGroupTypingStatusInfo.h + + bbwfwGtOchVmLKU/iOe3eDHptik= + + Headers/RCIMIWUnknownMessage.h + + qgUrjxdq+sCU6/1/T4I9sq4LcHA= + + Headers/RCIMIWUserInfo.h + + 5g7vzLQk3tcFraYj6LiXTofflNA= + + Headers/RCIMIWVoiceMessage.h + + qsVZR8GP7n2O5FqQcKtBfAChfbM= + + Headers/RongIMWrapper.h + + YdH8Ujk85GPUJ+MR6roHGiP+3tU= + + Info.plist + + HTOWT29pO5aqD+CmuzFlvT9wnww= + + Modules/module.modulemap + + Vh9vdNQkaXreFCi1krLgoYVDvCg= + + RCConfig.plist + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + + files2 + + Headers/RCIMIWBlockedMessageInfo.h + + hash + + oFtw97CuFfdFacaQCYa0vlc7X8w= + + hash2 + + nNHHGlz3h+zRUQ/VsvRQ0Xyqx9kgRY4NHDprJKhsDO4= + + + Headers/RCIMIWChatRoomMemberAction.h + + hash + + Irj/sfQvPSbDI155s7oeMqPcawg= + + hash2 + + dJEENT/QimJq1ZJ8juxcIs3g2V+UwfgDdKPLV6JWzKE= + + + Headers/RCIMIWCommandMessage.h + + hash + + Qx757Ked5q26cEvzSx+fAp6GI9M= + + hash2 + + A9QP8rCAngk9gKWqr4RNV6DGmW5fLwrb7DPjG0eEcAQ= + + + Headers/RCIMIWCommandNotificationMessage.h + + hash + + OG3jeKw+nw3SaLkg9FWDi2X3lrc= + + hash2 + + d7RxZ/a+a2wBKPE09QvuXYbEoFH9QbpPuiPKgkLJLIw= + + + Headers/RCIMIWCompressOptions.h + + hash + + xHum9csO4h31oM4ThiqfGWmExVE= + + hash2 + + Xb4YsZJJ9PUPGBvsmbDufy2NBIti11o4QSQQFC4fUZo= + + + Headers/RCIMIWConversation.h + + hash + + 9eTyDyAkPaqkeLDtc3BXetXSxYY= + + hash2 + + Ce0mpcf06Wl3c56Ree9dpQJxyw0eXrQFSOSbW6aWe90= + + + Headers/RCIMIWConversationTagInfo.h + + hash + + C5vgJNgPATsesPBQufy4L5gpSnQ= + + hash2 + + yLRPC+dWbAoNGPmwjd8jVNHZIlaphbKuehQWY93v28w= + + + Headers/RCIMIWCustomMessage.h + + hash + + rrUBcrcJmz829fv4diEcXP4H5YE= + + hash2 + + g1szSyNUGQlIdSQREcs8KG0fudaJVU5WO83PHR7lABM= + + + Headers/RCIMIWDefines.h + + hash + + eol/yMMWxD5sCT05wcGeXcYmqUM= + + hash2 + + BVGBRSwY5wKEat5PE4nFqps1FVWTbwCiBdItmLNcK8o= + + + Headers/RCIMIWEngine.h + + hash + + 64Y+xrsLW0p1FIexk8K8ICOLCw0= + + hash2 + + UrxJREgUJC9UUYi/wE70/8Fgbg8xckI7i9xH1h/Wc54= + + + Headers/RCIMIWEngineDelegate.h + + hash + + ZyHi3S2t7/25g9YxWxmKpUVHm9w= + + hash2 + + YrXKrToIMLnsY3hFS4qYUPmJAxQxIU7sWDyF/7qLBac= + + + Headers/RCIMIWEngineOptions.h + + hash + + ud+wnRuziaUxwXm6wxNrhO2bBRc= + + hash2 + + fx4bU9ekLddFW8qP+iwvOFcOUPzUBbAxoTLD8Cq0PyM= + + + Headers/RCIMIWFileMessage.h + + hash + + UPDum8Tj3FXB+ldQidm+r+tr01s= + + hash2 + + EXIbvs8fvoqaNmk6DEtStlqa1b/GSwp/IMD+q+Uzqyg= + + + Headers/RCIMIWGIFMessage.h + + hash + + mpVdornL+JqEIlGXyJ7F9b7MJZ4= + + hash2 + + 9gw+eXxC5N3mDzYscVLCwN3YlIHO+Chge5egYeGrKDA= + + + Headers/RCIMIWGroupReadReceiptInfo.h + + hash + + 03Hkay3rOYHjnhURsy8rsK2tX/k= + + hash2 + + mO8PiMP6mtcgKMmAHp0RtXS3S2DWkw/zJebC7+B576g= + + + Headers/RCIMIWImageMessage.h + + hash + + KYDTFZHSu5lEYa4l+lg1KBxDKOs= + + hash2 + + 9vSrnft9SHddZuUKxnqwi3dqhwEcDSeDqpGrXGPjWy4= + + + Headers/RCIMIWLocationMessage.h + + hash + + 5mU4FWewcdpZyIUwjF8GOXihTmQ= + + hash2 + + 4aN0WFOisK9iWsIfPYpaiemEqSkLKjSBHp0AKzwFDbI= + + + Headers/RCIMIWMediaMessage.h + + hash + + Jqjv39goLbc6GSwraJ9Wspz/vpA= + + hash2 + + UYTeVsVzOiRxW6tvDrjUCFzDtAJ59EcdumZOhPe6fuc= + + + Headers/RCIMIWMentionedInfo.h + + hash + + 2LvZ0xCmos1SX4KawuSJY1Tkd98= + + hash2 + + a8e+yr5CJavd91kN/ceqjRtkVqnL3WGKd96FSaIYn1M= + + + Headers/RCIMIWMessage.h + + hash + + KUjzmIGwOMx9PT8vTkFgWYjdSwU= + + hash2 + + 8+94KpgMMid7dfHc81WzTIFeRWUvKg9FOfB0i45IOXQ= + + + Headers/RCIMIWMessagePushOptions.h + + hash + + INZw8eqQqHxDVlRDBufb3BzB0zw= + + hash2 + + H0JJfmDTazbk58Jx/4KfuloerPu+JFrxF8b7kwmAGqw= + + + Headers/RCIMIWNativeCustomMediaMessage.h + + hash + + TtJvIjR75Xsdwui1Xgi2LDy7sQo= + + hash2 + + x0bXk2B/V8CSuGyipr38ldRg4z5VlJewFFik2dIfKQc= + + + Headers/RCIMIWNativeCustomMessage.h + + hash + + jl/KqekfUeoiPBsnZx9uSXwL604= + + hash2 + + zJCZ22Musnlgmz168nQy/X2928Pf0VqeH3OBJJ0ALA8= + + + Headers/RCIMIWPlatformConverter.h + + hash + + qBfombP/fhIyPE4YuBePNjby9DI= + + hash2 + + Qp/Je6EMWPamGGqKOzxdrGy0S8nJgak5S/PNUKIj2VY= + + + Headers/RCIMIWRecallNotificationMessage.h + + hash + + hfpwloo0psjA3Do5qKerrEEGxwI= + + hash2 + + gihBvLY/5dIi3+f0eAk+x/6AP3p7qmm23Las654a+pE= + + + Headers/RCIMIWReferenceMessage.h + + hash + + grgrdiQxBQgcjcv5n0veJ+CAziI= + + hash2 + + p7uOCVt34XJnhVyZuh3WEsfeEtytZqBrCro2sjG3HGQ= + + + Headers/RCIMIWSearchConversationResult.h + + hash + + qxxZUH0k9fzbrwHlwWHhHBxJ5R0= + + hash2 + + BILRIt1LsrKPy8ElRc5Iwhi/2lKbizV4Pq4sqJuRLzA= + + + Headers/RCIMIWSightMessage.h + + hash + + sHEoJgaWKxvOUA1AsuPuaXTQZOM= + + hash2 + + 4CmK0XgLeudMWN1ykqHcl7IdgL02aWI+jYabboUNE1M= + + + Headers/RCIMIWTagInfo.h + + hash + + nay+4cxqaKWFfJAFjRSFwhInC/8= + + hash2 + + OvNot8iVhndDHQ1NSkK/1XvSCv8+FZiwVSSJTR3zcVk= + + + Headers/RCIMIWTextMessage.h + + hash + + Rm8BdDUpfiiOteZNWkBihhndJ9k= + + hash2 + + AYeHN9oWIpMsiyefGcxC7jFEpauDhASYP4RcxB9Kl08= + + + Headers/RCIMIWTypingStatus.h + + hash + + akJLOB7HKoppJFBl7M+CRqVnzsE= + + hash2 + + YPGPyuROOdLhtyhf3E331BOPgHc5YfeK1PN7idp54Cc= + + + Headers/RCIMIWUltraGroupTypingStatusInfo.h + + hash + + bbwfwGtOchVmLKU/iOe3eDHptik= + + hash2 + + 0AdngedKL3OJA0QFjGXRtRR1hwUdvsTWcoEvcyaEPTc= + + + Headers/RCIMIWUnknownMessage.h + + hash + + qgUrjxdq+sCU6/1/T4I9sq4LcHA= + + hash2 + + 7p4NYJJwAMXAwYqWwWuhBA438tLXAy24c4QzH5/IZDk= + + + Headers/RCIMIWUserInfo.h + + hash + + 5g7vzLQk3tcFraYj6LiXTofflNA= + + hash2 + + V10qEawgeZq8vDYhIOHCHovrNnRR7oXom02wtpweU6I= + + + Headers/RCIMIWVoiceMessage.h + + hash + + qsVZR8GP7n2O5FqQcKtBfAChfbM= + + hash2 + + b6rItb69TZZsbwvHeE4AtW3UE1msdPiF/u+hCT1jJ9k= + + + Headers/RongIMWrapper.h + + hash + + YdH8Ujk85GPUJ+MR6roHGiP+3tU= + + hash2 + + FMIRQbrWJ0ecIdMZivMktP0aloY6adherETYM/denrQ= + + + Modules/module.modulemap + + hash + + Vh9vdNQkaXreFCi1krLgoYVDvCg= + + hash2 + + 6yfqbvnbVio5ptAdCyz4sU2INYt+rvxvT8q9gkJ+AkQ= + + + RCConfig.plist + + hash + + QA7nn/q1j2Y4AJbaGtBBs8g71xE= + + hash2 + + q9qti/DvWdK6nHCUQ3R/b3gsZ4wASUjoeUzGtn7YyXI= + + + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/nativeplugins/RongCloud-IM-V2/package.json b/nativeplugins/RongCloud-IM-V2/package.json new file mode 100644 index 0000000..b4cc376 --- /dev/null +++ b/nativeplugins/RongCloud-IM-V2/package.json @@ -0,0 +1,44 @@ +{ + "name": "RCUniIMV2", + "id": "RongCloud-IM-V2", + "version": "5.30.0", + "description": "融云 uni 原生插件", + "_dp_type":"nativeplugin", + "_dp_nativeplugin":{ + "android": { + "plugins": [ + { + "type": "module", + "name": "RongCloud-IM-V2-RCUniIMV2", + "class": "cn.rongcloud.im.wrapper.uni.RCUniIMModule" + } + ], + "dependencies": [ + "cn.rongcloud.sdk:im_lib:5.30.0" + ], + "integrateType": "aar", + "minSdkVersion" : 21 + }, + "ios": { + "plugins": [ + { + "type": "module", + "name": "RongCloud-IM-V2-RCUniIMV2", + "class": "RCUniIMV2" + } + ], + "frameworks": [ + "RongIMLibCore.xcframework", + "RongChatRoom.xcframework", + "RongIMWrapper.xcframework" + ], + "embedFrameworks": [ + "RongIMLibCore.xcframework", + "RongChatRoom.xcframework", + "RongIMWrapper.xcframework" + ], + "integrateType": "framework", + "deploymentTarget": "9" + } + } +} diff --git a/package-lock.json b/package-lock.json index 3c3c882..199227e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,6 +60,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -391,7 +392,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@jridgewell/source-map/-/source-map-0.3.11.tgz", "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -751,7 +751,8 @@ "version": "5.36.1", "resolved": "https://registry.npmjs.org/@rongcloud/engine/-/engine-5.36.1.tgz", "integrity": "sha512-BLRE0Koym4h+DGBN0B+9rmVIGNDRELt5NwfaVC+X6tyOJBhzRDvJiIWXzrlYB4GoRQHBF8thADuy8+vx5pTCFg==", - "license": "LGPL 2.1" + "license": "LGPL 2.1", + "peer": true }, "node_modules/@rongcloud/imlib-next": { "version": "5.36.1", @@ -777,6 +778,7 @@ "resolved": "https://registry.npmjs.org/@rongcloud/plugin-rtc/-/plugin-rtc-5.36.0.tgz", "integrity": "sha512-8tKKBdhNs4OXhu6ux7N+nqJqjXOhJriv4LZkmXDfth7RvF4UBhogx5bIEa1VpAj+3Cp0PamCEF6wvHbdPfgYIA==", "license": "LGPL 2.1", + "peer": true, "peerDependencies": { "@rongcloud/engine": "~5.36.1" } @@ -821,6 +823,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@tencentcloud/chat-uikit-engine-lite/-/chat-uikit-engine-lite-1.0.4.tgz", "integrity": "sha512-YfDuXDkUlz7V1RA6iAEO2PLBI/efz60TRwAVy/Vhlu7oqZOMlphra72J30N3n5WhxbsFfcfTShoqW3OwcatUQg==", "license": "ISC", + "peer": true, "dependencies": { "@tencentcloud/lite-chat": "^1.6.3" } @@ -853,6 +856,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/composition-api/-/composition-api-1.7.2.tgz", "integrity": "sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw==", "license": "MIT", + "peer": true, "peerDependencies": { "vue": ">= 2.5 < 2.7" } @@ -904,14 +908,14 @@ "version": "1.6.8", "resolved": "https://repo.huaweicloud.com/repository/npm/@tencentcloud/lite-chat/-/lite-chat-1.6.8.tgz", "integrity": "sha512-oK1Qr1iA0vk8wqfFE9Nbmc2Ku+6CNZ6iFMFrG2qcvfOmtVS+xxuiUjPSWbBu2S7ig9hQgq5cV5DIOgXOyXF5EA==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/@tencentcloud/trtc-cloud-wx": { "version": "1.0.8", "resolved": "https://repo.huaweicloud.com/repository/npm/@tencentcloud/trtc-cloud-wx/-/trtc-cloud-wx-1.0.8.tgz", "integrity": "sha512-72TYYt6XNTr9Y401qw23YODfhLC9AGniNqb9ACFTVGDtInApHn139kGhKeudgTYEdTObkG1JjUcdkfcknHGhSA==", "license": "ISC", - "peer": true, "dependencies": { "eventemitter3": "^5.0.0", "trtc-wx-sdk": "^1.1.14" @@ -921,15 +925,13 @@ "version": "5.0.4", "resolved": "https://repo.huaweicloud.com/repository/npm/eventemitter3/-/eventemitter3-5.0.4.tgz", "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@tencentcloud/trtc-component-wx": { "version": "1.0.6", "resolved": "https://repo.huaweicloud.com/repository/npm/@tencentcloud/trtc-component-wx/-/trtc-component-wx-1.0.6.tgz", "integrity": "sha512-3m2ZU3/upx3IJAhSPdElJ2AF1D7L/0JOXUpanYJbrtHlwTWDQ6BOc+p6HgsepE67ltpR7UcYF/BcVHEfpcObkA==", "license": "MIT", - "peer": true, "dependencies": { "@tencentcloud/trtc-cloud-wx": "^1.0.7" } @@ -939,6 +941,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@tencentcloud/tui-core-lite/-/tui-core-lite-1.0.0.tgz", "integrity": "sha512-+nmOWQ415Kz6aYJDv4EIdnaLk69SPWscZqmIhQp9GhNGFVq4/u+gC/sWvGHEOICJncFjM4dUxBg9EFfzD78rGQ==", "license": "ISC", + "peer": true, "dependencies": { "@tencentcloud/lite-chat": "^1.5.0" } @@ -948,6 +951,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@tencentcloud/tuiroom-engine-js/-/tuiroom-engine-js-3.6.2.tgz", "integrity": "sha512-N2481ZWxh7mxYCOjVufRgoGjNrgsq6Or8Src5Z1zmMILFeO3LVQlNwjD9yw4Suc4f6jzm0qcmzBrXorZ0teY1A==", "license": "ISC", + "peer": true, "dependencies": { "@tencentcloud/lite-chat": "^1.6.4", "rtc-detect": "^0.0.5", @@ -1000,6 +1004,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@tiptap/core/-/core-2.27.2.tgz", "integrity": "sha512-ABL1N6eoxzDzC1bYvkMbvyexHacszsKdVPYqhl5GwHLOvpZcv9VE9QaKwDILTyz5voCA0lGcAAXZp+qnXOk5lQ==", "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1341,6 +1346,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@tiptap/pm/-/pm-2.27.2.tgz", "integrity": "sha512-kaEg7BfiJPDQMKbjVIzEPO3wlcA+pZb2tlcK9gPrdDnEFaec2QTF1sXz2ak2IIb2curvnIrQ4yrfHgLlVA72wA==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-changeset": "^2.3.0", "prosemirror-collab": "^1.3.1", @@ -1404,6 +1410,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@tiptap/suggestion/-/suggestion-2.27.2.tgz", "integrity": "sha512-dQyvCIg0hcAVeh4fCIVCxogvbp+bF+GpbUb8sNlgnGrmHXnapGxzkvrlHnvneXZxLk/j7CxmBPKJNnm4Pbx4zw==", "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1433,36 +1440,33 @@ } }, "node_modules/@trtc/call-engine-lite-js": { - "version": "3.5.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/@trtc/call-engine-lite-js/-/call-engine-lite-js-3.5.4.tgz", - "integrity": "sha512-7CQOCKBEkmt0vgJnMBQtQIWxFVRg3hbukKjcQDVSrcoua2Igp9gwMpJ7N1+8+Qs3djnSS0w2DZfA40QjAJl+Rw==", + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@trtc/call-engine-lite-js/-/call-engine-lite-js-3.5.7.tgz", + "integrity": "sha512-7K2tsHl2j68LWyoYVRb7/lvpQMypVJ6NVh2M0yt28PAlG4f+i7ZJ4WSyV1wpv0i87JjYXXTo44Cq5DfSBQQPwg==", "license": "ISC", - "peer": true, "dependencies": { "@tencentcloud/lite-chat": "^1.6.3", "core-js": "^3.8.3", "eventemitter3": "^4.0.7", "rtc-detect": "^0.0.5", - "trtc-cloud-js-sdk": "2.10.11-beta.12", + "trtc-cloud-js-sdk": "2.10.15", "tuikit-logger": "latest" } }, "node_modules/@trtc/call-engine-lite-js/node_modules/trtc-cloud-js-sdk": { - "version": "2.10.11-beta.12", - "resolved": "https://repo.huaweicloud.com/repository/npm/trtc-cloud-js-sdk/-/trtc-cloud-js-sdk-2.10.11-beta.12.tgz", - "integrity": "sha512-NdRY/4iMKIoGFN7oihA7f4x8O6CTJDZNigRb5EXTZUxN4APurkn+BPeMR5x6mwlmjfHE5bw3rqAHxif07mjB+Q==", + "version": "2.10.15", + "resolved": "https://registry.npmjs.org/trtc-cloud-js-sdk/-/trtc-cloud-js-sdk-2.10.15.tgz", + "integrity": "sha512-qjdLNnRFeRfrjr6MZVFLX+twbEc1JP8Nc//7tHdSmjwntX6qd3O12XGFMeLJbMUxZaFvODeUnSU/faqwTu7piA==", "license": "ISC", - "peer": true, "dependencies": { - "trtc-sdk-v5": "5.15.2" + "trtc-sdk-v5": "5.15.3-beta.12" } }, "node_modules/@trtc/call-engine-lite-js/node_modules/trtc-sdk-v5": { - "version": "5.15.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/trtc-sdk-v5/-/trtc-sdk-v5-5.15.2.tgz", - "integrity": "sha512-wQDwyd/MJ51rNjNdvWvnroqonPOdFPxK7Op13379OIxKUZgC472S8CFK+NZBsQm37ED8gYC+MjvOVJHNvqqEvw==", + "version": "5.15.3-beta.12", + "resolved": "https://registry.npmjs.org/trtc-sdk-v5/-/trtc-sdk-v5-5.15.3-beta.12.tgz", + "integrity": "sha512-CE3mQTj7gB4RIiSGFT5x7GNfT1KP5VVu3C5A8V4Op4nxa4AzCtS4Y6TMuIHH8yGccuzcNLUXYOzov3wxdzvaFw==", "license": "ISC", - "peer": true, "dependencies": { "webrtc-adapter": "^8.2.3" } @@ -1472,7 +1476,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@trtc/call-engine-lite-wx/-/call-engine-lite-wx-3.4.12.tgz", "integrity": "sha512-owVbONKvILkncdyUpDWuhMqpIjYxNML0qxY988Sli933wZZgK1dzee2A8uW7jpFzfXQeUWYO5wiEQzS8jURcwQ==", "license": "ISC", - "peer": true, "dependencies": { "@tencentcloud/lite-chat": "^1.5.0", "@tencentcloud/trtc-component-wx": "^1.0.5", @@ -1492,15 +1495,14 @@ } }, "node_modules/@trtc/calls-uikit-vue2.6": { - "version": "4.4.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/@trtc/calls-uikit-vue2.6/-/calls-uikit-vue2.6-4.4.2.tgz", - "integrity": "sha512-KDHFXQVFMAPCpb0aRrOHAh3LPA4tLlr/LhTMDxyUJbJN6CGhYRIlbDyQ0BHl/z7yHYNkTwXaHkahpCJCmnaPNQ==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@trtc/calls-uikit-vue2.6/-/calls-uikit-vue2.6-4.4.5.tgz", + "integrity": "sha512-Gt8P9ntmwowWNngcVvgRuIeORHVI3WQnvvDuSx78h3tPaEaVoYULoP2szlGoXZ07C9ZVV5kPVfWwajPvbYNL/Q==", "license": "ISC", - "peer": true, "dependencies": { "@tencentcloud/lite-chat": "^1.6.3", "@tencentcloud/tui-core-lite": "1.0.0", - "@trtc/call-engine-lite-js": "~3.5.0", + "@trtc/call-engine-lite-js": "~3.5.5", "@trtc/call-engine-lite-wx": "~3.4.7", "@vue/composition-api": "^1.7.2" } @@ -1510,7 +1512,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/composition-api/-/composition-api-1.7.2.tgz", "integrity": "sha512-M8jm9J/laYrYT02665HkZ5l2fWTK4dcVg3BsDHm/pfz+MjDYwX+9FUaZyGwEyXEDonQYRCo0H7aLgdklcIELjw==", "license": "MIT", - "peer": true, "peerDependencies": { "vue": ">= 2.5 < 2.7" } @@ -1541,7 +1542,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -1552,7 +1552,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "license": "MIT", - "peer": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -1597,7 +1596,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@types/node/-/node-25.2.0.tgz", "integrity": "sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==", "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -1648,7 +1646,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-sfc/-/compiler-sfc-3.5.27.tgz", "integrity": "sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.28.5", "@vue/compiler-core": "3.5.27", @@ -1666,7 +1663,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/compiler-ssr/-/compiler-ssr-3.5.27.tgz", "integrity": "sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.27", "@vue/shared": "3.5.27" @@ -1677,7 +1673,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/reactivity/-/reactivity-3.5.27.tgz", "integrity": "sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==", "license": "MIT", - "peer": true, "dependencies": { "@vue/shared": "3.5.27" } @@ -1718,7 +1713,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/runtime-core/-/runtime-core-3.5.27.tgz", "integrity": "sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==", "license": "MIT", - "peer": true, "dependencies": { "@vue/reactivity": "3.5.27", "@vue/shared": "3.5.27" @@ -1742,7 +1736,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@vue/server-renderer/-/server-renderer-3.5.27.tgz", "integrity": "sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-ssr": "3.5.27", "@vue/shared": "3.5.27" @@ -1800,7 +1793,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/ast/-/ast-1.14.1.tgz", "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" @@ -1810,29 +1802,25 @@ "version": "1.13.2", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", @@ -1843,15 +1831,13 @@ "version": "1.13.2", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -1864,7 +1850,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "license": "MIT", - "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -1874,7 +1859,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -1883,15 +1867,13 @@ "version": "1.13.2", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -1908,7 +1890,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", @@ -1922,7 +1903,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -1935,7 +1915,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", @@ -1950,7 +1929,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "license": "MIT", - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" @@ -1960,21 +1938,20 @@ "version": "1.2.0", "resolved": "https://repo.huaweicloud.com/repository/npm/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://repo.huaweicloud.com/repository/npm/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://repo.huaweicloud.com/repository/npm/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1987,7 +1964,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=10.13.0" }, @@ -1999,14 +1975,14 @@ "version": "1.39.2", "resolved": "https://repo.huaweicloud.com/repository/npm/aegis-mp-sdk/-/aegis-mp-sdk-1.39.2.tgz", "integrity": "sha512-ca1X0Bb8x66adDpYlPddKzccgIPZR2Uyvj+shUfzs6s7MAQCJdhNCpCfZXECPCXRX/3rDOe68OlaDeddG9el0Q==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://repo.huaweicloud.com/repository/npm/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2023,7 +1999,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "license": "MIT", - "peer": true, "dependencies": { "ajv": "^8.0.0" }, @@ -2037,11 +2012,10 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2057,8 +2031,7 @@ "version": "1.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ajv-keywords": { "version": "3.5.2", @@ -2094,13 +2067,13 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.13.4", - "resolved": "https://repo.huaweicloud.com/repository/npm/axios/-/axios-1.13.4.tgz", - "integrity": "sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==", + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz", + "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, @@ -2165,6 +2138,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -2183,8 +2157,7 @@ "version": "1.1.2", "resolved": "https://repo.huaweicloud.com/repository/npm/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", @@ -2248,7 +2221,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.0" } @@ -2289,8 +2261,7 @@ "version": "2.20.3", "resolved": "https://repo.huaweicloud.com/repository/npm/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", @@ -2304,7 +2275,6 @@ "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", "hasInstallScript": true, "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -2329,8 +2299,7 @@ "version": "3.2.3", "resolved": "https://repo.huaweicloud.com/repository/npm/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/date-fns": { "version": "4.1.0", @@ -2438,7 +2407,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", "license": "MIT", - "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -2481,8 +2449,7 @@ "version": "2.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/es-module-lexer/-/es-module-lexer-2.0.0.tgz", "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/es-object-atoms": { "version": "1.1.1", @@ -2546,7 +2513,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "license": "BSD-2-Clause", - "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -2560,7 +2526,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "license": "BSD-2-Clause", - "peer": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -2573,7 +2538,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=4.0" } @@ -2583,7 +2547,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=4.0" } @@ -2605,7 +2568,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.8.x" } @@ -2636,8 +2598,7 @@ "url": "https://opencollective.com/fastify" } ], - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/follow-redirects": { "version": "1.15.11", @@ -2734,8 +2695,7 @@ "version": "0.4.1", "resolved": "https://repo.huaweicloud.com/repository/npm/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/global": { "version": "4.3.2", @@ -2763,15 +2723,13 @@ "version": "4.2.11", "resolved": "https://repo.huaweicloud.com/repository/npm/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -2910,7 +2868,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "license": "MIT", - "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -2948,8 +2905,7 @@ "version": "2.3.1", "resolved": "https://repo.huaweicloud.com/repository/npm/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -2992,7 +2948,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/loader-runner/-/loader-runner-4.3.1.tgz", "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=6.11.5" }, @@ -3034,9 +2989,9 @@ } }, "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", "license": "MIT", "dependencies": { "argparse": "^2.0.1", @@ -3080,8 +3035,7 @@ "version": "2.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/mime-db": { "version": "1.52.0", @@ -3139,7 +3093,6 @@ } ], "license": "MIT", - "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3230,7 +3183,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -3360,6 +3312,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/prosemirror-model/-/prosemirror-model-1.25.4.tgz", "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", "license": "MIT", + "peer": true, "dependencies": { "orderedmap": "^2.0.0" } @@ -3389,6 +3342,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/prosemirror-state/-/prosemirror-state-1.4.4.tgz", "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-transform": "^1.0.0", @@ -3437,6 +3391,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/prosemirror-view/-/prosemirror-view-1.41.5.tgz", "integrity": "sha512-UDQbIPnDrjE8tqUBbPmCOZgtd75htE6W3r0JCmY9bL6W1iemDM37MZEKC49d+tdQ0v/CKx4gjxLoLsfkD2NiZA==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", @@ -3481,16 +3436,6 @@ "node": ">=0.10.0" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://repo.huaweicloud.com/repository/npm/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://repo.huaweicloud.com/repository/npm/readdirp/-/readdirp-4.1.2.tgz", @@ -3536,7 +3481,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3562,27 +3506,6 @@ "individual": "^2.0.0" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, "node_modules/safe-json-parse": { "version": "4.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/safe-json-parse/-/safe-json-parse-4.0.0.tgz", @@ -3596,6 +3519,7 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/sass/-/sass-1.97.3.tgz", "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "license": "MIT", + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -3681,16 +3605,6 @@ "semver": "bin/semver.js" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://repo.huaweicloud.com/repository/npm/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://repo.huaweicloud.com/repository/npm/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -3708,7 +3622,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3727,7 +3640,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "license": "MIT", - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -3762,7 +3674,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3784,7 +3695,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/tapable/-/tapable-2.3.0.tgz", "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "license": "MIT", - "peer": true, "engines": { "node": ">=6" }, @@ -3820,7 +3730,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/terser/-/terser-5.46.0.tgz", "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -3835,16 +3744,14 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://repo.huaweicloud.com/repository/npm/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.3.17", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.17.tgz", + "integrity": "sha512-YR7PtUp6GMU91BgSJmlaX/rS2lGDbAF7D+Wtq7hRO+MiljNmodYvqslzCFiYVAgW+Qoaaia/QUIP4lGXufjdZw==", "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -3870,9 +3777,9 @@ } }, "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "license": "MIT", "peer": true, "dependencies": { @@ -3891,7 +3798,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -3903,15 +3809,13 @@ "version": "1.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "4.3.3", "resolved": "https://repo.huaweicloud.com/repository/npm/schema-utils/-/schema-utils-4.3.3.tgz", "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "license": "MIT", - "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -3957,8 +3861,7 @@ "version": "1.1.14", "resolved": "https://repo.huaweicloud.com/repository/npm/trtc-wx-sdk/-/trtc-wx-sdk-1.1.14.tgz", "integrity": "sha512-QYV2j5pDlhbM0zykYq8OYaSpjyTn0/YbsK180iNwCLEA61m2KWm2wb1veRBVsTP9Lq0iqbSMU17cOW963vcraA==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/tslib": { "version": "2.8.1", @@ -4021,27 +3924,11 @@ } } }, - "node_modules/tuikit-atomicx-vue3/node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://repo.huaweicloud.com/repository/npm/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/tuikit-logger": { "version": "0.0.4-beta.1", "resolved": "https://repo.huaweicloud.com/repository/npm/tuikit-logger/-/tuikit-logger-0.0.4-beta.1.tgz", "integrity": "sha512-Ky83B1p88xakmfZ2f92cU0YxfolyxnQBv14tQpvnuHcMTnVR2Rjy8tityDGwF+pnxrAhJ7H7OPB/4rFdWVncIw==", - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/typescript": { "version": "4.9.5", @@ -4066,8 +3953,7 @@ "version": "7.16.0", "resolved": "https://repo.huaweicloud.com/repository/npm/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/unplugin": { "version": "1.16.1", @@ -4178,7 +4064,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/watchpack/-/watchpack-2.5.1.tgz", "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", "license": "MIT", - "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -4192,7 +4077,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/webpack/-/webpack-5.104.1.tgz", "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -4241,7 +4125,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/webpack-sources/-/webpack-sources-3.3.3.tgz", "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "license": "MIT", - "peer": true, "engines": { "node": ">=10.13.0" } @@ -4253,9 +4136,9 @@ "license": "MIT" }, "node_modules/webpack/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://repo.huaweicloud.com/repository/npm/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "license": "MIT", "peer": true, "dependencies": { @@ -4274,7 +4157,6 @@ "resolved": "https://repo.huaweicloud.com/repository/npm/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -4286,15 +4168,13 @@ "version": "1.0.0", "resolved": "https://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/webpack/node_modules/schema-utils": { "version": "4.3.3", "resolved": "https://repo.huaweicloud.com/repository/npm/schema-utils/-/schema-utils-4.3.3.tgz", "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "license": "MIT", - "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", diff --git a/pages/my-index/my-index.vue b/pages/my-index/my-index.vue index 656394c..ae0f509 100644 --- a/pages/my-index/my-index.vue +++ b/pages/my-index/my-index.vue @@ -97,7 +97,7 @@ {{ userInfo?.userName || '' }} - ID:{{ userInfo?.userId || '' }} + ID:{{ userInfo?.invitationCode || '' }} 账户积分 - {{ formatNumberWithWan(integralData) }} + {{ integralData }} + + diff --git a/static/.DS_Store b/static/.DS_Store new file mode 100644 index 0000000..c550e11 Binary files /dev/null and b/static/.DS_Store differ diff --git a/static/bootstrap.png b/static/bootstrap.png new file mode 100644 index 0000000..49651aa Binary files /dev/null and b/static/bootstrap.png differ diff --git a/static/im-logo.png b/static/im-logo.png new file mode 100644 index 0000000..368c15d Binary files /dev/null and b/static/im-logo.png differ diff --git a/static/logo.png b/static/logo.png index 9af7040..368c15d 100644 Binary files a/static/logo.png and b/static/logo.png differ diff --git a/uni_modules/RongCloud-CallWrapper/package.json b/uni_modules/RongCloud-CallWrapper/package.json index 54a4428..2ca8101 100644 --- a/uni_modules/RongCloud-CallWrapper/package.json +++ b/uni_modules/RongCloud-CallWrapper/package.json @@ -5,12 +5,14 @@ "description": "RongCloud-CallWrapper", "keywords": [ "RongCloud,call,rtc" -], + ], "repository": "", "engines": { - "HBuilderX": "^3.1.0" + "HBuilderX": "^3.1.0", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -28,51 +30,66 @@ "permissions": "无" }, "npmurl": "", - "type": "sdk-js" + "type": "sdk-js", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "App": { - "app-vue": "y", - "app-nvue": "y", - "app-harmony": "u", - "app-uvue": "u" - }, - "H5-mobile": { - "Safari": "n", - "Android Browser": "n", - "微信浏览器(Android)": "n", - "QQ浏览器(Android)": "n" - }, - "H5-pc": { - "Chrome": "n", - "IE": "n", - "Edge": "n", - "Firefox": "n", - "Safari": "n" - }, - "小程序": { - "微信": "n", - "阿里": "n", - "百度": "n", - "字节跳动": "n", - "QQ": "n" - }, - "快应用": { - "华为": "n", - "联盟": "n" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } diff --git a/uni_modules/RongCloud-IMWrapper-V2/package.json b/uni_modules/RongCloud-IMWrapper-V2/package.json index 2bf2e9f..b727f37 100644 --- a/uni_modules/RongCloud-IMWrapper-V2/package.json +++ b/uni_modules/RongCloud-IMWrapper-V2/package.json @@ -6,12 +6,14 @@ "keywords": [ "RongCloud", "IM" -], + ], "repository": "", "engines": { - "HBuilderX": "^3.1.0" + "HBuilderX": "^3.1.0", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -29,51 +31,66 @@ "permissions": "无" }, "npmurl": "", - "type": "sdk-js" + "type": "sdk-js", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "App": { - "app-vue": "y", - "app-nvue": "y", - "app-harmony": "u", - "app-uvue": "u" - }, - "H5-mobile": { - "Safari": "n", - "Android Browser": "n", - "微信浏览器(Android)": "n", - "QQ浏览器(Android)": "n" - }, - "H5-pc": { - "Chrome": "n", - "IE": "n", - "Edge": "n", - "Firefox": "n", - "Safari": "n" - }, - "小程序": { - "微信": "n", - "阿里": "n", - "百度": "n", - "字节跳动": "n", - "QQ": "n" - }, - "快应用": { - "华为": "n", - "联盟": "n" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } diff --git a/uni_modules/TencentCloud-Push/package.json b/uni_modules/TencentCloud-Push/package.json index 11c4355..30c7e3d 100644 --- a/uni_modules/TencentCloud-Push/package.json +++ b/uni_modules/TencentCloud-Push/package.json @@ -12,10 +12,12 @@ "推送", "Android/iOS", "谷歌FCM" -], + ], "repository": "", "engines": { - "HBuilderX": "^3.6.8" + "HBuilderX": "^3.6.8", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "dcloudext": { "type": "uts", @@ -35,54 +37,66 @@ "data": "腾讯云即时通信IM隐私保护指引: https://web.sdk.qcloud.com/document/Tencent-IM-Privacy-Protection-Guidelines.html\n移动推送隐私保护指引: https://privacy.qq.com/document/preview/8565a4a2d26e480187ed86b0cc81d727", "permissions": "本地存储空间" }, - "npmurl": "" + "npmurl": "", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "y" + "tcb": "√", + "aliyun": "√", + "alipay": "√" }, "client": { - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "App": { - "app-android": "y", - "app-ios": "y", - "app-harmony": "u" - }, - "H5-mobile": { - "Safari": "u", - "Android Browser": "u", - "微信浏览器(Android)": "u", - "QQ浏览器(Android)": "u" - }, - "H5-pc": { - "Chrome": "u", - "IE": "u", - "Edge": "u", - "Firefox": "u", - "Safari": "u" - }, - "小程序": { - "微信": "u", - "阿里": "u", - "百度": "u", - "字节跳动": "u", - "QQ": "u", - "钉钉": "u", - "快手": "u", - "飞书": "u", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } diff --git a/uni_modules/tuikit-atomic-x/state/LiveSummaryState.ts b/uni_modules/tuikit-atomic-x/state/LiveSummaryState.ts index 55e7947..008b80e 100644 --- a/uni_modules/tuikit-atomic-x/state/LiveSummaryState.ts +++ b/uni_modules/tuikit-atomic-x/state/LiveSummaryState.ts @@ -38,6 +38,7 @@ const onLiveSummaryStoreChanged = (eventName : string, res : string) : void => { if (eventName === "summaryData") { const data = JSON.parse(res); summaryData.value = data; + console.log("直播统计数据更新", summaryData.value) } } catch (error) { console.error("onLiveSummaryStoreChanged error:", error); diff --git a/uni_modules/uni-combox/package.json b/uni_modules/uni-combox/package.json index 7af24fc..9229ba9 100644 --- a/uni_modules/uni-combox/package.json +++ b/uni_modules/uni-combox/package.json @@ -9,15 +9,17 @@ "combox", "组合框", "select" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -35,54 +37,71 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [ - "uni-scss", - "uni-icons" - ], + "uni-scss", + "uni-icons" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "n" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-countdown/package.json b/uni_modules/uni-countdown/package.json index 73c35f5..0f3aa23 100644 --- a/uni_modules/uni-countdown/package.json +++ b/uni_modules/uni-countdown/package.json @@ -8,15 +8,17 @@ "uniui", "countdown", "倒计时" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -34,53 +36,70 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { - "dependencies": ["uni-scss"], + "dependencies": [ + "uni-scss" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y", - "app-harmony": "u", - "app-uvue": "u" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-data-checkbox/package.json b/uni_modules/uni-data-checkbox/package.json index f823e8b..2de617b 100644 --- a/uni_modules/uni-data-checkbox/package.json +++ b/uni_modules/uni-data-checkbox/package.json @@ -9,15 +9,17 @@ "单选", "多选", "单选多选" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "^3.1.1" + "HBuilderX": "^3.1.1", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -35,53 +37,71 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { - "dependencies": ["uni-load-more","uni-scss"], + "dependencies": [ + "uni-load-more", + "uni-scss" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y", - "app-harmony": "u", - "app-uvue": "u" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-data-picker/package.json b/uni_modules/uni-data-picker/package.json index ba69c67..824a29f 100644 --- a/uni_modules/uni-data-picker/package.json +++ b/uni_modules/uni-data-picker/package.json @@ -10,15 +10,17 @@ "级联", "省市区", "" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -36,58 +38,72 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [ "uni-load-more", - "uni-icons", - "uni-scss" + "uni-icons", + "uni-scss" ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y", - "app-uvue": "y", - "app-harmony": "u" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-forms/package.json b/uni_modules/uni-forms/package.json index 0d72c63..f514dd6 100644 --- a/uni_modules/uni-forms/package.json +++ b/uni_modules/uni-forms/package.json @@ -9,15 +9,17 @@ "校验", "表单校验", "表单验证" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -35,55 +37,71 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [ - "uni-scss", + "uni-scss", "uni-icons" ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-number-box/package.json b/uni_modules/uni-number-box/package.json index 4ac9047..71da4e5 100644 --- a/uni_modules/uni-number-box/package.json +++ b/uni_modules/uni-number-box/package.json @@ -7,15 +7,17 @@ "uni-ui", "uniui", "数字输入框" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -33,49 +35,68 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { - "dependencies": ["uni-scss"], + "dependencies": [ + "uni-scss" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } diff --git a/uni_modules/uni-rate/package.json b/uni_modules/uni-rate/package.json index 64e8e33..125c7c1 100644 --- a/uni_modules/uni-rate/package.json +++ b/uni_modules/uni-rate/package.json @@ -7,19 +7,17 @@ "uni-ui", "uniui", "评分" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], "sale": { "regular": { "price": "0.00" @@ -36,53 +34,71 @@ "data": "无", "permissions": "无" }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [ - "uni-scss", - "uni-icons" - ], + "uni-scss", + "uni-icons" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y" + "tcb": "√", + "aliyun": "√" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-row/package.json b/uni_modules/uni-row/package.json index 3f52fa6..c09dee5 100644 --- a/uni_modules/uni-row/package.json +++ b/uni_modules/uni-row/package.json @@ -9,19 +9,17 @@ "栅格", "布局", "layout" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], "sale": { "regular": { "price": "0.00" @@ -38,48 +36,68 @@ "data": "无", "permissions": "无" }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { - "dependencies": ["uni-scss"], + "dependencies": [ + "uni-scss" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y" + "tcb": "√", + "aliyun": "√" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "u" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json index 7cc0ccb..b23283d 100644 --- a/uni_modules/uni-scss/package.json +++ b/uni_modules/uni-scss/package.json @@ -7,16 +7,14 @@ "uni-scss", "uni-ui", "辅助样式" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "^3.1.0" + "HBuilderX": "^3.1.0", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "dcloudext": { - "category": [ - "JS SDK", - "通用 SDK" - ], "sale": { "regular": { "price": "0.00" @@ -33,50 +31,68 @@ "data": "无", "permissions": "无" }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "sdk-js", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y" + "tcb": "√", + "aliyun": "√" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "u" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "n", - "联盟": "n" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } } -} +} \ No newline at end of file diff --git a/uni_modules/uni-search-bar/package.json b/uni_modules/uni-search-bar/package.json index 1730d9d..9ec369e 100644 --- a/uni_modules/uni-search-bar/package.json +++ b/uni_modules/uni-search-bar/package.json @@ -8,15 +8,17 @@ "uniui", "搜索框", "搜索栏" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, -"dcloudext": { + "dcloudext": { "sale": { "regular": { "price": "0.00" @@ -34,52 +36,69 @@ "permissions": "无" }, "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [ - "uni-scss", - "uni-icons" - ], + "uni-scss", + "uni-icons" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "n" + "tcb": "√", + "aliyun": "√", + "alipay": "x" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } diff --git a/uni_modules/uni-swiper-dot/package.json b/uni_modules/uni-swiper-dot/package.json index f2dd8d2..d94f26d 100644 --- a/uni_modules/uni-swiper-dot/package.json +++ b/uni_modules/uni-swiper-dot/package.json @@ -9,19 +9,17 @@ "轮播图指示点", "dot", "swiper" -], + ], "repository": "https://github.com/dcloudio/uni-ui", "engines": { - "HBuilderX": "" + "HBuilderX": "", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "directories": { "example": "../../temps/example_temps" }, "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], "sale": { "regular": { "price": "0.00" @@ -38,48 +36,68 @@ "data": "无", "permissions": "无" }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { - "dependencies": ["uni-scss"], + "dependencies": [ + "uni-scss" + ], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y" + "tcb": "√", + "aliyun": "√" }, "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } } diff --git a/uni_modules/uu-pwdModal/package.json b/uni_modules/uu-pwdModal/package.json index e53ea2a..9827752 100644 --- a/uni_modules/uu-pwdModal/package.json +++ b/uni_modules/uu-pwdModal/package.json @@ -5,10 +5,12 @@ "description": "支付密码弹窗", "keywords": [ "支付,弹窗,密码" -], + ], "repository": "", "engines": { - "HBuilderX": "^3.1.0" + "HBuilderX": "^3.1.0", + "uni-app": "^3.1.0", + "uni-app-x": "^3.1.0" }, "dcloudext": { "type": "component-vue", @@ -28,54 +30,66 @@ "data": "插件不采集任何数据,一个支付密码的弹窗,内置忘记密码跳转功能,忘记密码页面需要自行修改", "permissions": "无" }, - "npmurl": "" + "npmurl": "", + "darkmode": "-", + "i18n": "-", + "widescreen": "-" }, "uni_modules": { "dependencies": [], "encrypt": [], "platforms": { "cloud": { - "tcb": "y", - "aliyun": "y", - "alipay": "y" + "tcb": "√", + "aliyun": "√", + "alipay": "√" }, "client": { - "Vue": { - "vue2": "y", - "vue3": "y" + "uni-app": { + "vue": { + "vue2": "-", + "vue3": "-" + }, + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "vue": "-", + "nvue": "-", + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-", + "alipay": "-", + "toutiao": "-", + "baidu": "-", + "kuaishou": "-", + "jd": "-", + "harmony": "-", + "qq": "-", + "lark": "-" + }, + "quickapp": { + "huawei": "-", + "union": "-" + } }, - "App": { - "app-vue": "y", - "app-nvue": "u", - "app-uvue": "u" - }, - "H5-mobile": { - "Safari": "u", - "Android Browser": "y", - "微信浏览器(Android)": "u", - "QQ浏览器(Android)": "u" - }, - "H5-pc": { - "Chrome": "y", - "IE": "u", - "Edge": "y", - "Firefox": "u", - "Safari": "u" - }, - "小程序": { - "微信": "u", - "阿里": "u", - "百度": "u", - "字节跳动": "u", - "QQ": "u", - "钉钉": "u", - "快手": "u", - "飞书": "u", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" + "uni-app-x": { + "web": { + "safari": "-", + "chrome": "-" + }, + "app": { + "android": "-", + "ios": "-", + "harmony": "-" + }, + "mp": { + "weixin": "-" + } } } }