Package io.rong.imkit.conversation.extension

## Interface IExtensionModule

- All Implemented Interfaces:

      public interface IExtensionModule

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---

  - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | `onInit(Context context, String appKey)` | SDK 初始化。 用户可以在该方法中注册自定义消息、注册消息模板、初始化自己的模块。
    `abstract void` | `onAttachedToExtension(Fragment fragment, RongExtension extension)` | 进入会话后，Extension 加载所有注册的 module。 module 可以持有并使用 Extension.
    `abstract void` | `onDetachedFromExtension()` | 退出会话，Extension 释放所有已加载的 module。 注意：如果 module 持有 Extension 对象，需要在该回调时释放，否则会有内存泄露。
    `abstract void` | `onReceivedMessage(Message message)` | SDK 接收到消息后，通过此方法路由给对应的模块去处理。 用户可以根据自己注册的消息，有选择性的去处理接收到的消息。
    `abstract List<IPluginModule>` | `getPluginModules(ConversationType conversationType)` | 用户可以根据不同的会话，配置 “+” 号区域插件。 可以配置一个插件，也可以同时配置多个插件。extension 展示所有返回的插件列表。 注意：如果用户没有配置插件，此方法可以不用实现。
    `abstract List<IEmoticonTab>` | `getEmoticonTabs()` | 在会话中可以配置多个表情 tab，也可以配置单个表情 tab。 配置后，所有的会话中都会显示此 tab。 注意：如果用户没有配置表情，此方法可以不用实现。
    `abstract void` | `onDisconnect()` | SDK 断开连接。

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

  - ### Method Detail

    - #### onInit

           abstract void onInit(Context context, String appKey)

      SDK 初始化。 用户可以在该方法中注册自定义消息、注册消息模板、初始化自己的模块。

      Parameters:
        `context` - 上下文
        `appKey` - 应用唯一 key。

    - #### onAttachedToExtension

           abstract void onAttachedToExtension(Fragment fragment, RongExtension extension)

      进入会话后，Extension 加载所有注册的 module。 module 可以持有并使用 Extension. 注意：如果 module 持有 Extension 对象，需要在 onDetachedFromExtension 回调时释放，否则会有内存泄露。

      Parameters:
        `fragment` - Extension 对象所在的 fragment.
        `extension` - Extension 对象。

    - #### onDetachedFromExtension

           abstract void onDetachedFromExtension()

      退出会话，Extension 释放所有已加载的 module。 注意：如果 module 持有 Extension 对象，需要在该回调时释放，否则会有内存泄露。

    - #### onReceivedMessage

           abstract void onReceivedMessage(Message message)

      SDK 接收到消息后，通过此方法路由给对应的模块去处理。 用户可以根据自己注册的消息，有选择性的去处理接收到的消息。

      Parameters:
        `message` - 消息实体。

    - #### getPluginModules

           abstract List<IPluginModule> getPluginModules(ConversationType conversationType)

      用户可以根据不同的会话，配置 “+” 号区域插件。 可以配置一个插件，也可以同时配置多个插件。extension 展示所有返回的插件列表。 注意：如果用户没有配置插件，此方法可以不用实现。

      Parameters:
        `conversationType` - 会话类型。
      Returns:

        插件列表。

    - #### getEmoticonTabs

           abstract List<IEmoticonTab> getEmoticonTabs()

      在会话中可以配置多个表情 tab，也可以配置单个表情 tab。 配置后，所有的会话中都会显示此 tab。 注意：如果用户没有配置表情，此方法可以不用实现。

      Returns:

        表情 tab 列表。

    - #### onDisconnect

           abstract void onDisconnect()

      SDK 断开连接。