集成圈组界面

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

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

圈组 UIKit 提供两种界面集成方式,即基于 Activity 集成和基于 Fragment 集成。通过这两种方式集成的圈组界面,都支持个性化定制界面 UI。

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

界面视图

社区-话题

页面 页面类 视图
社区列表页面 QChatServerFragment
展示所有社区及包含的话题列表
社区创建选择页面 QChatCreateWayActivity
支持创建和加入社区
社区创建页面 QChatCreateBySelfActivity
创建社区
社区搜索加入页面 QChatJoinOtherServerActivity
支持搜索并加入社区
话题会话页面 ChannelMessageActivity
话题会话,支持文本消息、表情、语音、图片和视频消息
社区设置页面 QChatServerSettingActivity
支持设置社区头像、社区名称和主题
社区设置成员列表页面 QChatServerMemberListActivity
支持查看、添加、移除社区成员
社区身份组列表页面 QChatRoleListActivity
支持查看、添加、移除身份组
社区身份组设置页面 QChatRoleSettingActivity
支持设置身份组权限、修改身份组名称等
社区身份组成员管理页面 QChatRoleMemberActivity
支持添加、移除身份组中的成员

社区广场

页面 页面类 视图
圈组广场 QChatSquareFragment
展示所有公开社区

注意:

  • SquareDataSourceHelper 提供圈组广场的数据网络请求和结果回调方法,您可以根据自身业务逻辑修改该类实现。

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

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

公告频道

页面 页面类 视图
公告频道列表页面 QChatServerFragment
展示所有公告频道服务器和包含的频道(可通过广播图标区分公告频道和社区)
公告频道创建选择页面 QChatCreateWayActivity
支持创建和加入公告频道
公告频道创建页面 QChatCreateBySelfActivity
支持创建公告频道
公告频道搜索加入页面 QChatJoinOtherServerActivity
支持搜索并加入公告频道
公告频道会话页面 ChannelMessageActivity
公告频道聊天页面,支持发送文本消息、表情、图片、语音、视频以及表情评论。
公告频道设置页面 SettingActivity
(package:com.netease.yunxin.kit.qchatkit.ui.announce)
支持设置公告频道属性。创建者可以设置频道信息、解散频道、管理订阅者、管理员及其权限。
管理员管理页面 ManagerListActivity
(package:com.netease.yunxin.kit.qchatkit.ui.announce)
创建者可以添加、移除管理员。管理员仅支持查看。
管理员权限设置页面 ManagerEditActivity
(package:com.netease.yunxin.kit.qchatkit.ui.announce)
创建者可以设置管理员的操作权限。
订阅者管理页面 ServerMemberListActivity
(package:com.netease.yunxin.kit.qchatkit.ui.announce)
支持查看、添加、移除订阅者

前提条件

已实现登录

实现方法

集成方式 说明
基于 Activity 使用圈组 UIKit 提供的默认界面。在圈组 UIKit 内部已经为该界面定义了跳转路径:其他界面需要跳转到该界面时,将跳转到对应的 Activity。
基于 Fragment 在应用 Activity 中集成圈组 UIKit 提供的会话列表 Fragment。

基于 Activity 的圈组页面集成

对于集成 Activity 的圈组页面,圈组 UIKit 提供静态 launch 方法来进行页面跳转。示例代码如下:

java// 在一个Activity中想要跳转到社区设置页面代码如下,需要您获取到相关社区的QChatServerInfo作为入参
QChatServerSettingActivity.launch(this.getActivity(), serverInfo)

您也可以通过创建安卓原生 Intent 对象来启动页面跳转,并针对不同圈组页面对 Intent 对象传入相应的 key 和 value。具体传参方式请参考圈组 Demo 源码launch 方法实现。

基于 Fragment 的圈组页面集成

Fragment 需要添加到 Activity 中进行展示。

  • 圈组广场 QChatSquareFragment 示例代码:

    javapublic class MyActivity extends Activity {
    
        protected void onCreate(@Nullable Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.....);
              QChatSquareFragment squareFragment = new QChatSquareFragment();
              getSupportFragmentManager()
              .beginTransaction()
              .add(layoutID, squareFragment)
              .commit();
        }
    }
    
  • 社区/公告频道列表 QChatServerFragment 示例代码:

    javapublic class MyActivity extends Activity {
    
        protected void onCreate(@Nullable Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.....);
              QChatServerFragment serverFragment = new QChatServerFragment();
              getSupportFragmentManager()
              .beginTransaction()
              .add(layoutID, serverFragment)
              .commit();
        }
    }
    
此文档是否对你有帮助?
有帮助
去反馈
  • 界面视图
  • 社区-话题
  • 社区广场
  • 公告频道
  • 前提条件
  • 实现方法
  • 基于 Activity 的圈组页面集成
  • 基于 Fragment 的圈组页面集成