浏览 SDKs · uni-app / uni-app x
平台
SDKsuni-app / uni-app x含商业版能力

获取收到的入群申请

查询当前用户有权处理的入群申请,并监听申请状态变化。

复制

群主或管理员使用 getGroupApplicationListAsRecipient() 查询需要自己处理或已经处理过的入群申请。该方法只提供偏移量分页,不支持按群组 ID 或处理结果筛选。

参数说明

参数可以省略;需要分页时传入以下字段:

参数类型是否必填说明
offsetnumber起始偏移量,第一页传 0
countnumber本次读取数量。
import {
  getGroupApplicationListAsRecipient,
} from '@/uni_modules/unix-openim-sdk'

const result = await getGroupApplicationListAsRecipient({
  offset: 0,
  count: 20,
})
const applications = result != null ? result.applications : []

返回结果

Promise 成功后返回 OpenIMGroupApplicationListResult | null;非空结果的 applications 是当前页 OpenIMGroupApplicationItem[]

入群申请字段

字段类型说明
groupIDstring申请加入的群组 ID。
userIDstring申请人的用户 ID;与 groupID 共同识别一条申请。
nicknamestring申请记录中保存的申请人昵称。
userFaceURLstring申请记录中保存的申请人头像。
reqMsgstring入群申请附言。
reqTimenumber申请时间,Unix 毫秒时间戳。
joinSourceOpenIMGroupJoinSource入群途径,可使用管理员添加、邀请、搜索和二维码对应的常量判断。
inviterUserIDstring邀请人的用户 ID;自主申请时可能为空字符串。
handleResultOpenIMApplicationHandleResult处理结果:OpenIMApplicationHandleResultUnprocessed 待处理、OpenIMApplicationHandleResultAccepted 已同意、OpenIMApplicationHandleResultRejected 已拒绝。
handleUserIDstring处理人的用户 ID;未处理时可能为空字符串。
handledMsgstring处理说明。
handledTimenumber处理时间;未处理时不要作为有效时间展示。
groupNamestring申请记录中保存的群名称。
groupFaceURLstring申请记录中保存的群头像。
groupTypeOpenIMGroupTypenull群类型。
ownerUserIDstring群主用户 ID。
creatorUserIDstring群组创建者用户 ID。
introductionstring申请记录中保存的群简介。
notificationstring申请记录中保存的群公告。
memberCountnumber申请记录中保存的群成员数量。
statusOpenIMGroupStatus申请记录中保存的群组状态。
createTimenumber申请记录创建时间,Unix 毫秒时间戳。
exstring申请记录扩展字符串。
attachedInfostringSDK 附加信息,只按已确认的业务约定解析。

申请记录中的昵称、头像、群名称和成员数不保证是当前最新值。需要展示最新资料时,应分别查询用户资料或群资料,不要用申请记录覆盖资料缓存。

监听申请变化

本页集中说明并监听入群申请事件。申请事件直接返回 OpenIMGroupApplicationItem | null,使用 groupID:userID 合并记录;角标事件直接返回最新数量。

import {
  OpenIMGroupApplicationItem,
  off,
  onGroupApplicationAccepted,
  onGroupApplicationAdded,
  onGroupApplicationBadgeCountChanged,
  onGroupApplicationDeleted,
  onGroupApplicationRejected,
} from '@/uni_modules/unix-openim-sdk'

const mergeApplication = (application: OpenIMGroupApplicationItem | null) => {
  if (application == null) return
  mergeGroupApplication(application)
}

const deleteApplication = (application: OpenIMGroupApplicationItem | null) => {
  if (application == null) return
  removeGroupApplication(application.groupID, application.userID)
}

const updateBadge = (count: number) => {
  setGroupApplicationBadge(count)
}

const addedSubscription = onGroupApplicationAdded(mergeApplication)
const acceptedSubscription = onGroupApplicationAccepted(mergeApplication)
const rejectedSubscription = onGroupApplicationRejected(mergeApplication)
const deletedSubscription = onGroupApplicationDeleted(deleteApplication)
const badgeSubscription = onGroupApplicationBadgeCountChanged(updateBadge)

function removeGroupApplicationListeners() {
  off(addedSubscription)
  off(acceptedSubscription)
  off(rejectedSubscription)
  off(deletedSubscription)
  off(badgeSubscription)
}

分页期间发生新增、处理或删除时,应重置分页并重新加载。组件卸载、退出登录或切换账号时调用 removeGroupApplicationListeners()