為了方便開發者快速接入,百城推送推出了適用于 UNIAPP 開發的IOS、Android、H5、微信小程序、支付寶小程序、百度小程序、字節跳動小程序、QQ小程序、360小程序、快應用等項目的 UniappSDK。
#### SDK & DEMO
[下載UniappSDK](https://console.xiangbaicheng.com/static/xbcim_uniappsdk_1.0.0.min.js)[下載DEMO](https://ext.dcloud.net.cn/plugin?id=3934)
#### 引入SDK
可以通過在 main.js 中引入,然后掛載到 Vue.prototype 上,示例如下:
```
import XBCIM from 'plugins/xbcim\_sdk\_1.0.0.min.js'
Vue.prototype.$xbcim = XBCIM
```
#### 初始化SDK
```
this.$xbcim.init(token)
```
1、參數 token 為連接授權碼,需要通過平臺注冊賬號的 appKey 等參數進行獲取,具體方法請參考[獲取授權碼](https://console.xiangbaicheng.com/doc/token.html)。
2、參數可以直接傳遞 token 字符串,也可以傳入 json 格式,如 { token: token }。
3、初始化時,默認就會創建WebSocket鏈接。
#### 監聽初始化成功
```
this.$xbcim.onsuccess(callback)
```
callback回調,可以在里面進行連接成功后的其他邏輯操作。
#### 監聽錯誤
```
this.$xbcim.onerror(callback);
```
1、onerror 會監聽初始化失敗、token 校驗等錯誤回調。
2、callback回調,可以在里面進行連接成功后的其他邏輯操作。
#### 監聽連接是否斷開
```
this.$xbcim.onclose(callback);
```
callback回調,可以在里面進行連接斷開后的其他邏輯操作。
#### 手動斷開連接
```
this.$xbcim.close(callback);
```
callback回調,可以在里面進行連接斷開后的其他邏輯操作。
#### 重新連接
```
this.$xbcim.reconnect();
```
#### 發送單聊
```
this.$xbcim.sendSingle(data);
```
data 為要發送的消息數據,其具體參數及含義如下:
| 參數 | 描述 |
| --- | --- |
| type | 消息類型,默認文本,支持其他自定義消息類型 |
| source | 消息發送者ID |
| target | 消息接收者ID |
| content | 消息內容,字符串 |
| extra | 額外數據,支持任意格式 |
#### 發送群聊
```
this.$xbcim.sendGroup(data);
```
data 為要發送的消息數據,其具體參數及含義如下:
| 參數 | 描述 |
| --- | --- |
| type | 消息類型,默認文本,支持其他自定義消息類型 |
| source | 消息發送者ID |
| target | 群ID |
| content | 消息內容,字符串 |
| extra | 額外數據,支持任意格式 |
#### 接收消息
```
this.$xbcim.onmessage(callback);
```
callback 回調,回調會返回接收到的消息數據。