界面跳转
更新时间: 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 组件接入,请根据上文提供的路由地址进行替换,从而实现跳转。
跳转至用户信息界面
-
示例代码
java
XKitRouter.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上下文
跳转至单聊界面
-
示例代码
java
XKitRouter.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 上下文
跳转至群聊界面
-
示例代码
java
XKitRouter.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 上下文
跳转至群聊搜索界面
-
示例代码
java
XKitRouter.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 上下文
跳转至群聊设置界面
-
示例代码
java
XKitRouter.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 的内置界面跳转至新增界面。
-
在通过路由实现跳转前,需调用
registerRouter
方法注册该新增界面的路由地址。方法原型如下:
java
XKitRouter.registerRouter(path, clazz)
参数 类型 说明 path
String 注册界面对应的路由地址 clazz
Class<? extends Activity> Activity 界面类 路由的界面注册机制采用覆盖模式,即相同的
Path
,后注册的界面会覆盖之前注册的界面。 -
调用
navigate
方法进行界面跳转,具体参数说明参见上文的如何跳转。
此文档是否对你有帮助?