Skip to content
能力中心
产品中心
应用市场
WebOffice
开发者后台

集成会话列表界面

协作中台 SDK 支持会话列表的集成,会话列表功能如下:

  • 根据消息生成会话列表,即最近聊天记录。

  • 将指定的某类会话聚合,如消息助手。

效果展示

可以通过两种方式集成会话列表页面:

  • KIMChatListActivity,直接包含了 KIMChatListFragment 的 Activity 界面,可以通过 KIM.getService().goPage(KIMChatListFragment::class.java.getPageName(), this, Bundle())启动

  • KIMChatListFragment,接入方可以将该 Fragment 嵌入自己的 Activity,直接创建 KIMChatListFragment, 并通过 fragmentManager 添加到自定义的 Activity 中

接口定义

kotlin
fun goPage(pageName: String,context: Context?,args: Bundle)

参数说明

参数类型说明
pageNamestring这里固定值:KIMChatListFragment::class.java.getPageName()
contextContext上下文
argsBundle

代码示例

  • 直接使用KIMChatListActivity
kotlin
KIM.getService().goPage(KIMChatListFragment::class.java.getPageName(), this, Bundle())
  • 使用KIMChatListFragment,接入方可以将该 Fragment 嵌入自己的 Activity,直接创建 KIMChatListFragment, 并通过 fragmentManager 添加到自定义的 Activity 中。
  1. 自定义 Activity 并将 Fragment 加入到 Activity 中。
kotlin
class CustomChatListActivity : FragmentActivity() {
    private lateinit var binding: KimUiCommonFragmentContainerBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = KimUiCommonFragmentContainerBinding.inflate(layoutInflater)
        setContentView(binding.root)
        if (savedInstanceState == null) {
            val fragment = KIMChatListFragment()
            fragment.arguments = intent.getBundleExtra(Router.EXTRA_DATA)
            supportFragmentManager.beginTransaction()
                .add(R.id.container, fragment, KIMChatListFragment.PAGE_NAME)
                .commitAllowingStateLoss()
        } else {
            val fragment = supportFragmentManager.findFragmentByTag(KIMChatListFragment.PAGE_NAME)
            if (fragment == null) {
                finish()
                return
            }
            supportFragmentManager.beginTransaction()
                .attach(fragment)
                .commitAllowingStateLoss()
        }

    }
}

请注意在 Manifest 完成注册及主题设置。

  1. 启动 Activity
kotlin
startActivity(Intent(this, CustomChatListActivity::class.java))