集成说明

野火客户端是分层的,客户可以只集成ChatClient,然后自己实现所有的UI和交互,难度和工作量都比较大;也可以集成ChatClientChatUIKit,省掉大部分的UI开发。

1. 集成ChatUIKit

  1. uikit作为一个module引入到目标项目

    引入方法是:将uikit目录拷贝到目标项目,然后在目标项目setting.gradle里面添加include ':uikit',引入其他module也是一样的办法

  2. uikit所依赖的modeule引入目标项目,目前依赖于clientavenginekitbadgeviewmenuuikit-aar-dep等,具体可以参考uikit/build.gradle
  3. 在项目Application子类里面初始化UIKit。初始化操作,只需要再主进程进行即可。可以参考android-chat里面的MyApp.java

     WfcUIKit wfcUIKit = WfcUIKit.getWfcUIKit();
     // 初始化
     wfcUIKit.init(this);
     // 应用后台运行时,是否允许本地通知
     wfcUIKit.setEnableNativeNotification(true);
     // 设置应用服务,ChatUIKit有些操作,比如群公告等,需要上层来完成,需要设置appServiceProvider,快速集成时可以先注释掉。
     wfcUIKit.setAppServiceProvider(AppService.Instance());
     // 推送初始化
     PushService.init(this, BuildConfig.APPLICATION_ID);
     // 注册自定义消息
     MessageViewHolderManager.getInstance().registerMessageViewHolder(LocationMessageContentViewHolder.class, R.layout.conversation_item_location_send, R.layout.conversation_item_location_send);
    
     // 设置组织结构服务
     wfcUIKit.setOrganizationServiceProvider(organizationService);
    
     // 设置默认头像提供者
     ChatManager.Instance().setDefaultPortraitProviderClazz(WfcDefaultPortraitProvider.class);
     // 双网时,设置 url 重定向
     ChatManager.Instance().setUrlRedirectorClazz(TestUrlRedirector.class);
    
  4. 参考android-chat/MainActivity,使用uikit里面实现的ConversationListFragmentContactListFragment等 UI 组件,进行快速开发
  5. 参考android-chat/MainActivity,处理被踢等情况下的重新登录逻辑
  6. 获取到userIdtoken之后,进行连接
    ChatManager.Instance().connect(userId, token)
    

2. 集成ChatClient

ChatClient只是个功能库,所有的UI都是需要自己来实现,难度也比较高,需要资深研发工程师进行集成。首先参考集成ChatUIKit的方法,只引入client模块,然后去掉所有关于ChatUIKit和音视频的操作。然后参考ChatClient库中ChatManager里面的方法进行各种接口调用和回调监听。如果有问题可以参考ChatUIKit的代码。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2025-04-14 08:17:32

results matching ""

    No results matching ""