2026/10/27 17:43:29
小地图、Auto Shape 与过滤笔记
适用于 Appliance Plugin 1.1.45。先完成启用插件,plugin 为已初始化的插件实例。以下版本门槛指插件版本。
小地图(Version ≥1.1.6)
createMiniMap 不支持 simple 模式。在初始化插件时将 extras.useSimple 显式设为 false;默认值为 true。如果插件已按 simple 模式初始化,应先销毁并按新配置重新创建。
TypeScript
// Whiteboard:ApplianceMultiPlugin.getInstance(manager, { options: { extras: ... } })
const extras = { useSimple: false, useBackgroundThread: true };
TypeScript
await plugin.createMiniMap('mainView', minimapContainer);
// 组件卸载或窗口关闭时等待清理。
await plugin.destroyMiniMap('mainView');
容器应有明确宽高。主白板的 viewId 为 mainView;App View 使用添加 App 返回的 ID。destroyMiniMap 当前返回 Promise<void>。
Auto Shape:一笔绘制图形(Version ≥1.1.33)
TypeScript
import { ApplianceNames, EStrokeType } from '@netless/appliance-plugin';
plugin.setMemberState({
currentApplianceName: ApplianceNames.pencil,
strokeType: EStrokeType.Normal, autoShape: true
});
// 关闭时显式提交 false。
plugin.setMemberState({ autoShape: false });
保持 Pencil 教具,一笔完成并抬笔后尝试识别直线、箭头、矩形、椭圆/圆、三角形、菱形和五角星。识别失败保留普通笔迹;不会转换历史笔迹。
过滤笔记(Version ≥1.1.6)
TypeScript
plugin.filterRenderByUid('mainView', {
render: ['teacher-uid'], hide: ['student-uid']
}, false);
// 与设置时保持相同的 isSync 值。
plugin.cancelFilterRender('mainView', false);
render、hide 和 clear 的 UID 指笔迹所有者。各字段可为 UID 数组或 true;clear 配置哪些用户的笔迹可被清除,不能将它当作操作者身份授权。
| 配置 | 1.1.45 的行为 |
|---|---|
render: ['teacher-uid'] | 只显示列出的用户笔迹;此时 render 白名单优先,不再用 hide 排除白名单中的 UID |
render: true, hide: ['student-uid'] | 显示其余用户,隐藏列出的用户笔迹 |
render: true, hide: true | 隐藏全部用户笔迹 |
只设置 hide 而省略 render | 当前实现会隐藏全部笔迹;隐藏部分用户时同时设置 render=true |
clear: ['student-uid'] | 只允许清除列出的用户笔迹;省略 clear 或为 true 时不增加此过滤限制 |
isSync 默认 true,会同步给房间其他用户;只过滤本端时显式传 false。过滤用于呈现和操作配置,业务访问控制仍由服务端权限保证。