概览
ARtmKit 类是 ar云平台 RTM SDK 的入口,提供所有可供 App 调用的核心方法。
aRtmDelegate
@property (atomic, weak, nullable) id<ARtmDelegate> aRtmDelegate;
ARtmDelegate 接口类向 App 发送回调通知,上报运行时的事件。
rtmCallKit
@property (atomic, strong, nullable) ARtmCallKit *rtmCallKit;
RTM 的呼叫邀请相关方法。
initWithAppId
- (instancetype _Nullable)initWithAppId:(NSString * _Nonnull)appId delegate:(id <ARtmDelegate> _Nullable)delegate;
创建并初始化一个 ARtmKit 实例
ar云平台 RTM SDK 支持多个 ARtmKit 实例。 ARtmKit 类的所有接口函数,除 destroyChannelWithId 方法以外,都是异步调用。
参数 | 描述 |
---|---|
appId | 如果你的开发包里没有 App ID,请向ar云平台申请一个新的 App ID。 |
delegate | ARtmDelegate 向 App 发送回调通知,上报ar云平台 RTM SDK 运行时的事件。 |
返回值
调用成功:一个 ARtmKit 实例。调用失败:nil。可能是因为 appId 的长度不是 32 个字符。
loginByToken
- (void)loginByToken:(NSString * _Nullable)token user:(NSString * _Nonnull)uid completion:(ARtmLoginBlock _Nullable)completionBlock;
登录 ar云平台 RTM 系统
参数 | 描述 |
---|---|
token | 用于登录 ar云平台 RTM 系统的动态密钥。开启动态鉴权后可用。集成及测试阶段请将 token 设置为 nil 。 |
uid | 登录 ar云平台 RTM 系统的用户 ID。 uid 必须为不超过 64 字节的字符串。请不要将 uid 设为空、 nil 或 “null"。 以下为支持的字符集范围: |
completionBlock | ARtmLoginBlock回调返回登录结果。错误码详见 ARtmLoginErrorCode 。 |
返回值
0方法调用成功,<0方法调用失败。
注意事项:
- 异地登录后之前的状态(目前主要是加入的频道)不会保留。
- 该方法的调用频率为 2 次/秒。
- 只有在调用本方法成功加入频道后(即收到 ARtmLoginErrorOk 错误码时)才可以调用 RTM 的核心业务逻辑。以下方法除外
App 调用此方法后,本地用户收到 connectionStateChanged 回调,连接状态变为 ARtmConnectionStateConnecting 。
- 如果此方法调用成功,本地用户收到 ARtmLoginBlock 和 connectionStateChanged 回调,连接状态变为 ARtmConnectionStateConnected 。
- 如果此方法调用失败,本地用户收到 ARtmLoginBlock 和 connectionStateChanged 回调,连接状态变为 ARtmConnectionStateDisconnected 。
logoutWithCompletion
- (void)logoutWithCompletion:(ARtmLogoutBlock _Nullable )completionBlock;
登出 ar云平台 RTM 系统
- 如果此方法调用成功,本地用户收到 ARtmLogoutBlock 和 connectionStateChanged 回调,连接状态变为 ARtmConnectionStateDisconnected。
- 如果此方法调用失败,本地用户收到 ARtmLoginBlock 回调。
参数
参数 | 描述 |
---|---|
completionBlock | ARtmLogoutBlock 回调返回登出结果。错误码详见 ARtmLogoutErrorCode 。 |
renewToken
- (void)renewToken:(NSString * _Nonnull)token completion:(ARtmRenewTokenBlock _Nullable)completionBlock;
更新当前的 RTM Token
在收到 rtmKitTokenPrivilegeWillExpire 回调时你需要调用此方法更新 Token。 ARtmRenewTokenBlock 回调会返回 Token 更新的结果。该方法的调用频率为 2 次/秒。
参数 | 描述 |
---|---|
token | 新的 RTM Token。 |
completionBlock | ARtmRenewTokenBlock 回调返回更新当前 Token 的结果。 |
sendMessage
- (void)sendMessage:(ARtmMessage * _Nonnull)message toPeer:(NSString * _Nonnull)peerId sendMessageOptions:(ARtmSendMessageOptions * _Nonnull)options completion:(ARtmSendPeerMessageBlock _Nullable)completionBlock;
向指定用户发送点对点消息或点对点的离线消息
该方法允许你向离线用户发送点对点消息。如果指定用户在你发送离线消息时不在线,消息服务器会保存该条消息。请注意,目前我们只为每个接收端保存 200 条离线消息最长七天。当保存的离线消息超出限制时,最老的信息将会被最新的消息替换。
参数 | 描述 |
---|---|
message | 消息内容。如何创建消息详见 ARtmMessage 。 |
peerId | peerId 消息接收者的用户 ID。peerId 必须为不超过 64 字节的字符串。 以下为支持的字符集范围: |
options | 消息发送选项。详见 ARtmSendMessageOptions 。 |
completionBlock | ARtmSendPeerMessageBlock 回调返回发送点对点消息的结果。错误码详见 ARtmSendPeerMessageErrorCode 。 |
注意事项:
消息(频道消息和点对点消息一并计算在内)的最高发送频率为 60 次/秒。
- 如果此方法调用成功,本地用户收到 ARtmSendPeerMessageBlock 回调。对端用户收到 messageReceived 回调。
- 如果此方法调用失败,本地用户收到 ARtmSendPeerMessageBlock 回调和错误码。
createChannelWithId
- (ARtmChannel * _Nullable)createChannelWithId:(NSString * _Nonnull)channelId delegate:(id <ARtmChannelDelegate> _Nullable)delegate;
创建一个 ar云平台 RTM 频道
参数 | 描述 |
---|---|
channelId | 标识 ar云平台 RTM 通话的频道名称。channelId 必须为不超过 64 字节的字符串,不能为空、nil,或设为 “null"。 以下为支持的字符集范围: |
delegate | ARtmChannelDelegate 接口类向 App 发送回调通知,上报运行时的频道相关事件。 |
返回值
调用成功:一个 ARtmChannel 实例。调用失败:nil。可能是因为 channelId 无效,channelId 已存在。
注意事项: 一个 ARtmKit 实例中可以创建多个频道,但是同一个用户只能同时加入最多 20 个频道。请在不使用某个频道时,调用 destroyChannelWithId 方法销毁频道实例。
destroyChannelWithId
- (BOOL)destroyChannelWithId: (NSString * _Nonnull) channelId;
ARtmChannel 本地频道占用的所有资源
释放一个参数 | 描述 |
---|---|
channelId | 待释放的频道实例的 ID。 |
返回值
YES方法调用成功,NO方法调用失败。
注意事项: 请不要在任何回调中调用该方法。
getRtmCallKit
- (ARtmCallKit * _Nullable)getRtmCallKit;
ARtmCallKit 实例
获取一个返回值
一个 ARtmCallKit 实例。
queryPeersOnlineStatus
- (void)queryPeersOnlineStatus: (NSArray<NSString*> * _Nonnull) peerIds completion:(ARtmQueryPeersOnlineBlock _Nullable)completionBlock;
查询指定用户的在线状态
- 在线:用户已登录到 ar云平台 RTM 系统。
- 不在线:用户已登出 ar云平台 RTM 系统或因其他原因与 ar云平台 RTM 系统断开连接。
参数 | 描述 |
---|---|
peerIds | 待查的用户 ID 列表。 |
completionBlock | 通过 ARtmQueryPeersOnlineBlock 回调返回发送点对点消息的结果, |
setLocalUserAttributes
- (void)setLocalUserAttributes:(NSArray< ARtmAttribute *> * _Nullable) attributes completion:(ARtmSetLocalUserAttributesBlock _Nullable)completionBlock;
全量设置本地用户的属性
setLocalUserAttributes 、 addOrUpdateLocalUserAttributes 、 deleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
attributes | 待设置的属性。详见 ARtmAttribute 。 |
completionBlock | 通过ARtmSetLocalUserAttributesBlock 回调返回方法调用的结果。 |
addOrUpdateLocalUserAttributes
- (void)addOrUpdateLocalUserAttributes:(NSArray< ARtmAttribute *> * _Nullable) attributes completion:(ARtmAddOrUpdateLocalUserAttributesBlock _Nullable)completionBlock;
添加或更新本地用户的属性
setLocalUserAttributes 、 addOrUpdateLocalUserAttributes 、 deleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
attributes | 待增加或更新的属性。详见 ARtmAttribute 。 |
completionBlock | 通过 ARtmAddOrUpdateLocalUserAttributesBlock 回调返回方法调用的结果。 |
deleteLocalUserAttributesByKeys
- (void)deleteLocalUserAttributesByKeys:(NSArray< NSString *> * _Nullable) attributeKeys completion:(ARtmDeleteLocalUserAttributesBlock _Nullable)completionBlock;
删除本地用户的指定属性。
setLocalUserAttributes 、 addOrUpdateLocalUserAttributes 、 deleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
attributeKeys | 属性名数组。 |
completionBlock | 通过ARtmDeleteLocalUserAttributesBlock 回调返回方法调用的结果。 |
clearLocalUserAttributesWithCompletion
- (void)clearLocalUserAttributesWithCompletion:(ARtmClearLocalUserAttributesBlock _Nullable)completionBlock;
清空本地用户的属性
setLocalUserAttributes 、 addOrUpdateLocalUserAttributes 、 deleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
completionBlock | 通过 ARtmClearLocalUserAttributesBlock 回调返回方法调用的结果。 |
getUserAllAttributes
- (void)getUserAllAttributes:(NSString * _Nonnull )uid completion:(ARtmGetUserAttributesBlock _Nullable)completionBlock;
获取指定用户的全部属性
getUserAllAttributes 和 getUserAttributesByKeys 一并计算在内:调用频率限制为每 5 秒 40 次。
参数 | 描述 |
---|---|
uid | 指定用户的用户 ID。 |
completionBlock | 通过 ARtmGetUserAttributesBlock 回调返回方法调用的结果。 |
getUserAttributesByKeys
- (void)getUserAttributes:(NSString * _Nonnull )uid ByKeys:(NSArray< NSString *> * _Nullable)attributeKeys completion:(ARtmGetUserAttributesBlock _Nullable)completionBlock;
获取指定用户指定属性名的属性
getUserAllAttributes 和 getUserAttributesByKeys 一并计算在内:调用频率限制为每 5 秒 40 次。
参数 | 描述 |
---|---|
uid | 指定用户的用户 ID。 |
attributeKeys | 属性名数组。 |
completionBlock | 通过 ARtmGetUserAttributesBlock 回调返回方法调用的结果。 |
getChannelMemberCount
- (void)getChannelMemberCount:(NSArray<NSString*> * _Nonnull)channelIds completion:(ARtmChannelMemberCountBlock _Nullable)completionBlock;
查询单个或多个频道的成员人数
参数 | 描述 |
---|---|
channelIds | 指定频道名数组。 |
completionBlock | 通过 ARtmChannelMemberCountBlock 回调返回方法调用的结果。 |
注意事项:
- 该方法的调用频率上限为每秒 1 次。
- 不支持一次查询超过 32 个频道的成员人数。
setChannelAttributes
- (void)setChannel:(NSString * _Nonnull)channelId Attributes:(NSArray< ARtmChannelAttribute *> * _Nullable)attributes Options:(ARtmChannelAttributeOptions* _Nonnull)options completion:(ARtmSetChannelAttributesBlock _Nullable)completionBlock;
全量设置某指定频道的属性
- 你无需加入指定频道即可为该频道设置频道属性。
- 当某频道处于空频道状态(无人状态)数分钟后,该频道的频道属性将被清空。
- 如果存在多个用户有权限修改频道属性,那么我们建议在修改频道属性前先通过调用 getChannelAllAttributes 方法更新本地频道属性缓存。
- setChannelAttributes 、 addOrUpdateChannelAttributes 、 deleteChannelAttributesByKeys ,和 clearChannel 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
channelId | 该指定频道的频道 ID。 |
attributes | 频道属性数组。详见 ARtmChannelAttribute 。 |
options | 频道属性操作选项。详见 ARtmChannelAttributeOptions 。 |
completionBlock | ARtmSetLocalUserAttributesBlock 回调返回方法调用的结果。 |
addOrUpdateChannelAttributes
- (void)addOrUpdateChannel:(NSString* _Nonnull)channelId Attributes:(NSArray< ARtmChannelAttribute *> * _Nullable)attributes Options:(ARtmChannelAttributeOptions* _Nonnull)options completion:(ARtmAddOrUpdateChannelAttributesBlock _Nullable)completionBlock;
添加或更新某指定频道的属性
如果属性已存在,该方法更新该频道的已有属性; 如果属性不存在,该方法增加该频道的属性。
- 你无需加入指定频道即可为该频道更新频道属性。
- 当某频道处于空频道状态(无人状态)数分钟后,该频道的频道属性将被清空。
- 如果存在多个用户有权限修改频道属性,那么我们建议在修改频道属性前先通过调用 getChannelAllAttributes 方法更新本地频道属性缓存。
- setChannelAttributes 、 addOrUpdateChannelAttributes 、 deleteChannelAttributesByKeys ,和 clearChannel 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
channelId | 该指定频道的频道 ID。 |
attributes | 频道属性数组。详见 ARtmChannelAttribute 。 |
options | 频道属性操作选项。详见 ARtmChannelAttributeOptions 。 |
completionBlock | ARtmAddOrUpdateLocalUserAttributesBlock 回调返回方法调用的结果。 |
deleteChannelAttributesByKeys
- (void)deleteChannel:(NSString* _Nonnull)channelId AttributesByKeys:(NSArray< NSString *> * _Nullable)attributeKeys
Options:(ARtmChannelAttributeOptions* _Nonnull)options completion:(ARtmDeleteChannelAttributesBlock _Nullable)completionBlock;
删除某指定频道的指定属性
- 你无需加入指定频道即可删除该频道的属性。
- 当某频道处于空频道状态(无人状态)数分钟后,该频道的频道属性将被清空。
- 如果存在多个用户有权限修改频道属性,那么我们建议在修改频道属性前先通过调用 getChannelAllAttributes 方法更新本地频道属性缓存。
- setChannelAttributes 、 addOrUpdateChannelAttributes 、 deleteChannelAttributesByKeys ,和 clearChannel 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
channelId | 该指定频道的频道 ID。 |
attributeKeys | 频道属性名数组。 |
options | 频道属性操作选项。详见 ARtmChannelAttributeOptions。 |
completionBlock | ARtmDeleteLocalUserAttributesBlock 回调返回方法调用的结果。 |
clearChannel
- (void)clearChannel:(NSString* _Nonnull)channelId Options:(ARtmChannelAttributeOptions* _Nonnull)options AttributesWithCompletion:(ARtmClearChannelAttributesBlock _Nullable)completionBlock;
清空某指定频道的属性
- 你无需加入指定频道即可清空该频道的属性。
- setChannelAttributes 、 addOrUpdateChannelAttributes 、 deleteChannelAttributesByKeys ,和 clearChannel 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
channelId | 该指定频道的频道 ID。 |
options | 频道属性操作选项。详见 ARtmChannelAttributeOptions 。 |
completionBlock | ARtmClearLocalUserAttributesBlock 回调返回方法调用的结果。 |
getChannelAllAttributes
- (void)getChannelAllAttributes:(NSString* _Nonnull)channelId completion:(ARtmGetChannelAttributesBlock _Nullable)completionBlock;
查询某指定频道的全部属性
- 你无需加入指定频道即可查询该频道的属性。
- getChannelAllAttributes 和 getChannelAttributesByKeys 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
channelId | 该指定频道的频道 ID。 |
completionBlock | ARtmGetUserAttributesBlock 回调返回方法调用的结果。 |
getChannelAttributes
- (void)getChannelAttributes:(NSString* _Nonnull)channelId ByKeys:(NSArray< NSString *> * _Nullable) attributeKeys completion:(ARtmGetChannelAttributesBlock _Nullable)completionBlock;
查询某指定频道指定属性名的属性
- 你无需加入指定频道即可查询该频道的属性。
- getChannelAllAttributes 和 getChannelAttributesByKeys 一并计算在内:调用频率限制为每 5 秒 10 次。
参数 | 描述 |
---|---|
channelId | 该指定频道的频道 ID。 |
attributeKeys | 频道属性名数组。 |
completionBlock | ARtmGetUserAttributesBlock 回调返回方法调用的结果。 |
subscribePeersOnlineStatus
- (void)subscribePeersOnlineStatus: (NSArray<NSString*> * _Nonnull) peerIds completion:(ARtmSubscriptionRequestBlock _Nullable)completionBlock;
订阅指定单个或多个用户的在线状态
- 首次订阅成功后,SDK 会通过 PeersOnlineStatusChanged 回调返回被订阅用户在线状态。
- 每当被订阅用户在线状态发生变化时,SDK 都会通过 PeersOnlineStatusChanged 回调通知订阅方。
- 如果 SDK 在断线重连过程中有被订阅用户的在线状态发生改变,SDK 会在重连成功时通过 PeersOnlineStatusChanged 回调通知订阅方。
参数 | 描述 |
---|---|
peerIds | 待订阅用户的用户 ID 阵列。 |
completionBlock | ARtmSubscriptionRequestBlock 回调返回方法调用的结果。 |
注意事项:
- 用户登出 A RTM 系统后,所有之前的订阅内容都会被清空;重新登录后,如需保留之前订阅内容则需重新订阅。
- SDK 会在网络连接中断时进入断线重连状态。重连成功时 SDK 会自动重新订阅之前订阅用户,无需人为干预。
unsubscribePeersOnlineStatus
- (void)unsubscribePeersOnlineStatus: (NSArray<NSString*> * _Nonnull) peerIds completion:(ARtmSubscriptionRequestBlock _Nullable)completionBlock;
退订指定单个或多个用户的在线状态
参数 | 描述 |
---|---|
peerIds | 待退订用户的用户 ID 阵列。 |
completionBlock | ARtmSubscriptionRequestBlock 回调返回方法调用的结果。 |
queryPeersBySubscriptionOption
- (void)queryPeersBySubscriptionOption: (ARtmPeerSubscriptionOptions) option completion:(ARtmQueryPeersBySubscriptionOptionBlock _Nullable)completionBlock;
获取某特定内容被订阅的用户列表
参数 | 描述 |
---|---|
option | 被订阅的状态类型。详见 ARtmPeerSubscriptionOptions 。 |
completionBlock | ARtmQueryPeersBySubscriptionOptionBlock 回调返回方法调用的结果。 |
setParameters
- (int)setParameters:(NSString * _Nonnull)parameters;
通过 JSON 配置 SDK 提供技术预览或特别定制功能
参数 | 描述 |
---|---|
parameters | JSON 格式的 SDK 选项。 |
返回值
0方法调用成功,<0方法调用失败
setLogFile
- (int)setLogFile:(NSString * _Nonnull)logFile;
设置日志文件路径
设置 SDK 的输出 log 文件。SDK 运行时产生的所有 log 将写入该文件。 App 必须保证指定的目录存在而且可写。
参数 | 描述 |
---|---|
logFile | 日志文件的完整路径。该日志文件为 UTF-8 编码。 |
注意事项:
- 日志文件的默认地址如下:
- iOS:
App Sandbox/Library/caches/ar_rtm_sdk.log
- macOS
- 开启沙盒:
App Sandbox/Library/Logs/ar_rtm_sdk.log
, 例如/Users/<username>/Library/Containers/<App Bundle Identifier>/Data/Library/Logs/ar_rtm_sdk.log
.- 关闭沙盒:
~/Library/Logs/ar_rtm_sdk.log
.- 如需调用本方法,请在调用 initWithAppId 方法初始化 ARtmKit 对象后立即调用,否则可能造成输出日志不完整。
返回值
0方法调用成功,<0方法调用失败。
setLogFileSize
- (int)setLogFileSize:(int)fileSize;
设置日志文件大小
设置 SDK 输出的日志文件大小,单位为 KB。
SDK 设有 2 个日志文件,每个文件大小为 512 KB。如果你将 fileSize 设置为 1024 KB, SDK 会最多输出 2 MB 的日志文件。如果日志文件大小超出设置值,新的日志会覆盖之前的日志。
参数 | 描述 |
---|---|
fileSize | 指定 SDK 输出日志文件的内存大小,单位为 KB |
返回值
0方法调用成功,<0方法调用失败。
setLogFilters
- (int)setLogFilters:(ARtmLogFilter)filter;
设置日志输出等级
ARtcEngineKit会针对不同的使用场景采用不同的优化策略,如通信场景偏好流畅,直播场景偏好画质。
参数 | 描述 |
---|---|
filter | 日志输出等级,详见ARtmLogFilter。 |
返回值
0方法调用成功,<0方法调用失败。
getSDKVersion
+ (NSString *_Nonnull)getSDKVersion;
查询 SDK 版本号
返回值
当前的RTM SDK 版本号,格式为字符串,如 1.0.0