圈组页面

更新时间: 2024/03/15 18:26:23

网易云信圈组 UIKit 提供圈组场景下各模块完整 UI,包括广场、社区-话题二级结构、公告频道、身份组等。

集成圈组相关界面后,支持个性化定制界面 UI。

本文介绍如何集成圈组各模块界面视图。

界面视图

社区-话题

页面
页面类
需传递目标界面参数
界面视图
社区列表页面 QChatHomeViewController
展示所有社区及包含的话题列表
社区创建选择页面 QChatCreateServerViewController
支持创建和加入社区
社区创建页面 QChatMineCreateServerController
创建社区
社区搜索加入页面 QChatJoinOtherServiceController
支持搜索并加入社区
可设参数:Bool型isAnnouncement(是否是公告频道)
社区设置页面 QChatServerSettingViewController
支持设置社区头像、社区名称和主题
必填参数:QChatServer型server(社区对象)
社区设置成员列表页面 QChatMemberListViewController
支持查看、添加、移除社区成员
必设参数:UInt64型serverId(社区ID)
社区身份组列表页面 QChatIdGroupViewController
支持查看、添加、移除身份组
必设参数:UInt64型serverId(社区ID)
社区身份组设置页面 QChatPermissionViewController
支持设置身份组权限、修改身份组名称等
必填参数:QChatIdGroupModel型idGroup
社区身份组成员管理页面 QChatMemberManagerController
支持添加、移除身份组中的成员
必填参数:UInt64型serverId(社区ID)、UInt64型roleId(身份组ID)、Int型memberCount(成员数量)
话题聊天页面 QChatViewController
话题会话,支持文本消息、表情、语音、图片和视频消息
必填参数:ChatChannel型channel(话题对象)
话题设置页面 QChatChannelSettingVC
支持设置话题名称和主题、管理话题权限和管理话题黑白名单
必填参数:QChatUpdateChannelViewModel型viewModel(话题更新数据模型)

公告频道

页面
页面类
需传递目标界面参数
界面视图
公告频道列表页面 QChatHomeViewController
展示所有公告频道服务器和包含的频道(可通过广播图标区分公告频道和社区)
公告频道创建选择页面 QChatCreateServerViewController
支持创建和加入公告频道
公告频道创建页面 QChatMineCreateServerController
支持创建公告频道
公告频道搜索加入页面 QChatJoinOtherServiceController
支持搜索并加入公告频道
可设参数:Bool型isAnnouncement(是否是公告频道)
公告频道会话页面 QChatViewController
公告频道聊天页面,支持发送文本消息、表情、图片、语音、视频以及表情评论。创建者或者管理员可以查看和编辑,订阅制只能查看
必填参数:QChatServer型server(社区对象)
公告频道设置页面 QChatAnncSettingViewController
支持设置公告频道属性。创建者可以设置频道信息、解散频道、管理订阅者、管理员及其权限
必填参数:QChatServer型server(社区对象)、Bool型isAdministrator(是否为管理员)
管理员管理页面 QChatAnncManagerViewController
创建者可以添加、移除管理员。管理员仅支持查看
必设参数:Bool型isManager(是否为管理员)、QChatServer型qchatServer(社区对象)
管理员权限设置页面 QChatAnncMemberEditViewController
创建者可以设置管理员的操作权限
必填参数:QChatServer型server(社区对象)、ServerMemeber型member(管理员信息)
订阅制管理 QChatAnncManagerViewController
支持查看、添加、移除订阅者
必设参数:Bool型isManager(是否为管理员)、QChatServer型qchatServer(社区对象)

广场

页面
页面类
需传递目标界面参数
界面视图
圈组广场 QChatSquareHomeViewController
展示所有公开社区
  • SquareDataSourceHelper 提供圈组广场的数据网络请求和结果回调方法,您可以根据自身业务逻辑修改该类实现。

  • 用户未加入社区则进入游客模式,该模式下不允许发言和操作。相关页面会根据是否为游客模式进行 UI 展示和逻辑处理。游客模式判断示例代码如下:

    //根据提供的社区ID(即serverId)来判断,当前登录账号是否在这个社区中为游客
    if (ServerVisitorInfoMgr.getInstance().isVisitor(serverId)) {
      //游客模式
    } else {
      //非游客模式
    }
    

前提条件

已完成登录

实现方法

使用 pushViewController 方法集成圈组页面

调用 pushViewController 方法实现目标页面的集成和展示。以话题聊天页面 Controller 为例:

swiftlet chatVC = QChatViewController(channel: nil, server: server)
navigationController?.pushViewController(chatVC, animated: true)

使用 present 方法集成圈组页面

调用 present 方法实现目标界面的集成和展示。以话题设置页面 Controller 为例:

swiftlet settingVC = QChatChannelSettingVC()
settingVC.viewModel = QChatUpdateChannelViewModel(channel: channel)
let nav = UINavigationController(rootViewController: settingVC)
nav.modalPresentationStyle = .fullScreen
present(nav, animated: true, completion: nil)
此文档是否对你有帮助?
有帮助
去反馈
  • 界面视图
  • 社区-话题
  • 公告频道
  • 广场
  • 前提条件
  • 实现方法
  • 使用 pushViewController 方法集成圈组页面
  • 使用 present 方法集成圈组页面