anyRTC 对该版本已经下架,如需白板请使用升级版白板。
- Github: https://github.com/anyRTC/ARBoard-Web
- 快速开始:https://docs.anyrtc.io/cn/WhiteBoard/run/whiteboard_demo/run_demo_whiteboard_web
- API 文档:https://docs.anyrtc.io/cn/WhiteBoard/api-ref/whiteboard_web/overview
公司网址: www.anyrtc.io
npm install
npm run serve
npm run build
npm run test
npm run lint
npm run test:e2e
跨平台轻量级的白板SDK,易用、实时。
本集成文档适用于Web ARWhiteboard SDK 3.0.0版本。
- 安装最新版本则:
npm install ar-whiteboard@latest --save-dev
import Board from 'ar-whiteboard';
import 'ar-whiteboard/lib/index.css';
let Board = new Board(DomId);
参数名 | 类型 | 描述 |
---|---|---|
DomId | string | Div容器的id 属性 |
创建画板,选择指定的容器。
Board.initEngineWithARInfo (appId, appToken);
参数名 | 类型 | 描述 |
---|---|---|
appId | String | 应用id |
appToken | String | 应用的appToken |
该方法为配置开发者信息。
Board.initWithRoomID(roomId, fileId, userId, backgroundList);
参数名 | 类型 | 描述 |
---|---|---|
roomId | String | 房间号ID |
fileId | String | 文件ID,唯一标识id |
userId | String | 用户id |
backgroundList | Array | 画板背景图URL(保证图片源允许跨域),第一次创建房间时设置背景生效,如果需要重新设置需要先销毁画板,否则取第一次设置的背景图片。 |
backgroundList
每个item为一个对象,记录画板每页的背景图片,如下:
参数名 | 类型 | 描述 |
---|---|---|
board_background | String | 背景图片地址 |
board_number | Number | 画板的页数 |
注意:该参数为画板背景图片的队列,存储着每一页的背景图片。第一次初始化时backgroundList参数为必填。当第一次初始化之后,再次初始化时不会清除上一次的画板数据,而是读取上次的数据进行渲染。
Board.setBrushModel(type);
参数名 | 类型 | 描述 |
---|---|---|
type | Number | 画笔的类型 0 不可编辑1 涂鸦(默认)2 箭头3 直线4 矩形; |
设置画笔的类型,默认0
不可编辑。
Board.getBrushModel();
获取画笔的类型。
Board.setBrushWidth(width);
参数名 | 类型 | 描述 |
---|---|---|
width | Number | 例如10,该值均自动转换为px。 |
Board.getBrushWidth();
获取画笔的类型。
Board.setBrushColor(color);
参数名 | 类型 | 描述 |
---|---|---|
width | Number | 颜色的十六进制码。例如#000000,为了和移动平台的兼容性,请勿缩写为#000 |
设置画笔的颜色。
Board.getBrushColor();
获取画笔的颜色。
Board.updateCurrentBgImage(BGUrl);
参数名 | 类型 | 描述 |
---|---|---|
strBGUrl | String | 图片url |
Board.getCurrentBgImageURL();
获取当前画板的背景图片URL
Board.addBoard(addAfter, boardBGUrl);
参数名 | 类型 | 描述 |
---|---|---|
addAfter | Number | 0 表示在当前画板之前插入,1 表示在当前画板之后插入 |
boardBGUrl | String | 插入新画板的背景图片URL(保证图片源允许跨域) |
Board.deleteCurrentBoard();
参数名 | 类型 | 描述 |
---|---|---|
type | Number | 自定义共享通道标识id |
Board.prePage(needSync);
参数名 | 类型 | 描述 |
---|---|---|
needSync | Boolean | true 其他端的画板同步滑动到上一页,false`仅本地滑动到上一页 |
Board.nextPage(needSync);
参数名 | 类型 | 描述 |
---|---|---|
needSync | Boolean | true 其他端的画板同步滑动到下一页,false`仅本地滑动到上一页 |
Board.switchPage(needSync, page);
参数名 | 类型 | 描述 |
---|---|---|
needSync | Boolean | true 其他端的画板同步滑动到指定页,false 仅本地滑动到指定页 |
page | Number | 滑动画板到第几页 |
Board.sendMessage(message);
参数名 | 类型 | 描述 |
---|---|---|
message | String | 消息文本,推荐json字符串拓展性极佳 |
Board.setCanvasSize(width, heigh);
参数名 | 类型 | 描述 |
---|---|---|
width | Number | 画板将要设置的宽度 |
heigh | Number | 画板将要设置的高度 |
设置画板大小,当尺寸变化,或者放大缩小时调用。结合window.onresize
使用。
Board.setBoardScale(scale);
参数名 | 类型 | 描述 |
---|---|---|
scale | Number | 画板放大比例,1~3倍 |
设置画板大小,当尺寸变化,或者放大缩小时调用。
Board.undo();
撤销画笔,撤销当前画板上自己的画笔,逐条撤销。
Board.destoryBoard();
清除所有画板的笔迹以及背景图片。
Board.clearAllDraws();
清除所有画板绘画的笔迹。
Board.clearCurrentDraw();
清除当前画板所有笔迹。
Board.leave();
离开画板(房间)。
Board.on('onBoardServerDisconnect', () => {});
Board.on('onBoardPageChange', (index, totalIndex, currentBgUrl) => {});
参数名 | 类型 | 描述 |
---|---|---|
index | Number | - |
totalIndex | Number | 画板总页数 |
currentBgUrl | String | 当前画板背景图片URL |
监听画板变化,当画板发生变化,将会收到该回调(例如翻页、添加一页、删除一页、背景图片更新等等。
Board.on('onBoardMessage', (message) => {});
参数名 | 类型 | 描述 |
---|---|---|
message | String | 广播消息主体 |
收到广播的消息,消息主体为sendMessage时发送的字符串,此处推荐json字符串,可以和业务系统高效的配合。例如:指定用户接收消息、踢人(判断字段中是否有自己的userid即可)等等。
Board.on('onBoardDrawsChangeTimestamp', (timestamp) => {});
参数名 | 类型 | 描述 |
---|---|---|
timestamp | String | 时间戳 |
主持人监听并实现录制,非主持人不做处理。
Board.on('onBoardDestroy', () => {});
画板已被摧毁。
Board.on('update_board_background', (res) => {});
更改画板背景, res.code
为0说明更改成功。
Board.on('onBoardError', (error) => {});
参数名 | 类型 | 描述 |
---|---|---|
error | String | 错误码 |
监听画板错误详情参考错误码对照表。
Version 3.0.0 (2019-04-11)
- SDK版本升级3.0,API接口变更,更加简洁规范
以下为介绍 Web ARWhiteBoard SDK 的错误码。
code | Desciption |
---|---|
ARBoardCodeParameterError | 参数为空或者参数错误 |
ARBoardCodeNoNet | 当前无网络 |
ARBoardCodeSessionPastDue | Session已过期 |
ARBoardCodeDeveloperInfoError | 开发者信息错误 |
ARBoardCodeDeveloperArrearage | 账号欠费 |
ARBoardCodeDeveloperNotOpen | 该功能未开通 |
ARBoardCodeDatabaseError | 数据库异常 |
ARBoardCodeBackgroundListIsNull | 背景图片队列为空 |