# openPostEditor

> 唤起发帖器

### openPostEditor

> 唤起发帖器

#### 请求参数

| 参数                          | 类型                              | 必填 | 说明                         |
| ----------------------------- | --------------------------------- | ---- | ---------------------------- |
| `postRule.hint`               | `string`                          | 否   | 文本输入框提示文案           |
| `postRule.initialText`        | `string`                          | 否   | 初始化文本内容               |
| `postRule.audio`              | `boolean`                         | 否   | 是否显示音频按钮，默认 true  |
| `postRule.image`              | `boolean`                         | 否   | 是否显示图片按钮，默认 true  |
| `postRule.video`              | `boolean`                         | 否   | 是否显示视频按钮，默认 true  |
| `postRule.address`            | `boolean`                         | 否   | 是否显示定位按钮，默认 true  |
| `postRule.asset_video`        | `boolean`                         | 否   | 是否显示媒资视频，默认 false |
| `postRule.audio_must`         | `boolean`                         | 否   | 音频是否必传                 |
| `postRule.image_must`         | `boolean`                         | 否   | 图片是否必传                 |
| `postRule.max_image_count`    | `number`                          | 否   | 图片最大张数，默认 9         |
| `postRule.min_image_count`    | `number`                          | 否   | 图片最小张数，默认 0         |
| `postRule.video_must`         | `boolean`                         | 否   | 视频是否必传                 |
| `postRule.text_must`          | `boolean`                         | 否   | 文本内容是否必传             |
| `postRule.content_max_length` | `number`                          | 否   | 文本最大长度，默认 1000      |
| `postRule.content_min_length` | `number`                          | 否   | 文本最小长度，默认 0         |
| `success`                     | `(res: PostEditorResult) => void` | 否   | 成功回调                     |
| `fail`                        | `(error: BridgeCode) => void`     | 否   | 失败回调                     |
| `complete`                    | `() => void`                      | 否   | 完成回调                     |

#### 返回值

```js
Promise<{
    content: string
    street?: string
    audio?: unknown
    video?: unknown
    images?: { url: string; width: number; height: number }[]
}>
```

#### 示例代码

推荐使用 `generatePostEditorParamsByThreadPostRule` 构造参数

```js
import { generatePostEditorParamsByThreadPostRule, openPostEditor, KbRequirement } from '@kbapp/js-bridge'

openPostEditor({
    postRule: generatePostEditorParamsByThreadPostRule({
        textMin: 0,
        textMax: 1000,
        /** 帖子中, 图片的最大张数 */
        imageMax: 9,

        /** 帖子中, 图片的最小张数 */
        imageMin: 0,

        /** 音频限制 */
        audioRqr: KbRequirement.FREE,

        /** 视频限制 */
        videoRqr: KbRequirement.FREE,

        /** 媒资限制 */
        mediaRqr: KbRequirement.FORBID,

        /** 位置-逆地理信息限制 */
        streetRqr: KbRequirement.FREE
    }),
})

openPostEditor({
    postRule: {
        hint: '请输入内容',
        initialText: '默认内容',
        image: true,
        max_image_count: 9,
    },
    success(result) {
        console.log('发帖内容', result)
    },
    fail(error) {
        console.log('打开发帖器失败', error)
    },
})
```

> 支持 Promise 风格调用
