uni-app editor组件在ios15及以下设备h5环境中无法使用(vue3)

uni-app editor组件在ios15及以下设备h5环境中无法使用(vue3)

操作步骤:

预期结果:

  • 可以正常使用

实际结果:

  • 无法编辑

bug描述:

8 回复

已复现 感谢反馈。

更多关于uni-app editor组件在ios15及以下设备h5环境中无法使用(vue3)的实战教程也可以访问 https://www.itying.com/category-93-b0.html


能解决不

回复 raingad: iOS12.5.7和iOS15 safari测试正常了,你试下

回复 DCloud_UNI_Anne: 需要更新quill组件不

回复 raingad: 参考文档 自行托管 CDN 资源

回复 DCloud_UNI_Anne: 遇到到同样问题,文档方案都试了也不行。 在iOS17上可以,在iOS14.2上不行。直接运行到iOS14.2上是可以输入的,但npm run build:h5后,就无法输入

我也遇到了跟这个是一样的https://ask.dcloud.net.cn/question/171994,怎么试都不行,我换成vue2的老版本了。

uni-app 中使用 editor 组件时,如果你在 iOS 15 及以下设备的 H5 环境中遇到问题,可能是由于以下几个原因导致的。以下是一些可能的解决方案和排查步骤:

1. 检查 editor 组件的兼容性

  • editor 组件在 H5 环境中的兼容性可能有限,尤其是在 iOS 15 及以下版本中。你可以查阅 uni-app 的官方文档,确认 editor 组件在 H5 环境中的支持情况。
  • 如果 editor 组件在某些浏览器或设备上不被支持,可能需要寻找替代方案。

2. 使用 textarea 或富文本编辑器插件

  • 如果 editor 组件无法在 iOS 15 及以下设备上正常工作,可以考虑使用 textarea 或第三方富文本编辑器插件(如 quilltinymce 等)作为替代方案。
  • 这些插件通常具有更好的跨平台兼容性,并且可以在 H5 环境中正常工作。

3. 检查浏览器内核版本

  • iOS 15 及以下版本的 Safari 浏览器内核版本可能较旧,导致某些功能无法正常工作。你可以检查用户使用的浏览器内核版本,并在必要时提示用户升级浏览器。

4. 调试和日志

  • 在 H5 环境中,使用浏览器的开发者工具(如 Safari 的 Web Inspector)进行调试,查看是否有错误信息或警告。
  • 通过 console.log 输出相关信息,帮助定位问题。

5. 更新 uni-app 版本

  • 确保你使用的是最新版本的 uni-appuni-app 团队会不断修复 bug 和优化组件,更新到最新版本可能会解决一些已知问题。

6. 使用条件编译

  • 如果 editor 组件只在某些平台或环境下无法正常工作,可以使用 uni-app 的条件编译功能,针对不同平台或环境使用不同的代码逻辑。

例如:

<template>
  <view>
    <!-- #ifdef H5 -->
    <textarea v-if="isIOS15OrBelow" v-model="content"></textarea>
    <editor v-else v-model="content"></editor>
    <!-- #endif -->
    <!-- #ifndef H5 -->
    <editor v-model="content"></editor>
    <!-- #endif -->
  </view>
</template>

<script>
export default {
  data() {
    return {
      content: '',
      isIOS15OrBelow: false
    };
  },
  mounted() {
    this.checkIOSVersion();
  },
  methods: {
    checkIOSVersion() {
      const userAgent = navigator.userAgent;
      const isIOS = /iPad|iPhone|iPod/.test(userAgent);
      const iosVersion = userAgent.match(/OS (\d+)_(\d+)_?(\d+)?/);
      if (isIOS && iosVersion && parseInt(iosVersion[1]) <= 15) {
        this.isIOS15OrBelow = true;
      }
    }
  }
};
</script>
回到顶部