WhiteSdkConfiguration.h 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. //
  2. // WhiteSdkConfiguration.h
  3. // WhiteSDK
  4. //
  5. // Created by leavesster on 2018/8/15.
  6. //
  7. #import "WhiteObject.h"
  8. #import <UIKit/UIKit.h>
  9. #import "WhiteConsts.h"
  10. typedef NS_ENUM(NSInteger, WhiteDeviceType) {
  11. WhiteDeviceTypeTouch,
  12. WhiteDeviceTypeDesktop,
  13. };
  14. NS_ASSUME_NONNULL_BEGIN
  15. typedef NSString * WhiteSdkRenderEngineKey NS_STRING_ENUM;
  16. FOUNDATION_EXPORT WhiteSdkRenderEngineKey const WhiteSdkRenderEngineSvg;
  17. FOUNDATION_EXPORT WhiteSdkRenderEngineKey const WhiteSdkRenderEngineCanvas;
  18. /** 日志类型 */
  19. typedef NSString * WhiteSDKLoggerOptionLevelKey NS_STRING_ENUM;
  20. /** Debug 为最详细的日志,目前内容与 Info 一致 */
  21. FOUNDATION_EXPORT WhiteSDKLoggerOptionLevelKey const WhiteSDKLoggerOptionLevelDebug;
  22. /** info 主要为连接日志 */
  23. FOUNDATION_EXPORT WhiteSDKLoggerOptionLevelKey const WhiteSDKLoggerOptionLevelInfo;
  24. /** warn 主要为对开发者传入的部分不符合 sdk 参数时,进行自动调整的警告(API 弃用警告不会在上报) */
  25. FOUNDATION_EXPORT WhiteSDKLoggerOptionLevelKey const WhiteSDKLoggerOptionLevelWarn;
  26. /** error 报错,直接导致 sdk 无法正常运行的信息 */
  27. FOUNDATION_EXPORT WhiteSDKLoggerOptionLevelKey const WhiteSDKLoggerOptionLevelError;
  28. /** 是否上报日志 */
  29. typedef NSString * WhiteSDKLoggerReportModeKey NS_STRING_ENUM;
  30. /** 总是上报日志 */
  31. FOUNDATION_EXPORT WhiteSDKLoggerReportModeKey const WhiteSDKLoggerReportAlways;
  32. /** 不上报日志 */
  33. FOUNDATION_EXPORT WhiteSDKLoggerReportModeKey const WhiteSDKLoggerReportBan;
  34. /** 设置动态 PPT 参数。 */
  35. @interface WhitePptParams : WhiteObject
  36. /**
  37. 更改动态 ppt 请求时的请求协议,可以将 https://www.exmaple.com/1.pptx 更改成 scheme://www.example.com/1.pptx
  38. 该属性配合 iOS 11 WebKit 中 `WKWebViewConfiguration` 类的 `setURLSchemeHandler:forURLScheme:` 方法,可以对 PPT 的资源进行拦截,选择使用本地资源。
  39. */
  40. @property (nonatomic, copy, nullable) NSString *scheme API_AVAILABLE(ios(11.0));
  41. /**
  42. 动态 PPT 服务端排版功能的开启状态。
  43. @since 2.12.25
  44. - `YES`:开启(默认开启)。
  45. - `NO`:关闭。
  46. @note 2021-02-10 之后转换的动态 PPT 支持服务端排版功能,可以确保不同平台排版一致。
  47. */
  48. @property (nonatomic, assign) BOOL useServerWrap;
  49. @end
  50. /** 用于配置 `WhiteSdk` 对象。*/
  51. @interface WhiteSdkConfiguration : WhiteObject
  52. //+ (instancetype)defaultConfig;
  53. - (instancetype)init NS_UNAVAILABLE;
  54. /**
  55. 初始化 `WhiteSdkConfiguration` 对象。
  56. @param appIdentifier 白板项目的唯一标识。详见[获取白板项目的 App Identifier](https://docs.agora.io/cn/whiteboard/enable_whiteboard?platform=iOS#获取-app-identifier)。
  57. @return 初始化的 `WhiteSdkConfiguration` 对象。
  58. */
  59. - (instancetype)initWithApp:(NSString *)appIdentifier NS_DESIGNATED_INITIALIZER;
  60. /**
  61. 白板项目的唯一标识。
  62. @since 2.8.0
  63. */
  64. @property (nonatomic, copy) NSString *appIdentifier;
  65. /**
  66. 是否监听图片加载失败事件。
  67. - `YES`:开启监听。
  68. - `NO`:(默认)关闭。
  69. @since 2.12.0
  70. */
  71. @property (nonatomic, assign) BOOL enableImgErrorCallback;
  72. /**
  73. 是否启用 iframe 插件。
  74. - `YES`:开启。
  75. - `NO`:未启用。
  76. 2.10.0 默认打开,后续版本默认关闭。
  77. */
  78. @property (nonatomic, assign) BOOL enableIFramePlugin;
  79. @property (nonatomic, assign) WhiteDeviceType deviceType;
  80. /**
  81. 待回放的互动白板房间所在的数据中心。
  82. 数据中心包括:
  83. - `"cn-hz"`:中国大陆
  84. - `"us-sv"`:美国
  85. - `"in-mum"`:印度
  86. - `"sg"`:新加坡
  87. - `"gb-lon"`:英国
  88. @since 2.11.0
  89. */
  90. @property (nonatomic, strong, nullable) WhiteRegionKey region;
  91. /**
  92. 画笔教具的渲染引擎模式。详见 [WhiteSdkRenderEngineKey](WhiteSdkRenderEngineKey)。
  93. @since 2.8.0
  94. 2.8.0 版本新增 `canvas` 渲染引擎。从 2.9.0 版本开始,默认值为 `WhiteSdkRenderEngineCanvas`。
  95. */
  96. @property (nonatomic, copy) WhiteSdkRenderEngineKey renderEngine;
  97. /**
  98. 是否显示用户头像。
  99. - `YES`:显示。
  100. - `NO`:(默认)不显示。
  101. */
  102. @property (nonatomic, assign) BOOL userCursor;
  103. /** 自定义字体名称和地址。 */
  104. @property (nonatomic, copy, nullable) NSDictionary *fonts;
  105. /**
  106. 一次性加载动态 PPT 中的所有图片资源开启状态。
  107. 2.12.20 以后,预加载功能通过重构,不在有性能和兼容问题,每次只预加载后一页内容。
  108. - `YES`:开启。
  109. - `NO`: (默认)未开启。
  110. */
  111. @property (nonatomic, assign) BOOL preloadDynamicPPT;
  112. /**
  113. 是否开启图片拦截和替换功能。
  114. - `YES`:开启。
  115. - `NO`:关闭。
  116. */
  117. @property (nonatomic, assign) BOOL enableInterrupterAPI;
  118. /** 是否开启调试日志回调。
  119. - `YES`:开启。
  120. - `NO`:(默认)关闭。
  121. */
  122. @property (nonatomic, assign) BOOL log;
  123. /**
  124. 日志等级。
  125. 日志级别顺序依次为 `error`、`warn`、`info`、和 `debug`。
  126. 例如,选择 `info` 级别,就可以看到在 `error`、`warn`、`info` 级别上的所有日志信息。
  127. 字段:值
  128. 上报 debug 日志的模式,默认为`上报`。
  129. @"reportDebugLogMode": WhiteSDKLoggerReportModeKey
  130. 上报质量数据的模式,默认为`上报`。
  131. @"reportQualityMode": WhiteSDKLoggerReportModeKey
  132. 上报 debug 日志的等级过滤,默认为 `info`。
  133. @"reportLevelMask": WhiteSDKLoggerOptionLevelKey;
  134. 在 webView console 打印 debug 日志的等级过滤,默认为 `info`。
  135. @"printLevelMask": WhiteSDKLoggerOptionLevelKey;
  136. */
  137. @property (nonatomic, copy) NSDictionary *loggerOptions;
  138. @property (nonatomic, assign) BOOL routeBackup __deprecated_msg("this api has no effect");
  139. /** 动态 ppt 参数。详见 [WhitePptParams](WhitePptParams)。 */
  140. @property (nonatomic, strong) WhitePptParams *pptParams;
  141. @property (nonatomic, assign) BOOL disableDeviceInputs;
  142. /** 独立的 SyncedStore 状态,与 globalState 类似,但是没有任何 SDK 内部的状态 */
  143. @property (nonatomic, assign) BOOL enableSyncedStore;
  144. /** 是否开启多窗口,默认为 false,开启后,各种 API 会进行更改。*/
  145. @property (nonatomic, assign) BOOL useMultiViews;
  146. @end
  147. @implementation WhiteSdkConfiguration (Deleted)
  148. /**
  149. 在加入实时房间/回放房间时,将构造的 cameraBound 参数传入初始化方法中。
  150. 具体见 WhiteDisplayer.h 中 setCameraBound API。
  151. */
  152. //@property (nonatomic, assign) CGFloat zoomMinScale;
  153. //@property (nonatomic, assign) CGFloat zoomMaxScale;
  154. /**
  155. 服务端连接情况配置项,可以提前使用 WhiteOriginPrefetcher 进行检测服务器连接情况,在初始化 SDK 时,直接传入。
  156. 2.8.0 开始,sdk 算法优化,自动在请求时,选择最佳链路。该配置不再起作用。
  157. */
  158. //@property (nonatomic, nullable, copy) NSDictionary *sdkStrategyConfig;
  159. @end
  160. NS_ASSUME_NONNULL_END