Skip to content

Commit 2b5ccaa

Browse files
committed
updata api docs
1 parent 069492f commit 2b5ccaa

File tree

1 file changed

+233
-0
lines changed

1 file changed

+233
-0
lines changed

document/API.md

Lines changed: 233 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
# API
2+
3+
#### Usage
4+
5+
```javascript
6+
import JMessage from 'jmessage-react-plugin';
7+
```
8+
9+
#### NOTE:
10+
11+
- 调用其他接口前需要调用 `init `方法.
12+
13+
```javascript
14+
JMessage.init({
15+
appkey: "换成在极光官网上注册的应用 Appkey",
16+
isOpenMessageRoaming: false // 是否开启消息漫游,默认不开启
17+
isProduction: true, // 是否为生产模式
18+
})
19+
```
20+
21+
- 用户相关接口需要登录以后才能正常使用,如下是账户相关接口。
22+
23+
```javascript
24+
// 注册
25+
JMessage.register({
26+
username: "登录用户名",
27+
password: "登录密码"
28+
}, () => {/*注册成功回调*/}, (error) => {/*注册失败回调*/})
29+
30+
// 登录
31+
JMessage.login({
32+
username: "登录用户名",
33+
password: "登录密码"
34+
},() => {/*登录成功回调*/}, (error) => {/*登录失败回调*/})
35+
36+
// 登出
37+
JMessage.logout()
38+
39+
// 监听登录状态变更
40+
//由于 JMessage 只提供单点登录,所以一般还需要监听应用登录状态的改变,如果其他设备登录相同账号会把当前设备应用用户挤下线
41+
var listener = (event) => { }
42+
// 回调函数返回参数 event = {'type': 'user_password_change' / 'user_logout' / 'user_deleted' / 'user_login_status_unexpected'}
43+
JMessage.addLoginStateChangedListener(listener) // 监听登录状态变更
44+
JMessage.removeLoginStateChangedListener(listener) // 移除监听
45+
46+
```
47+
48+
- 可以通过 `getMyInfo` 接口来判断,应用当前的登录状态。
49+
50+
```javascript
51+
JMessage.getMyInfo((result) => {
52+
if (result.username === undefine) {
53+
// 未登录
54+
} else {
55+
// 已登录
56+
}
57+
})
58+
```
59+
60+
- 发送消息,有两种方式。
61+
62+
```javascript
63+
// 第一种方式 先创建消息,然后再发送
64+
//1. 创建消息
65+
JMessage.createSendMessage(params) // params 参数字段可以参考 index.js 中的注释
66+
67+
//2. 发送消息
68+
JMessage.sendMessage(params)
69+
```
70+
71+
```javascript
72+
// 第二种方式,快捷发送消息
73+
JMessage.sendTextMessage(params) // 快捷发送文本消息
74+
JMessage.sendVoiceMessage(params) // 快捷发送语音消息
75+
JMessage.sendImageMessage(params) // 快捷发送图片消息
76+
JMessage.sendFileMessage(params) // 快捷发送文件消息
77+
JMessage.sendCustomMessage(params) // 快捷发送自定义消息
78+
```
79+
80+
81+
82+
- 接收消息
83+
84+
```javascript
85+
var listener = (message) => {
86+
// 收到的消息会返回一个消息对象. 对象字段可以参考对象说明
87+
}
88+
89+
JMessage.addReceiveMessageListener(listener) // 添加监听
90+
JMessage.removeReceiveMessageListener(listener) // 移除监听(一般在 componentWillUnmount 中调用)
91+
```
92+
93+
94+
95+
96+
## 常用对象说明
97+
98+
API 使用文档可以直接参考 [index.js](../index.js) 中的注释。
99+
100+
这里列出插件中会返回的各对象组成:
101+
102+
```js
103+
UserInfo: {
104+
type: 'user',
105+
username: string, // 用户名。
106+
appKey: string, // 用户所属应用的 appKey。可与 username 共同作为用户的唯一标志。
107+
nickname: string, // 昵称。
108+
gender: string, // 'male' / 'female' / 'unknown'
109+
avatarThumbPath: string, // 头像的缩略图地址。
110+
birthday: number, // 日期的毫秒数。
111+
region: string, // 地区。
112+
signature: string, // 个性签名。
113+
address: string, // 具体地址。
114+
noteName: string, // 备注名。
115+
noteText: string, // 备注信息。
116+
isNoDisturb: boolean, // 是否免打扰。
117+
isInBlackList: boolean, // 是否在黑名单中。
118+
isFriend:boolean // 是否为好友。
119+
}
120+
```
121+
122+
```js
123+
GroupInfo: {
124+
type: 'group',
125+
id: string, // 群组 id,
126+
name: string, // 群组名称。
127+
desc: string, // 群组描述。
128+
level: number, // 群组等级,默认等级 4。
129+
owner: string, // 群主的 username。
130+
ownerAppKey: string, // 群主的 appKey。
131+
maxMemberCount: number, // 最大成员数。
132+
isNoDisturb: boolean, // 是否免打扰。
133+
isBlocked: boolean // 是否屏蔽群消息。
134+
}
135+
```
136+
137+
```js
138+
Conversation: {
139+
/**
140+
* 会话对象标题。
141+
* 如果为群聊:
142+
* - 未设置群名称:自动使用群成员中前五个人的名称拼接成 title。
143+
* - 设置了群名称,则显示群名称。
144+
* 如果为单聊:如果用户有昵称,显示昵称。否则显示 username。
145+
*/
146+
title: string,
147+
latestMessage: Message, // 最近的一条消息对象。
148+
unreadCount: number, // 未读消息数。
149+
conversationType: 'single' / 'group',
150+
target: UserInfo / GroupInfo // 聊天对象信息。
151+
}
152+
```
153+
154+
#### Message
155+
156+
```js
157+
TextMessage: {
158+
id: string, // 消息 id。
159+
type: 'text', // 消息类型。
160+
from: UserInfo, // 消息发送者对象。
161+
target: UserInfo / GroupInfo, // 消息接收者对象。可能是用户或群组。
162+
createTime: number, // 发送消息时间。
163+
text: string, // 消息内容。
164+
extras: object // 附带的键值对对象。
165+
}
166+
```
167+
168+
```js
169+
ImageMessage: {
170+
id: string,
171+
type: 'image',
172+
from: UserInfo,
173+
target: UserInfo / GroupInfo,
174+
extras: object,
175+
thumbPath: string // 图片的缩略图路径。要下载原图需要调用 `downloadOriginalImage` 方法。
176+
}
177+
```
178+
179+
```js
180+
VoiceMessage: {
181+
id: string,
182+
type: 'image',
183+
from: UserInfo,
184+
target: UserInfo / GroupInfo,
185+
extras: object,
186+
path: string, // 语音文件路径。
187+
duration: number // 语音时长
188+
}
189+
```
190+
191+
```js
192+
LocationMessage: {
193+
id: string,
194+
type: 'voice',
195+
from: UserInfo,
196+
target: UserInfo / GroupInfo,
197+
extras: object,
198+
address: string, // 详细地址。
199+
longitude: number, // 经度。
200+
latitude: number, // 纬度。
201+
scale:number // 地图缩放比例。
202+
}
203+
```
204+
205+
```js
206+
FileMessage: {
207+
id: string,
208+
type: 'file',
209+
from: UserInfo,
210+
target: UserInfo / GroupInfo,
211+
extras: object,
212+
fileName: string // 文件名。要下载完整文件需要调用 `downloadFile` 方法。
213+
}
214+
```
215+
216+
```js
217+
CustomMessage: {
218+
id: string,
219+
type: 'file',
220+
from: UserInfo,
221+
target: UserInfo / GroupInfo,
222+
extras: object,
223+
customObject: object // 自定义键值对对象。
224+
}
225+
```
226+
227+
```js
228+
Event: {
229+
type: 'event',
230+
eventType: string, // 'group_member_added' / 'group_member_removed' / 'group_member_exit'
231+
usernames: Array // 该事件涉及到的用户 username 数组。
232+
}
233+
```

0 commit comments

Comments
 (0)