ARtmKit

最近更新时间:2022-09-20 05:17:40

概览

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。
delegateARtmDelegate 向 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"。
以下为支持的字符集范围:
  • 26个小写英文字母 a-z
  • 26个大写英文字母 A-Z
  • 10个数字 0-9
  • 空格 和 “!”, “#”, “$”, “%”, “&”, “(”, “)”, “+”, “-”, “:”, “;”, “<”, “=”, “.”, “>”, “?”, “@”, “[”, “]”, “^”, “_”, “ {”, “}”, “
  • completionBlockARtmLoginBlock回调返回登录结果。错误码详见 ARtmLoginErrorCode

    返回值

    0方法调用成功,<0方法调用失败。

    注意事项:

    • 异地登录后之前的状态(目前主要是加入的频道)不会保留。
    • 该方法的调用频率为 2 次/秒。
    • 只有在调用本方法成功加入频道后(即收到 ARtmLoginErrorOk 错误码时)才可以调用 RTM 的核心业务逻辑。以下方法除外

    App 调用此方法后,本地用户收到 connectionStateChanged 回调,连接状态变为 ARtmConnectionStateConnecting 。

    logoutWithCompletion

    - (void)logoutWithCompletion:(ARtmLogoutBlock _Nullable )completionBlock;
    

    登出 ar云平台 RTM 系统

    参数

    参数描述
    completionBlockARtmLogoutBlock 回调返回登出结果。错误码详见 ARtmLogoutErrorCode

    renewToken

    - (void)renewToken:(NSString * _Nonnull)token completion:(ARtmRenewTokenBlock _Nullable)completionBlock;
    

    更新当前的 RTM Token

    在收到 rtmKitTokenPrivilegeWillExpire 回调时你需要调用此方法更新 Token。 ARtmRenewTokenBlock 回调会返回 Token 更新的结果。该方法的调用频率为 2 次/秒。

    参数描述
    token新的 RTM Token。
    completionBlockARtmRenewTokenBlock 回调返回更新当前 Token 的结果。

    sendMessage

    - (void)sendMessage:(ARtmMessage * _Nonnull)message toPeer:(NSString * _Nonnull)peerId sendMessageOptions:(ARtmSendMessageOptions * _Nonnull)options completion:(ARtmSendPeerMessageBlock _Nullable)completionBlock;
    

    向指定用户发送点对点消息或点对点的离线消息

    该方法允许你向离线用户发送点对点消息。如果指定用户在你发送离线消息时不在线,消息服务器会保存该条消息。请注意,目前我们只为每个接收端保存 200 条离线消息最长七天。当保存的离线消息超出限制时,最老的信息将会被最新的消息替换。

    参数描述
    message消息内容。如何创建消息详见 ARtmMessage
    peerIdpeerId 消息接收者的用户 ID。peerId 必须为不超过 64 字节的字符串。
    以下为支持的字符集范围:
  • 26个小写英文字母 a-z
  • 26个大写英文字母 A-Z
  • 10个数字 0-9
  • 空格
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "
  • options消息发送选项。详见 ARtmSendMessageOptions
    completionBlockARtmSendPeerMessageBlock 回调返回发送点对点消息的结果。错误码详见 ARtmSendPeerMessageErrorCode

    注意事项:

    消息(频道消息和点对点消息一并计算在内)的最高发送频率为 60 次/秒。

    createChannelWithId

    - (ARtmChannel * _Nullable)createChannelWithId:(NSString * _Nonnull)channelId delegate:(id <ARtmChannelDelegate> _Nullable)delegate;
    

    创建一个 ar云平台 RTM 频道

    参数描述
    channelId标识 ar云平台 RTM 通话的频道名称。channelId 必须为不超过 64 字节的字符串,不能为空、nil,或设为 “null"。
    以下为支持的字符集范围:
  • 26个小写英文字母 a-z
  • 26个大写英文字母 A-Z
  • 10个数字 0-9
  • 空格
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "
  • delegateARtmChannelDelegate 接口类向 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 回调返回发送点对点消息的结果,
  • peerOnlineStatus: 用户在线状态列表。单元结构详见 ARtmPeerOnlineStatus
  • errorCode: 错误码。详见 ARtmQueryPeersOnlineErrorCode
  • setLocalUserAttributes

    - (void)setLocalUserAttributes:(NSArray< ARtmAttribute *> * _Nullable) attributes completion:(ARtmSetLocalUserAttributesBlock _Nullable)completionBlock;
    

    全量设置本地用户的属性

    setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。

    参数描述
    attributes待设置的属性。详见 ARtmAttribute
    completionBlock通过ARtmSetLocalUserAttributesBlock 回调返回方法调用的结果。

    addOrUpdateLocalUserAttributes

    - (void)addOrUpdateLocalUserAttributes:(NSArray< ARtmAttribute *> * _Nullable) attributes completion:(ARtmAddOrUpdateLocalUserAttributesBlock _Nullable)completionBlock;
    

    添加或更新本地用户的属性

    setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。

    参数描述
    attributes待增加或更新的属性。详见 ARtmAttribute
    completionBlock通过 ARtmAddOrUpdateLocalUserAttributesBlock 回调返回方法调用的结果。

    deleteLocalUserAttributesByKeys

    - (void)deleteLocalUserAttributesByKeys:(NSArray< NSString *> * _Nullable) attributeKeys completion:(ARtmDeleteLocalUserAttributesBlock _Nullable)completionBlock;
    

    删除本地用户的指定属性。

    setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。

    参数描述
    attributeKeys属性名数组。
    completionBlock通过ARtmDeleteLocalUserAttributesBlock 回调返回方法调用的结果。

    clearLocalUserAttributesWithCompletion

    - (void)clearLocalUserAttributesWithCompletion:(ARtmClearLocalUserAttributesBlock _Nullable)completionBlock;
    

    清空本地用户的属性

    setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributesWithCompletion 一并计算在内:调用频率限制为每 5 秒 10 次。

    参数描述
    completionBlock通过 ARtmClearLocalUserAttributesBlock 回调返回方法调用的结果。

    getUserAllAttributes

    - (void)getUserAllAttributes:(NSString * _Nonnull )uid completion:(ARtmGetUserAttributesBlock _Nullable)completionBlock;
    

    获取指定用户的全部属性

    getUserAllAttributesgetUserAttributesByKeys 一并计算在内:调用频率限制为每 5 秒 40 次。

    参数描述
    uid指定用户的用户 ID。
    completionBlock通过 ARtmGetUserAttributesBlock 回调返回方法调用的结果。

    getUserAttributesByKeys

    - (void)getUserAttributes:(NSString * _Nonnull )uid ByKeys:(NSArray< NSString *> * _Nullable)attributeKeys completion:(ARtmGetUserAttributesBlock _Nullable)completionBlock;
    

    获取指定用户指定属性名的属性

    getUserAllAttributesgetUserAttributesByKeys 一并计算在内:调用频率限制为每 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;
    

    全量设置某指定频道的属性

    参数描述
    channelId该指定频道的频道 ID。
    attributes频道属性数组。详见 ARtmChannelAttribute
    options频道属性操作选项。详见 ARtmChannelAttributeOptions
    completionBlockARtmSetLocalUserAttributesBlock 回调返回方法调用的结果。

    addOrUpdateChannelAttributes

    - (void)addOrUpdateChannel:(NSString* _Nonnull)channelId Attributes:(NSArray< ARtmChannelAttribute *> * _Nullable)attributes Options:(ARtmChannelAttributeOptions* _Nonnull)options completion:(ARtmAddOrUpdateChannelAttributesBlock _Nullable)completionBlock;
    

    添加或更新某指定频道的属性

    如果属性已存在,该方法更新该频道的已有属性; 如果属性不存在,该方法增加该频道的属性。

    参数描述
    channelId该指定频道的频道 ID。
    attributes频道属性数组。详见 ARtmChannelAttribute
    options频道属性操作选项。详见 ARtmChannelAttributeOptions
    completionBlockARtmAddOrUpdateLocalUserAttributesBlock 回调返回方法调用的结果。

    deleteChannelAttributesByKeys

    - (void)deleteChannel:(NSString* _Nonnull)channelId AttributesByKeys:(NSArray< NSString *> * _Nullable)attributeKeys
    Options:(ARtmChannelAttributeOptions* _Nonnull)options completion:(ARtmDeleteChannelAttributesBlock _Nullable)completionBlock;
    

    删除某指定频道的指定属性

    参数描述
    channelId该指定频道的频道 ID。
    attributeKeys频道属性名数组。
    options频道属性操作选项。详见 ARtmChannelAttributeOptions
    completionBlockARtmDeleteLocalUserAttributesBlock 回调返回方法调用的结果。

    clearChannel

    - (void)clearChannel:(NSString* _Nonnull)channelId Options:(ARtmChannelAttributeOptions* _Nonnull)options AttributesWithCompletion:(ARtmClearChannelAttributesBlock _Nullable)completionBlock;
    

    清空某指定频道的属性

    参数描述
    channelId该指定频道的频道 ID。
    options频道属性操作选项。详见 ARtmChannelAttributeOptions
    completionBlockARtmClearLocalUserAttributesBlock 回调返回方法调用的结果。

    getChannelAllAttributes

    - (void)getChannelAllAttributes:(NSString* _Nonnull)channelId completion:(ARtmGetChannelAttributesBlock _Nullable)completionBlock;
    

    查询某指定频道的全部属性

    参数描述
    channelId该指定频道的频道 ID。
    completionBlockARtmGetUserAttributesBlock 回调返回方法调用的结果。

    getChannelAttributes

    - (void)getChannelAttributes:(NSString* _Nonnull)channelId ByKeys:(NSArray< NSString *> * _Nullable) attributeKeys completion:(ARtmGetChannelAttributesBlock _Nullable)completionBlock;
    

    查询某指定频道指定属性名的属性

    参数描述
    channelId该指定频道的频道 ID。
    attributeKeys频道属性名数组。
    completionBlockARtmGetUserAttributesBlock 回调返回方法调用的结果。

    subscribePeersOnlineStatus

    - (void)subscribePeersOnlineStatus: (NSArray<NSString*> * _Nonnull) peerIds completion:(ARtmSubscriptionRequestBlock _Nullable)completionBlock;
    

    订阅指定单个或多个用户的在线状态

    • 首次订阅成功后,SDK 会通过 PeersOnlineStatusChanged 回调返回被订阅用户在线状态。
    • 每当被订阅用户在线状态发生变化时,SDK 都会通过 PeersOnlineStatusChanged 回调通知订阅方。
    • 如果 SDK 在断线重连过程中有被订阅用户的在线状态发生改变,SDK 会在重连成功时通过 PeersOnlineStatusChanged 回调通知订阅方。
    参数描述
    peerIds待订阅用户的用户 ID 阵列。
    completionBlockARtmSubscriptionRequestBlock 回调返回方法调用的结果。

    注意事项:

    • 用户登出 A RTM 系统后,所有之前的订阅内容都会被清空;重新登录后,如需保留之前订阅内容则需重新订阅。
    • SDK 会在网络连接中断时进入断线重连状态。重连成功时 SDK 会自动重新订阅之前订阅用户,无需人为干预。

    unsubscribePeersOnlineStatus

    - (void)unsubscribePeersOnlineStatus: (NSArray<NSString*> * _Nonnull) peerIds completion:(ARtmSubscriptionRequestBlock _Nullable)completionBlock;
    

    退订指定单个或多个用户的在线状态

    参数描述
    peerIds待退订用户的用户 ID 阵列。
    completionBlockARtmSubscriptionRequestBlock 回调返回方法调用的结果。

    queryPeersBySubscriptionOption

    - (void)queryPeersBySubscriptionOption: (ARtmPeerSubscriptionOptions) option completion:(ARtmQueryPeersBySubscriptionOptionBlock _Nullable)completionBlock;
    

    获取某特定内容被订阅的用户列表

    参数描述
    option被订阅的状态类型。详见 ARtmPeerSubscriptionOptions
    completionBlockARtmQueryPeersBySubscriptionOptionBlock 回调返回方法调用的结果。

    setParameters

    - (int)setParameters:(NSString * _Nonnull)parameters;
    

    通过 JSON 配置 SDK 提供技术预览或特别定制功能

    参数描述
    parametersJSON 格式的 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