通过阅读本文,您可以了解到Web端互动白板SDK的集成及使用方法。
环境要求
浏览器类别 | 平台 | 版本要求 |
---|---|---|
QQ浏览器(基于Chromium内核) | Windows | Chromium 70或以上版本。 |
360安全浏览器(基于Chromium内核) | Windows | Chromium 70或以上版本。 |
Chrome | Windows、Mac | Chrome 70或以上版本。 |
Safari | Mac | Safari 13或以上版本。 |
New Microsoft Edge(基于Chromium内核) | Windows | Chromium 88或以上版本。 |
搜狗高速浏览器 | Windows | 11或以上版本。 |
操作步骤
API
- 内容操作接口
API 使用示例 描述 preScene aliyunBoard.preScene() 向前翻页。 nextScene aliyunBoard.nextScene() 向后翻页。 getScenesCount aliyunBoard.getScenesCount() 获取当前的总页数,返回类型为number。 gotoScene aliyunBoard.gotoScene(pageNum: number) 跳转至指定页面。 getCurrentSceneIndex aliyunBoard.getCurrentSceneIndex() 获取当前页index。 addScene aliyunBoard.addScene() 增加页面。 removeSceneById aliyunBoard.removeSceneById(id: string) 按ID删除页面。 removeSceneByIndex aliyunBoard.removeSceneByIndex(index: number) 按index删除页面。 setScale aliyunBoard.setScale(scale: number) 缩放画板。 getScale aliyunBoard.getScale() 获取当前画板缩放值。 undo aliyunBoard.undo() 撤销上一步操作。 redo aliyunBoard.redo() 重做上一步操作。 setToolType aliyunBoard.setToolType("pointer") 指针,支持选中图元,并拖动到指定位置。其中AliyunBoardToolType = "pointer"|"pen"|"circle"|"rect"|"laserPen"|"text"|"eraser"|"straight"|"triangle"|"bitEraser"|"roundRect"|"rightTriangle",其他绘画类接口请参见绘画接口。 setBackgroundColorByIndex aliyunBoard.setBackgroundColorByIndex(index: number, color: string) 按index设置画布某页的背景色。 setBackgroundColorById aliyunBoard.setBackgroundColorById(id: string, color: string) 按ID设置画布某页的背景色。 getCurrentScene aliyunBoard.getCurrentScene() 返回白板画布页Scene对象。 getScenes aliyunBoard.getScenes() 返回白板画布Scene对象列表。 setReadOnly aliyunBoard.setReadOnly(readOnly: boolean) 设置或取消当前画板只读属性。 getReadOnly aliyunBoard.getReadOnly() 获取画板的只读属性。 - 绘画接口
API 使用示例 描述 setToolType aliyunBoard.setToolType("pen") 涂鸦(画笔),可设置画笔粗细、颜色。 aliyunBoard.setToolType("eraser") 橡皮擦,支持按图元擦除。 aliyunBoard.setToolType("laserPen") 激光笔。 aliyunBoard.setToolType("text") 文本,可设置文本字体样式(加粗、斜体)、字号、颜色。 aliyunBoard.setToolType("straight") 直线绘制,绘制直线样式涂鸦,可设置粗细、颜色。 aliyunBoard.setToolType("rect") 矩形绘制,绘制矩形样式涂鸦,可设置粗细、颜色。 aliyunBoard.setToolType("circle") 椭圆绘制,绘制椭圆样式涂鸦,可设置粗细、颜色。 aliyunBoard.setToolType("triangle") 三角形绘制,绘制三角形样式涂鸦,可设置粗细、颜色。 aliyunBoard.setToolType("bitEraser") 像素橡皮擦。 aliyunBoard.setToolType("roundRect") 圆角矩形绘制,绘制圆角矩形样式涂鸦,可设置粗细、颜色。 aliyunBoard.setToolType("rightTriangle") 直角三角形绘制,绘制直角三角形样式涂鸦,可设置粗细、颜色。 setCurrentBrush aliyunBoard.setCurrentBrush(brush: IBrushItem) 设置当前工具属性,可设置线条颜色、粗细,文字字号、字体。 其中IBrushItem = { strokeWidth?: number; // 线条大小 stroke?: string; // 线条颜色 fontFamily?: string; // 字体 fontSize?: number; // 字号 }
getCurrentToolType aliyunBoard.getCurrentToolType() 获取当前工具类型。其中AliyunBoardToolType = "pointer"|"pen"|"circle"|"rect"|"laserPen"|"text"|"eraser"|"straight"|"triangle"|"bitEraser"|"roundRect"|"rightTriangle"。 clearBoard aliyunBoard.clearBoard() 清空当前页白板。 unSelectAll aliyunBoard.unSelectAll() 取消形状选中。 setEraserSize aliyunBoard.setEraserSize(size: number) 设置橡皮工具可擦除范围。 updateSelectedTextStyle aliyunBoard.updateSelectedTextStyle(textStyle: {[key: string]: any}) 设置选中文字的字号、斜体、加粗或下划线,详情如下所示: - 设置斜体:aliyunBoard.updateSelectedTextStyle({'fontStyle': 'italic'})
- 设置字号:aliyunBoard.updateSelectedTextStyle({'fontSize': 64})
- 设置加粗:aliyunBoard.updateSelectedTextStyle({'fontWeight': 'bord'})
- 设置下划线:aliyunBoard.updateSelectedTextStyle({'textDecoration': 'underline'})
- 其他接口
API 使用示例 描述 addImage aliyunBoard.addImage(shape:IShapeModel) 添加图片。如果x, y 不传,则默认插入画布页中间位置,如果图片预览时涉及权限,则需配合getPreviewUrl一起使用。 其中IShapeModel = { width: number, // 图片展示的宽 height: number, // 图片展示的高 x?: number, // 图片相对于画布的X轴位置 y?: number, // 图片相对于画布的Y轴位置 href: string // 图片地址或加签需要的ID }
addBackgroundImage aliyunBoard.addBackgroundImage(url: string) 添加背景图片(背景图不可删除和编辑)。 addAttachment aliyunBoard.addAttachment(attachment: IAttachment) 添加附件。目前可添加的附件类型有pdf、mp4、mp3,如果附件预览时涉及权限,则需配合getPreviewUrl一起使用。 其中IAttachment = { id?: string, // 附件的ID,不传则自动生成随机ID type: pdf | mp4| mp3, // 附件类型 title: string, // 附件标题 src: string // 附件地址或加签需要的ID }
saveToFile aliyunBoard.saveToFile(title: string, type?: string) 将白板保存为本地文件。 - title:保存的文件名。
- type:保存类型,默认为pdf。
说明 目前仅支持pdf。
getPreviewData aliyunBoard.getPreviewData(index?:number) 获取序号为index的白板页image对象,如果不传,则返回所有页的image对象列表。返回值:Image[] | Image。 说明 仅支持Web端,暂不支持Native端调用。setPinchable aliyunBoard.setPinchable(true:boolean) 设置是否开启移动端手势缩放。 getPinchable aliyunBoard.getPinchable(true:boolean) 返回是否开启了移动端手势缩放。 destroy aliyunBoard.destroy() 销毁协同实例,即断开白板和协同引擎的链接。 说明 正常情况不需要手动调用此方法。 - 事件监听接口
API 使用示例 描述 on aliyunBoard.on(eventType, (...args: any[]) => { console.log(args)}) 在aliyunBoard对象上注册事件监听。事件类型请参见eventType取值。 事件类型eventType取值如下所示:
事件类型 描述 ALIYUNBOARD_READY 白板初始化完成事件。 ALIYUNBOARD_ERROR_EVENT 白板内部报错事件。 ALIYUNBOARD_COLLABERROR_EVENT 协同引擎运行时报错事件。 ALIYUNBOARD_PINCH_START 双指缩放开始事件。 ALIYUNBOARD_PINCH 双指缩放事件。 ALIYUNBOARD_PINCH_END 双指缩放结束事件。 ALIYUNBOARD_EXECUTE 协同消息执行完成后的回调事件。回调参数为: { uid: string | number; nick: string; commandType: string; type: string; sceneId?: string; shapeId?: string; x?: number; y?: number; width?: number; height?: number; ready?: boolean; action: 'redo' | 'undo'; }
ALIYUNBOARD_PAGINATION_CHANGE 白板页改变后的回调事件(供应用方修改页码相关的UI),回调参数为: { type: 'add' | 'remove' | 'index'; // type表示操作类型,add为添加页面,remove为删除页面,index为改变当前页 index: number; // index表示相应操作的页面索引值 }
说明 该事件只在接收到远端页码变更后回调,本地修改页码时不会调用。