界面跳转

更新时间: 2024/06/03 09:53:09

IM UIKit 提供统一路由 XKitRouter,支持参数传递和回调,实现界面的跳转与模块之间的解耦。

技术原理

IM UIKit 任意内置界面(如单聊界面)都可以通过路由地址跳转至其他指定界面:

  • 跳转至其他内置界面
  • 跳转至您的应用的新增界面

以上两种界面的跳转,都可通过调用 navigate 方法实现。方法原型如下:

java  // 需传递目标界面参数的界面跳转
  XKitRouter.withKey(path).withParam(paramKey,param).withContext(context).navigate();
  // 不需要传递目标界面参数的界面跳转
  XKitRouter.withKey(path).withContext(context).navigate();
参数
类型 说明

path

String

需跳转至的目标界面对应的路由地址:

paramKey String 传递到目标界面的参数 KEY。
param Serializable 传递到目标界面的参数值。
context Context Activity 上下文。

跳转至内置界面

本节介绍 IM UIKit 内置界面的路由地址列表以及部分界面的跳转示例。

内置界面路由地址列表

网易云信 IM UIKit 提供两套风格的 UI 组件库,可任意选择一种使用。

两种风格 UI 界面的路由地址不同,请按需选择对用风格的对应界面路由地址,实现跳转。

  • 基础版 UI 界面路由地址列表

    • 路由地址组成imkit://{所属模块}/{Endpoint}

    • UIKit 变量所属类RouterConstant

      路由地址(所属模块+Endpoint) UIKit 定义的变量 Page 需传递目标界面参数 界面视图
      contact/contactList.page PATH_CONTACT_PAGE ContactActivity
      通讯录界面
      contact/selector.page PATH_CONTACT_SELECTOR_PAGE ContactSelectorActivity
      通讯录人员选择器
      contact/addFriend.page PATH_ADD_FRIEND_PAGE AddFriendActivity
      添加好友界面
      contact/userInfo.page PATH_USER_INFO_PAGE UserInfoActivity
      用户信息界面
      是,具体参考 跳转至用户信息界面
      contact/blackList.page PATH_MY_BLACK_PAGE BlackListActivity
      黑名单界面
      contact/teamList.page PATH_MY_TEAM_PAGE TeamListActivity
      我的群组界面
      contact/verifyList.page PATH_MY_NOTIFICATION_PAGE VerifyListActivity
      系统通知界面
      contact/imkit://chat/p2pChat.page PATH_CHAT_P2P_PAGE ChatP2PActivity
      单聊界面
      是,具体参考 跳转至单聊界面
      chat/teamChat.page PATH_CHAT_TEAM_PAGE ChatTeamActivity
      群聊界面
      是,具体参考 跳转至群聊界面
      chat/searchMessage.page PATH_CHAT_SEARCH_PAGE ChatSearchActivity
      聊天内容搜索界面
      是,具体参考 跳转至群聊搜索界面
      team/teamSetting.page PATH_TEAM_SETTING_PAGE TeamSettingActivity
      群设置界面
      是,具体参考 跳转至群聊设置界面
      search/search.page PATH_GLOBAL_SEARCH_PAGE GlobalSearchActivity
      好友搜索界面
      mine/userInfo.page PATH_MINE_INFO_PAGE UserInfoActivity
      我的个人信息界面
      conversation/conversation.page PATH_CONVERSATION_PAGE ConversationActivity
      会话列表界面

  • 通用版 UI 界面路由地址列表

    • 路由地址组成imkit://{所属模块}/{Endpoint}

    • UIKit 变量所属类RouterConstant

      路由地址(所属模块+Endpoint) UIKit 定义的变量 Page 需传递目标界面参数 界面视图
      contact/contactList.fun.page PATH_FUN_CONTACT_PAGE FunContactActivity
      通讯录界面
      contact/selector.fun.page PATH_FUN_CONTACT_SELECTOR_PAGE FunContactSelectorActivity
      通讯录人员选择器
      contact/addFriend.fun.page PATH_FUN_ADD_FRIEND_PAGE FunAddFriendActivity
      添加好友界面
      contact/userInfo.fun.page PATH_FUN_USER_INFO_PAGE FunUserInfoActivity
      用户信息界面
      contact/blackList.fun.page PATH_FUN_MY_BLACK_PAGE FunBlackListActivity
      黑名单界面
      contact/teamList.fun.page PATH_FUN_MY_TEAM_PAGE FunTeamListActivity
      我的群组界面
      contact/verifyList.fun.page PATH_FUN_MY_NOTIFICATION_PAGE FunVerifyListActivity
      系统通知界面
      chat/p2pChat.fun.page PATH_FUN_CHAT_P2P_PAGE FunChatP2PActivity
      单聊界面
      chat/teamChat.fun.page PATH_FUN_CHAT_TEAM_PAGE FunChatTeamActivity
      群聊界面
      chat/searchMessage.fun.page PATH_FUN_CHAT_SEARCH_PAGE FunChatSearchActivity
      聊天内容搜索界面
      team/teamSetting.fun.page PATH_FUN_TEAM_SETTING_PAGE FunTeamSettingActivity
      群设置界面
      search/search.fun.page PATH_FUN_GLOBAL_SEARCH_PAGE FunSearchActivity
      好友搜索界面
      mine/userInfo.fun.page PATH_FUN_MINE_INFO_PAGE FunUserInfoActivity
      我的个人信息界面
      conversation/conversation.fun.page PATH_FUN_CONVERSATION_PAGE FunConversationActivity
      会话列表界面

