界面跳转

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

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 组件接入,请根据上文提供的路由地址进行替换,从而实现跳转。

跳转至用户信息界面

  • 示例代码

    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上下文

跳转至单聊界面

  • 示例代码

    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 上下文

跳转至群聊界面

  • 示例代码

    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 上下文

跳转至群聊搜索界面

  • 示例代码

    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 上下文

跳转至群聊设置界面

  • 示例代码

    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方法进行界面跳转,具体参数说明参见上文的如何跳转

此文档是否对你有帮助?
有帮助
去反馈
  • 技术原理
  • 跳转至内置界面
  • 内置界面路由地址列表
  • 基础版 UI 界面路由地址列表
  • 通用版 UI 界面路由地址列表
  • 内置界面跳转示例
  • 跳转至用户信息界面
  • 跳转至单聊界面
  • 跳转至群聊界面
  • 跳转至群聊搜索界面
  • 跳转至群聊设置界面
  • 跳转至新增界面