uni-app editor组件在ios15及以下设备h5环境中无法使用(vue3)
uni-app editor组件在ios15及以下设备h5环境中无法使用(vue3)
操作步骤:
预期结果:
- 可以正常使用
实际结果:
- 无法编辑
bug描述:
- 在vue3环境下无法使用editor组件,官方的demo也不支持输入,https://vue3-hellouniapp.dcloud.net.cn/pages/component/editor/editor
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或第三方富文本编辑器插件(如quill、tinymce等)作为替代方案。 - 这些插件通常具有更好的跨平台兼容性,并且可以在 H5 环境中正常工作。
3. 检查浏览器内核版本
- iOS 15 及以下版本的 Safari 浏览器内核版本可能较旧,导致某些功能无法正常工作。你可以检查用户使用的浏览器内核版本,并在必要时提示用户升级浏览器。
4. 调试和日志
- 在 H5 环境中,使用浏览器的开发者工具(如 Safari 的 Web Inspector)进行调试,查看是否有错误信息或警告。
- 通过
console.log输出相关信息,帮助定位问题。
5. 更新 uni-app 版本
- 确保你使用的是最新版本的
uni-app。uni-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>

