uni-app 需要可以插入视频和图片的富文本编辑器

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app 需要可以插入视频和图片的富文本编辑器

插件需求 需要可以插入视频和图片的富文本编辑器

4 回复

这个社区比较寒酸


uni-app 中实现一个可以插入视频和图片的富文本编辑器,可以借助第三方富文本编辑器组件,或者自行封装一个。由于自行封装较为复杂,这里推荐使用一个比较成熟的第三方组件库 uview-ui 中的 u-editor 组件,并进行一些扩展以支持视频插入。请注意,uview-ui 组件库本身可能不支持直接插入视频,但可以通过一些技巧实现。

首先,确保你的项目已经安装了 uview-ui

npm install uview-ui --save

然后,在 main.js 中引入 uview-ui

import Vue from 'vue';
import uView from 'uview-ui';

Vue.use(uView);

接下来,使用 u-editor 组件,并扩展其功能以支持视频插入。由于 u-editor 默认可能不支持视频标签,我们可以通过监听编辑器内容变化,手动处理视频插入逻辑。

以下是一个简单的示例代码,展示如何在 uni-app 中使用 u-editor 并尝试插入视频:

<template>
  <view>
    <u-editor
      ref="editor"
      v-model="content"
      @input="handleInput"
    />
    <button @click="insertVideo">插入视频</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      content: '<p>初始内容</p>',
    };
  },
  methods: {
    handleInput(val) {
      // 处理编辑器内容变化,如果需要可以在这里添加逻辑
    },
    insertVideo() {
      const videoHtml = `<video controls src="https://www.example.com/video.mp4" style="max-width: 100%;"></video>`;
      let newContent = this.content;
      
      // 在光标位置插入视频(这里简单处理为在内容末尾插入,实际应获取光标位置)
      newContent += videoHtml;
      
      this.content = newContent;
      
      // 如果需要,可以手动触发 u-editor 的更新
      this.$refs.editor.updateContent();
    },
  },
};
</script>

<style>
/* 添加必要的样式 */
</style>

注意:

  1. 上述代码中的 insertVideo 方法仅作为示例,实际项目中应实现更精确的光标位置获取和视频插入逻辑。
  2. 视频的 src 属性应替换为实际视频链接。
  3. u-editorupdateContent 方法是假设存在的,实际使用时需查阅 uview-ui 文档确认正确的方法名。

通过这种方式,你可以在 uni-app 中实现一个基本的富文本编辑器,支持插入图片和视频。如果需要更多功能,可以进一步定制和扩展。

回到顶部