WhiteWebSdkConfiguration
Whiteboard Web SDK 2.16.59 公开 type。
JavaScript
export declare type WhiteWebSdkConfiguration = {
/**
* 从管理控制台获取的参数,用于让 Netless 识别该客户端属于哪个账号的哪个项目,以便处理好权限和计费相关事宜
* 你可以阅读[《AppIdentifier|项目与权限》](/home/project-and-authority#appidentifier)来了了解如何获取 appIdentifier
*/
appIdentifier: string;
/**
* 连接的数据中心
*/
region?: string;
/**
* 设置成 ``true`` 后,``displayer.state`` 会变成一个 MobX observable object,其成员变量只读,相当于都被修饰了 ``@observable``。
* 这意味着,当它的成员发生变化时,你可以用 MobX 的方式监听它的变化并自动响应。
*/
useMobXState?: boolean;
/**
* 该客户端的设备类型,决定 SDK 如何处理鼠标事件和触碰事件。如果填写错误,会导致 SDK 对设备输入响应行为不符合预期。如果不填,则会根据内在逻辑自动判断设备的类型。
*/
deviceType?: DeviceType;
/**
* 该客户端的屏幕类型,用于调整手势识别参数,默认为 ``ScreenType.Desktop``。
*/
screenType?: ScreenType;
/**
* 对画面的渲染模式,默认值为 ``RenderEngine.Canvas``
*/
renderEngine?: RenderEngine;
/**
* 为 PPT 提供自定义字体文件。
* 如果你使用了 PPT 转网页服务,并且 PPT 中使用了非默认字体,并将转化后的文件在房间里展示。
* 你必须正确配置这个字段,才能让 PPT 正确展示。
*/
fonts?: UserFonts;
/**
* 抓手工具热键。按下该键时,会自动切换成**抓手工具**(``currentApplianceName="hand"``),松开后,切回原来的工具。如果不传,则关闭该功能。
*/
handToolKey?: string;
/**
* 设置文字工具(``currentApplianceName="text"``)的字体。若不传,文字工具则展示浏览器默认字体
*/
fontFamily?: string;
/**
* 是否一次性加载 PPT 转网页的所有资源,默认是 ``false``。启用后,会在第一页时,就加载所有页面内容,会造成一定性能问题,已不推荐使用。
*/
preloadDynamicPPT?: boolean;
/**
* SDK 如何处理日志上报,默认是开启自动上报。更多关于日志的信息,可以参考[《线上日志》](/document-zh/home/oneline-log)
*/
loggerOptions?: LoggerOptions;
/**
* 是否禁止新铅笔补间动画,默认是 ``true``。
* 房间其他人使用新铅笔绘制绘制笔迹曲线时,补间动画会向其中插入更多计算而来的帧,让动画更加流畅。
* 相应的,这会人为加大动画的延时。
* 关闭该功能,可以让延时缩短,但相应的,笔迹动画也会有卡顿。
*/
disableCurveAnimes?: boolean;
/**
* 是否禁止新铅笔工具展示笔锋,默认是 ``false``。
*/
disableNewPencilStroke?: boolean;
/**
* 是否禁止旋转功能,默认是 ``false``。
*/
disableRotation?: boolean;
/**
* 断线重连设置,如果传入 ``false`` 或 ``{disableReconnect: true}`` 则可以关闭断线重连。
* 默认开启自动断线重连。
* 你可以参考[《实时房间状态管理》](/document-zh/home/room-state-management)了解更多关于断线重连相关的状态变化。
*/
reconnectionOptions?: Partial<ReconnectionOptions> | false;
/**
* 默认为``true``。开启该功能后,若是主动调用``room`` 对象的方法来修改``room.state`` 的值,导致值变化,是不会调用回调方法通知说``room.state`` 发生改变了的。
*
* 关闭该功能后,只要``room.state`` 发生改变,就会回调。
*
* 如何判断是主动修改``room.state``?
* 如果调用这些方法:``room.setGlobalState``、``room.setMemberState``、``room.setViewMode``、``room.setScenePath``、``room.setSceneIndex``、``room.moveCamera``、``room.moveCameraToContain``、``room.putScenes``、``room.removeScenes``、``room.moveScene``。
* 那么通过调用这些方法所修改的字段本身的变化,都是为 ** 主动修改 ** 导致的变化。
*/
onlyCallbackRemoteStateModify?: boolean;
/**
* 插件列表。
*/
plugins?: Plugins;
/**
* 不可见插件列表。
*/
invisiblePlugins?: ReadonlyArray<InvisiblePluginClass<string, any, any>>;
/**
* 默认值为 ``[]``。这是一个装满 ``React.ComponentType`` 类型的数组,用于包装白板的 view。你可以用它对白板的 view 进行自定义包装。例如使用如下代码。
*
* @example
* ```tsx
* import React from "react";
*
* class WrappedCompnent extends React.Component {
*
* render() {
* return (
* <div>
* <span>hello world</span>
* {this.props.children}
* </div>
* );
* }
* }
*
* const whiteWebSdk = new WhiteWebSdk({
* appIdentifier: "$APP_IDENTIFIER",
* wrappedComponents: [WrappedCompnent],
* });
* ```
*/
wrappedComponents?: WrappedComponents;
/**
* > 2.11.12 新增 useServerWrap 功能
*
* 动态 ppt 专用参数。
* 目前字段 ``useServerWrap``默认开启(2.12.18 默认开启),后续版本会变更为打开状态。开启后,
* 会使用服务器端排版结果,避免各平台显示效果不一致。
* 该功能要求 ppt 在 2021-02-10 进行转换,之前转换的 ppt 没有服务器端排版结果。
*/
pptParams?: PptParams;
/**
* 将白板中的图片等资源的 URL 拦截并替换。例如,如下代码可以自动给所有图片 URL 加一个尾缀。
*
* @example
* ```typescript
* const whiteWebSdk = new WhiteWebSdk({
* appIdentifier: "$APP_IDENTIFIER",
* urlInterrupter: function(url) {
* return url + "?token=bm1n4pisugWrWK";
* },
* });
* ```
*/
urlInterrupter?: (url: string)=>string;
/**
* 用于处理 ``WhiteWebSdk`` 初始化失败的回调。
*
* @example
* ```typescript
* const whiteWebSdk = new WhiteWebSdk({
* appIdentifier: "$APP_IDENTIFIER",
* onWhiteSetupFailed: function(error) {
* console.error(error);
* },
* });
* ```
* 如果是因为参数原因构造失败,会在调用 ``new WhiteWebSdk({...})`` 时抛出错误。该回调仅用来处理涉及网络或鉴权失败时的错误处理。
*/
onWhiteSetupFailed?: (error: Error)=>void;
/**
* 配置白板的 API 服务器域名列表,可以用于服务器代理。配置后,白板不再使用 sdk 自带配置。
* @example
* [api.example.com]
*/
apiHosts?: string[];
};
Properties
dynamicConfig
dynamicConfig?: DynamicConfigOptions;
配置 region → 当前平台 JSON 地址,或兼容单 URL。每次入房前加载;失败使用本地参数。