内置界面跳转示例

本文主要提供基础版 UI 界面跳转的示例,若使用通用版 UI 组件接入,请根据上文提供的 路由地址 进行替换,从而实现跳转。

1. 跳转至用户信息界面

  • 示例代码

    javaXKitRouter.withKey(RouterConstant.PATH_USER_INFO_PAGE).withParam(RouterConstant.KEY_ACCOUNT_ID_KEY,"accoutID").withContext(context).navigate();
    
  • 参数说明

    参数 类型 说明
    RouterConstant.PATH_USER_INFO_PAGE String 用户信息界面的跳转地址
    RouterConstant.KEY_ACCOUNT_ID_KEY String 传递到用户信息界面的参数 KEY,值为 contact_accountId
    accoutID String 查看用户资料的用户 ID
    context Context Activity 上下文

2. 跳转至单聊界面

  • 示例代码

    javaXKitRouter.withKey(RouterConstant.PATH_CHAT_P2P_PAGE).withParam(RouterConstant.CHAT_KRY, userInfo).withContext(context).navigate();
    
  • 参数说明

    参数 类型 说明
    RouterConstant.PATH_CHAT_P2P_PAGE String 单聊界面的跳转地址
    RouterConstant.CHAT_KRY String 传递到单聊界面的参数 KEY,值为 chat_account
    userInfo com.netease.yunxin.kit.corekit.im.model.UserInfo 用户信息实体类
    context Context Activity 上下文

3. 跳转至群聊界面

  • 示例代码

    javaXKitRouter.withKey(RouterConstant.PATH_CHAT_TEAM_PAGE).withParam(RouterConstant.CHAT_KRY, team).withContext(context).navigate();
    
  • 参数说明

    参数 类型 说明
    RouterConstant.PATH_CHAT_TEAM_PAGE String 群聊界面的跳转地址
    RouterConstant.CHAT_KRY String 传递到群聊界面的参数 KEY,值为 chat_account
    team Team 群组信息实体类
    context Context Activity 上下文

4. 跳转至群聊搜索界面

  • 示例代码

    javaXKitRouter.withKey(RouterConstant.PATH_CHAT_SEARCH_PAGE).withParam(RouterConstant.CHAT_KRY,team).withContext(context).navigate())
    
  • 参数说明

    参数 类型 说明
    RouterConstant.PATH_CHAT_SEARCH_PAGE String 群聊搜索界面的跳转地址
    RouterConstant.CHAT_KRY String 传递到群聊搜索界面的参数 KEY,值为 chat_account
    team Team 群组信息实体类
    context Context Activity 上下文

5. 跳转至群聊设置界面

  • 示例代码

    javaXKitRouter.withKey(RouterConstant.PATH_TEAM_SETTING_PAGE).withParam(RouterConstant.KEY_TEAM_ID,teamId).withContext(context).navigate())
    
  • 参数说明

    参数 类型 说明
    RouterConstant.PATH_TEAM_SETTING_PAGE String 群聊搜索界面的跳转地址
    RouterConstant.KEY_TEAM_ID String 传递到群聊设置界面的参数 KEY,值为 team_teamId
    teamId String 群组的 ID
    context Context Activity 上下文

跳转至新增界面

IM UIKit 提供的路由能力,支持根据业务需求新增界面并实现从 IM UIKit 的内置界面跳转至新增界面。

  1. 在通过路由实现跳转前,需调用 registerRouter 方法注册该新增界面的路由地址。

    方法原型如下:

    javaXKitRouter.registerRouter(path, clazz)
    
    参数 类型 说明
    path String 注册界面对应的路由地址
    clazz Class<? extends Activity> Activity 界面类

    路由的界面注册机制采用覆盖模式,即相同的 Path,后注册的界面会覆盖之前注册的界面。

  2. 调用 navigate 方法进行界面跳转,具体参数说明参考上文的 技术原理

此文档是否对你有帮助?
有帮助
去反馈
  • 技术原理
  • 跳转至内置界面
  • 内置界面路由地址列表
  • 内置界面跳转示例
  • 跳转至新增界面