WhiteRoomConfig.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. //
  2. // WhiteRoomConfig.h
  3. // WhiteSDK
  4. //
  5. // Created by yleaf on 2019/3/30.
  6. //
  7. #import "WhiteObject.h"
  8. #import "WhiteMemberInformation.h"
  9. #import "WhiteCameraBound.h"
  10. #import "WhiteConsts.h"
  11. #import "WhiteWindowParams.h"
  12. NS_ASSUME_NONNULL_BEGIN
  13. /**
  14. 配置实时房间的参数。
  15. **Note:** `WhiteRoomConfig` 类中所有的方法都必须在加入房间前调用;成功加入房间后,调用该类中的任何方法都不会生效。
  16. */
  17. @interface WhiteRoomConfig : WhiteObject
  18. /**
  19. 设置房间 UUID 和用户信息并初始化 `WhiteRoomConfig` 对象。
  20. @param uuid 房间 UUID,即房间唯一标识符。
  21. @param roomToken 用于鉴权的 Room Token。生成该 Room Token 的房间 UUID 必须和上面传入的房间 UUID 一致。
  22. @param uid 用户标识,可以为任意 string。
  23. @return 初始化的 `WhiteRoomConfig` 对象。
  24. */
  25. - (instancetype)initWithUUID:(NSString *)uuid roomToken:(NSString *)roomToken uid:(NSString *)uid;
  26. /**
  27. 设置房间 UUID 和用户信息并初始化 `WhiteRoomConfig` 对象。
  28. @param uuid 房间 UUID,即房间唯一标识符。
  29. @param roomToken 用于鉴权的 Room Token。生成该 Room Token 的房间 UUID 必须和上面传入的房间 UUID 一致。
  30. @param uid 用户标识,可以为任意 string,字符串长度不能超过 1024,2.15.0 后必须填写。
  31. @param userPayload 自定义用户信息内容,必须为字典或者 WhiteObject 子类。
  32. @return 初始化的 `WhiteRoomConfig` 对象。
  33. */
  34. - (instancetype)initWithUUID:(NSString *)uuid roomToken:(NSString *)roomToken uid:(NSString *)uid userPayload:(id _Nullable)userPayload NS_DESIGNATED_INITIALIZER;
  35. /** 房间 UUID,即房间唯一标识符。 */
  36. @property (nonatomic, copy, readonly) NSString *uuid;
  37. /** 用于鉴权的 Room Token。 */
  38. @property (nonatomic, copy, readonly) NSString *roomToken;
  39. /** 用户标识记录,*/
  40. @property (nonatomic, copy, readonly) NSString *uid;
  41. /**
  42. 待回放的互动白板房间所在的数据中心。
  43. 数据中心包括:
  44. - `"cn-hz"`:中国大陆
  45. - `"us-sv"`:美国
  46. - `"in-mum"`:印度
  47. - `"sg"`:新加坡
  48. - `"gb-lon"`:英国
  49. @since 2.11.0
  50. */
  51. @property (nonatomic, strong, nullable) WhiteRegionKey region;
  52. /**
  53. 禁止/允许工具响应用户输入。
  54. - `YES`:禁止工具响应用户输入。
  55. - `NO`:(默认)允许工具响应用户输入。
  56. */
  57. @property (nonatomic, assign) BOOL disableDeviceInputs;
  58. /**
  59. 禁止/允许本地用户操作白板的视角,包括缩放和移动视角。
  60. - `YES`:禁止本地用户操作白板视角。
  61. - `NO`:(默认)允许本地用户操作白板视角。
  62. */
  63. @property (nonatomic, assign) BOOL disableCameraTransform;
  64. /**
  65. 是否关闭贝塞尔曲线优化。
  66. - `YES`:关闭贝塞尔曲线优化。
  67. - `NO`:(默认)开启贝塞尔曲线优化。
  68. */
  69. @property (nonatomic, assign) BOOL disableBezier;
  70. /**
  71. @deprecated 该方法已废弃。请使用 [disableDeviceInputs](disableDeviceInputs:) 和 [disableCameraTransform](disableCameraTransform:)。
  72. 允许/禁止白板响应用户任何操作。
  73. 禁止白板响应用户任何操作后,用户无法使用工具输入内容,也无法对白板进行视角缩放和视角移动。
  74. */
  75. @property (nonatomic, assign) BOOL disableOperations __attribute__((deprecated("please use disableDeviceInputs and disableCameraTransform")));
  76. /**
  77. 是否关闭橡皮擦擦除图片功能。
  78. - `YES`:橡皮擦不可以擦除图片。
  79. - `NO`:(默认)橡皮擦可以擦除图片。
  80. */
  81. @property (nonatomic, assign) BOOL disableEraseImage;
  82. /**
  83. 是否关闭 ``insertText`` 与 ``updateText`` 操作权限
  84. - `YES`:不允许``insertText`` 与 ``updateText``。
  85. - `NO`:允许``insertText`` 与 ``updateText``。
  86. */
  87. @property (nonatomic, assign) BOOL disableTextOperations;
  88. /**
  89. 本地用户的视角边界。详见 [WhiteCameraBound](WhiteCameraBound)。
  90. */
  91. @property (nonatomic, strong, nullable) WhiteCameraBound *cameraBound;
  92. /**
  93. 自定义的用户信息,可以为 JSON、NSString、NSNumber 格式,推荐格式为 NSDictionary。
  94. **Note:**
  95. - 必须使用 [WhiteRoomConfig](WhiteRoomConfig) 子类,以保证字段结构正确。
  96. - 自定义的用户信息会被完整透传。
  97. 如果要在白板房间中显示用户头像,请在 `userPayload` 中传入 `avatar` 字段并添加用户头像的地址,例如 `"avatar", "https://example.com/user.png")`。
  98. - 从 [WhiteMemberInformation](WhiteMemberInformation) 迁移,只需要在 `userPayload` 中,传入相同字段即可。
  99. */
  100. @property (nonatomic, copy, nullable) id userPayload;
  101. /**
  102. 已废弃,请使用 `userPayload`。
  103. 自定义的用户信息。
  104. */
  105. @property (nonatomic, copy, nullable) WhiteMemberInformation *memberInfo __attribute__((deprecated("memberInfo is deprecated, please use userPayload")));
  106. /**
  107. 用户是否以互动模式加入白板房间。
  108. 在加入房间后,也可以通过 [setWritable](setWritable:completionHandler:) 方法切换读写模式。
  109. - `YES`:以互动模式加入白板房间,即具有读写权限。
  110. - `NO`:以订阅模式加入白板房间,即具有只读权限。不能操作工具、修改房间状态,当前用户也不会出现在 `roomMembers` 列表中。
  111. */
  112. @property (nonatomic, assign) BOOL isWritable;
  113. /**
  114. 关闭/开启笔锋效果。
  115. @since 2.12.2
  116. **Note:**
  117. - 在 2.12.2 版本中,默认值为 `NO`,自 2.12.3 版本起,默认值改为 `YES`。
  118. - 为正常显示笔迹,在开启笔峰效果前,请确保该房间内的所有用户使用如下 SDK:
  119. - Android SDK 2.12.3 版或之后
  120. - iOS SDK 2.12.3 版或之后
  121. - Web SDK 2.12.5 版或之后
  122. - `YES`: (默认)关闭笔锋效果。
  123. - `NO`: 开启笔锋效果。
  124. */
  125. @property (nonatomic, assign) BOOL disableNewPencil;
  126. /**
  127. 加入房间的超时时间。单位为毫秒。
  128. SDK 超时后会主动断连,并触发 [firePhaseChanged](firePhaseChanged:) 回调。同时触发 [fireDisconnectWithError](fireDisconnectWithError:) 回调并返回”重连时长超出 xx 毫秒”的提示。
  129. */
  130. @property (nonatomic, strong) NSNumber *timeout;
  131. ///** 是否开启多窗口,默认为 false,开启后,各种 API 会进行更改。正式版该 API 已经迁移到 WhiteSDKConfiguration 中 */
  132. //@property (nonatomic, assign) BOOL useMultiViews;
  133. /** 多窗口用的本地参数,只影响本地客户 */
  134. @property (nonatomic, strong, nullable) WhiteWindowParams *windowParams;
  135. @end
  136. NS_ASSUME_NONNULL_END