当前位置:网站首页>Flutter2.0运行在web上不同渲染器的问题
Flutter2.0运行在web上不同渲染器的问题
2022-06-22 17:54:00 【刘忆初】
前言
Flutter2.0发布不久,对web的支持刚刚进入stable阶段。
初学几天,构建web应用时候碰到一些问题,比如中文显示成乱码,然后加载图片出现图片跨域问题:
Failed to load network image
...
Trying to load an image from another domain?
1.开启web端构建:使用下面这个命令才可以开启Web端构建的支持
flutter config --enable-web

提示我们:重新启动编辑器,以便它们读取新设置。
2.重启后后我们再次输入
flutter config
可以看到:
这样每次新建Flutter项目时,都是支持web端构建的,会默认多出一个构建配置目录web(设置之前只有Android,iOS)。即使某个项目不需要支持web端构建也无须去特意关掉这个支持,不使用构建web的命令即可。
3.旧项目开启web支持:其实就是对当前项目重新配置一下
flutter create .
复制以上,不要掉了后面的符号。
执行:
然后再看项目目录,除了Android和iOS,可以看到已经多了web目录了:
4.调试web端
在没有其他端环境可用的情况下,使用以下命令会直接编译web端并打开chrome进行调试
flutter run
关于跨域访问失败的问题:
百度了一下,得到的答案是:Flutter在运行和构建Web应用程序时,可以在两个不同的渲染器之间进行选择。 这两个渲染器是:
1.HTML。CSS,Canvas元素和SVG元素。 该渲染器的下载大小较小。
2.Canvaskit。使用Skia编译为WebAssembly并使用WebGL渲染。 该渲染器与Flutter移动设备和台式机完全一致,具有更快的性能,并且不太可能在浏览器之间出现差异,但下载大小增加了大约2MB。
Flutter官方文档上对这个选项的默认设置的说明是,当应用程序在移动浏览器中运行时,此选项选择HTML渲染器;当应用程序在桌面浏览器中运行时,选择CanvasKit渲染器。那么看样子系统为我们设置的是CanvasKit渲染器。
于是分别用命令:
flutter run -d chrome --web-renderer html
flutter run -d chrome --web-renderer canvaskit
使用html的显示出了正常的页面,而使用canvaskit的则显示空白页面。那么到目前位置,我们基本也可以定位,应该是浏览器下载CanvasKit出错导致的问题。于是,经过了一系列的科学上网设置,问题解决。
附上flutter web一些常用命令:
flutter channel beta //切换版本
flutter upgrade //检查升级
flutter config --enable-web //添加web支持
flutter devices //查看连接设备,会显示chrom浏览器,没有建议装一个
flutter create xxx //创建新web项目,项目名不支持驼峰写法
cd xxx //切换到目录
flutter run -d chrome //运行到设备
flutter build web //打包web项目
flutter build apk//android 打包
flutter build ios --release//ios 打包
边栏推荐
- 牛客网:合并区间
- wpa_supplicant的状态机迁移
- 3GPP 5G R17标准冻结,RedCap作为重要特性值得关注!
- Explain the startup process of opengauss multithreading architecture in detail
- Which securities company is better to open an account when making an appointment to play new bonds? It is safer to open an account
- Modèle de langage de pré - formation, Bert, roformer Sim aussi connu sous le nom de simbertv2
- 回文数(简单版)
- At 19:30 today, the science popularization leader said that he would take you to explore how AI can stimulate human creativity
- 贪心之区间问题(3)
- Activity跳转到Fragment的方法(Intent)
猜你喜欢
随机推荐
mysql数据库设计
TypeScript(7)泛型
如何在 FlowUs和Notion 等笔记软件中进行任务管理?
Iplook 5gc successfully connected with CICA international CHF (billing function)
消息中间件(一)MQ详解及四大MQ比较
Golang 實現 Redis(10): 本地原子性事務
同花顺好用么?手机开户安全么?
2022 Chongqing preschool education industry exhibition 𞓜 hi tech Toy Puzzle decompression Toy Expo
SRE必将走向混沌工程时代--华为云混沌工程实践
Zynq UltraScale + RFSoC ZCU111 RF时钟树学习 1
自定义数据库连接池类: 要求:封闭一个Collection对象的集合类
使能伙伴,春节重大保障“不停歇”
std::enable_shared_from_this 错误:error: expected template-name before ‘<’ token
运维、监控、AIOps的几个重要观点
PostgreSQL reconfigure from library
最长公共子序列
What happened to this page when sqlserver was saving
sqlserver保存时遇到这个页面怎么回事啊
Centeros install mangodb
Thread pool: reading the source code of threadpoolexcutor





![jniLibs. Srcdirs = ['LIBS'] what's the use?](/img/d5/3070f8e793507efc601bb22d5024fa.png)


