进阶用法

大约 3 分钟

进阶用法

以下是进阶用法的部分示例。会话列表页面、消息列表页和联系人列表均可单独使用。

初始化

快速开始中的初始化 相比,本节增加了 ChatOptions 的参数,包括 SDK 中是否打印日志、是否自动登录以及是否默认使用用户属性的开关配置,详见 Demo 文档open in new window

let error = ChatUIKitClient.shared.setup(option: ChatOptions(appKey: appKey))

登录

使用当前用户对象符合 ChatUserProfileProtocol 协议的用户信息登录 EaseChatUIKit

在环信控制台上创建用户,将用户 ID 传入以下代码中的 userId

提示

若你已集成了 IM SDK,SDK 的所有用户 ID 均可用于登录 EaseChatUIKit。

public final class YourAppUser: NSObject, ChatUserProfileProtocol {

    public func toJsonObject() -> Dictionary<String, Any>? {
        ["ease_chat_uikit_user_info":["nickname":self.nickname,"avatarURL":self.avatarURL,"userId":self.id]]
    }

    public var userId: String = <#T##String#>

    public var nickname: String = "Jack"
    
    public var remark: String = "Jack 1"

    public var avatarURL: String = "https://accktvpic.oss-cn-beijing.aliyuncs.com/pic/sample_avatar/sample_avatar_1.png"

}
 ChatUIKitClient.shared.login(user: YourAppUser(), token: ExampleRequiredConfig.chatToken) { error in 
 }

会话列表页面

若完全基于 GitHubopen in new windowGiteeopen in new window 单群聊 UIKit 示例项目进行开发,则无需额外创建页面或配置页面跳转。

若仅需在自己的业务模块中使用部分功能模块,例如,只使用会话列表页面与聊天页面,不需要通讯录页面,则创建会话列表页面,完成跳转。

  1. 创建会话列表页面
    
        let vc = EaseChatUIKit.ComponentsRegister.shared.ConversationsController.init()
        
  1. 监听会话列表页面事件
        
        vc.viewModel?.registerEventsListener(listener: self)

通讯录页面

若完全基于 GitHubopen in new windowGiteeopen in new window 单群聊 UIKit 示例项目进行开发,则无需额外创建页面或配置页面跳转。

若仅需在自己的业务模块中使用部分功能模块,例如,只使用通讯录页面与聊天页面,不需要会话列表页面,则创建通讯录页面,完成跳转。

  1. 创建通讯录页面

继承单群聊 UIKit 提供的通讯录页面类注册后的自定义类可以调用 ViewModel 的 ContactViewController().viewModel.registerEventsListener 方法监听相关事件。

        let vc = EaseChatUIKit.ComponentsRegister.shared.ContactsController.init(headerStyle: .contact)
  1. 监听联系人列表页面事件
        vc.viewModel?.registerEventsListener(listener: self)

初始化聊天页面

聊天页面中大部分消息处理以及页面处理逻辑均可覆盖(override),包括 ViewModel

// 在环信控制台中创建一个新用户,将用户 ID 传入下面构造方法参数中,跳转到聊天页面即可。
let vc = ComponentsRegister.shared.MessageViewController.init(conversationId: <#刚创建用户的id#>, chatType: .chat)
// 继承注册后的自定义类还可以调用 ViewModel 的 registerEventsListener 方法监听聊天消息相关事件,例如消息接收、长按、点击等。 
//或者 push 或者 present 都可
vc.modalPresentationStyle = .fullScreen
ControllerStack.toDestination(vc: vc)

监听用户及与服务器的连接事件

你可以调用 registerUserStateListener 方法监听 EaseChatUIKit 中用户以及与服务器之间的连接状态变更的相关事件和错误。

ChatUIKitClient.shared.registerUserStateListener(self)


不使用该监听时,可调用 `unregisterUserStateListener` 方法移除:

ChatUIKitClient.shared.unregisterUserStateListener(self)


## 更多

更多进阶用法,请参考 [GitHub](https://github.com/easemob/easemob-demo-ios) 或 [Gitee](https://gitee.com/easemob-code/easemob-demo-ios) 中的 Demo 源码。


上次编辑于: