flutter上分之路番外1-深渊大乱斗(集成web
前言
flutter2.0重磅发布,将web渠道合并到stable分支,正式转正!
上次玩flutter已经一年半之前了,时间飞逝,岁月如梭。这次我们借这个机会重拾一下,把之前的demo添加上web端的支持。
正文
1.更新flutter版本
更新版本时,一开始直接使用flutter upgrade命令
结果由于网络问题,一直更新不成功。
后来就直接下载新版本的压缩包,解压到flutter目录。
下载地址:
https://flutter.cn/docs/development/tools/sdk/releases
然后用flutter doctor检查一下,确认没问题就行了。
2.开启web支持
使用 flutter config --enable-web 开启
3.使项目支持web运行
在项目根目录使用命令 flutter create .
(create后面有个参数,输出目录。点表示输出目录为当前目录)
这样会在项目中添加web文件夹。
create命令,ios默认使用swift语言,android默认使用kotlin语言,直接使用的话,会添加MainAcitivity.kt文件。如果你不需要kotlin支持,可以使用 -a java 将android部分改为java语言模式。
flutter create -a java .
4.运行在Chrome
使用命令 flutter run --release,稍等片刻as便会自动打开Chrome并运行项目。
5.思考
为什么一定要用release模式呢,因为直接运行会有个报错。
Failed to establish connection with the application instance in Chrome.
This can happen if the websocket connection used by the web tooling is unable to correctly establish a connection, for
example due to a firewall.
这。。。。和防火墙有啥关系??
后来发现,release模式运行的时候,控制台多了一句话。大意是先编译,再运行。
在pubspec.yaml文件中添加下面依赖,就可以直接以debug模式运行了。(直接点击AS上面的红色三角run按钮)
dev_dependencies:
build_runner: ^1.4.0
build_web_compilers: ^2.0.0
后面考虑走一波desktop。