﻿# anyrtc-whiteboard

anyRTC平台画板SDK是一款跨平台轻量级的白板SDK，易用、实时。

# DEMO

前往[体验](https://www.anyrtc.io/demo/whiteboard/create)

## Installation

Using npm:

```
#  更新npm
$  npm i -g npm
#  安装SDK
$  npm i anyrtc-whiteboard --save
```
In Node.js:

```
import Board from 'anyrtc-whiteboard';
```

## Useage

### 获取开发者信息

- 前往[anyRTC 云平台](https://www.anyrtc.io)获取开发者信息，并创建一个app应用。

### 创建Canvas

```
<canvas id="myCanvas" width="640" height="480"></canvas>
```

### 初始化实例

```
import Board from 'anyrtc-whiteboard';
import 'anyrtc-whiteboard/lib/index.css';

var board = new Board("myCanvas");
```

### initEngineWithAnyRTCInfo - 连接画板服务

```
//前往anyrtc平台获取
var DEV_ID = "";//开发者Id
var APP_ID = "";//应用的appId
var APP_KEY = "" ;//应用的appKey
var APP_TOKEN = "";//应用的appToken
var APP_DOMAIN = "";//网站域名-（上线必填，开发可以为空）

//初始化anyRTC引擎
board.initEngineWithAnyRTCInfo(DEV_ID, APP_ID, APP_KEY, APP_TOKEN, APP_DOMAIN).then(res => {
	if (res.code === 0) {//初始化成功
		//Do something
	} else {
		//连接不成功
	}
}).catch(err => {

});
```

### initWithRoomID - 初始化画板

在```initEngineWithAnyRTCInfo```成功之后，初始化画板

```
//前往
var anyRTCId = "";//房间号（保证唯一）
var fileId = "";//文件ID（保证唯一）
var userId = "";//用户id（保证唯一）
var backgroundList= [] ;//背景图片
//连接服务
board.initWithRoomID(anyRTCId, fileId, userId, backgroundList).then(res => {
	if (res.code === 0) {
		//连接成功
	} else {
		//连接不成功
	}
});
```

### 监听回调

```
//监听画板变化
board.on("onBoardPageChange", (currentPage, totalPage, backgroundUrl, backgroundList) => {
  console.log("当前画板页数", currentPage);
  console.log("画板总页数Index", totalPage);
  console.log("当前画板背景URL", backgroundUrl);
  console.log("所有画板背景列表", backgroundList);
});

//画板变化时的时间戳回调
board.on("onBoardDrawsChangeTimestamp", () => {
  
});

//画板被销毁
board.on("onBoardDestroy", () => {
  
});

//监听画板错误
board.on("onBoardError", code => {
  //详情请参考错误码
});

```

### API文档

- 查看白板的[API文档](https://www.anyrtc.io/resoure/455)。

### 错误码

|code  | Desciption |
|----------|:-------------:|
|AnyRTCBoardCodeParameterError |参数为空或者参数错误|
|AnyRTCBoardCodeNoNet | 当前无网络|
|AnyRTCBoardCodeSessionPastDue | Session已过期|
|AnyRTCBoardCodeDeveloperInfoError | 开发者信息错误|
|AnyRTCBoardCodeDeveloperArrearage | 账号欠费|
|AnyRTCBoardCodeDeveloperNotOpen | 该功能未开通|
|AnyRTCBoardCodeDatabaseError | 数据库异常|
|AnyRTCBoardCodeBackgroundListIsNull | 背景图片队列为空 |

## 技术支持 
> 加QQ技术咨询群：580477436 (一群) 554714720 (二群)  
> 欢迎加入[anyRTC社区](https://bbs.anyrtc.io) 和我们一起探讨WebRTC技术以及解决集成问题。