Flutter for Web 开发网页时,为什么文字不能选中复制?

发布于 1周前 作者 yibo5220 来自 Flutter

使用 https://github.com/alibaba/flutter-go 有感, 发现无论是安卓 app 还是网页都不能选中文字复制
有没有什么办法解决呢, 难道会一直这样下去吗
对于很多产品选中文字是刚需吧
Flutter for Web 开发网页时,为什么文字不能选中复制?

11 回复

因为 flutter 做出来的是个 canvas
这东西意味着你以前学的所有前端优化和兼容性全白费
前段时间有个兄弟做了个下雨的页面卡的台式机显卡都带不动

更多关于Flutter for Web 开发网页时,为什么文字不能选中复制?的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


app 有 SelectableText,网页什么情况不清楚

桌面应用支持选中不

是编译器优化问题吗
因为游戏都有在 canvas 上画的咧

他那个卡顿是因为动画都是靠绝对定位来算位置的,所以卡的一批

选中文字这块, 有没有什么变通的方法, 比如绕过 canvas, 直接写个<p></p>出来

不要为难自己,还是正规找前端框架搭

刚才试了一下, 在 flutter for web 上, 我发现用 SelectableText() 可以鼠标划选, 不过没有右键菜单的复制, 只能用 Ctrl+C
而且要是有多个 SelectableText()并列显示的话, 最多只能划选其中一个
而且好像添了\n 换行符之后就没法划选文字了, 真的很不成熟啊

多看看文档

至少,目前 Flutter for web 是不敢用于生产的,还是找个正常的 web 开发框架吧

在Flutter for Web开发网页时,文字不能选中复制的问题可能由多种因素导致。以下是一些可能的原因及解决方案:

可能原因

  1. WebView配置:Flutter Web中的WebView默认可能不启用文本选择模式。
  2. JavaScript限制:网页可能通过JavaScript代码禁用了文本选择功能。
  3. Flutter组件属性:如果使用了特定的Flutter组件(如TextField),并且设置了禁用文本选择的属性(如enableInteractiveSelection: false),则文字也无法被选中复制。

解决方案

  1. 启用文本选择模式:在Flutter WebView中,可以通过执行JavaScript代码来启用文本选择模式。例如,设置webkitUserSelect属性为text,并确保javascriptMode设置为JavascriptMode.unrestricted
  2. 检查并修改JavaScript代码:如果网页中包含了禁用文本选择的JavaScript代码,需要修改这些代码以允许文本选择。
  3. 调整Flutter组件属性:如果使用了禁用文本选择的Flutter组件,需要调整相关属性以允许文本选择。

综上所述,解决Flutter for Web中文字不能选中复制的问题需要从多个方面入手,包括检查WebView配置、JavaScript代码以及Flutter组件属性等。通过合理的配置和调整,可以确保网页中的文字能够被用户正常选中并复制。

回到顶部