Package io.rong.imkit.conversation.extension.component.plugin

## Interface IPluginModule

- All Implemented Interfaces:

      public interface IPluginModule

- - ### 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 Drawable` | `obtainDrawable(Context context)` | 获取 plugin 图标
    `abstract String` | `obtainTitle(Context context)` | 获取 plugin 标题
    `abstract void` | `onClick(Fragment currentFragment, RongExtension extension, int index)` | plugin 被点击时调用。 1.
    `abstract void` | `onActivityResult(int requestCode, int resultCode, Intent data)` | activity 结束时返回数据结果。 在 onClick 中，你可能会开启新的 activity，你有两种开启方式： 1.

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

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

- - ### Constructor Detail

  - ### Method Detail

    - #### obtainDrawable

           abstract Drawable obtainDrawable(Context context)

      获取 plugin 图标

      Parameters:
        `context` - 上下文
      Returns:

        图片的 Drawable

    - #### obtainTitle

           abstract String obtainTitle(Context context)

      获取 plugin 标题

      Parameters:
        `context` - 上下文
      Returns:

        标题的字符串

    - #### onClick

           abstract void onClick(Fragment currentFragment, RongExtension extension, int index)

      plugin 被点击时调用。 1. 如果需要 Extension 中的的数据，可以调用 Extension 相应的方法获取。 2. 如果在点击后需要开启新的 activity，可以使用 startActivityForResult 或者 startActivityForPluginResult 方式。

      注意：不要长期持有 fragment 或者 extension 对象，否则会有内存泄露。

      Parameters:
        `currentFragment` - plugin 所关联的 fragment。
        `extension` - RongExtension 对象
        `index` - plugin 在 plugin 面板中的序号。

    - #### onActivityResult

           abstract void onActivityResult(int requestCode, int resultCode, Intent data)

      activity 结束时返回数据结果。

      在 onClick 中，你可能会开启新的 activity，你有两种开启方式：

      1. 使用系统中 startActivityForResult 开启方法 这就需要自己在对应的 Activity 中接收处理 Activity#onActivityResult(int, int, Intent) 返回的结果。

      2. 如果调用了 startActivityForPluginResult 开启方法 则在 ConversationFragment 中接收到 Activity#onActivityResult(int, int, Intent) 后， 必须调用 onActivityPluginResult 方法，RongExtension 才会将数据结果 通过 IPluginModule 中 onActivityResult 方法返回。

      Parameters:
        `requestCode` - 开启 activity 时请求码，不会超过 255.
        `resultCode` - activity 结束时返回的数据结果.
        `data` - 返回的数据.