当我尝试在Flutter中合并移动和Web代码库时,看到以下错误:
webdev could not run for this project.
This version of webdev does not support the `build_daemon` protocol used by your version of `build_runner`.
Please add a dev dependency on `build_daemon` with constraint: >=1.0.0 <2.0.0
pub finished with exit code 78
我的pubspec.yaml
如下:
environment:
sdk: '>=2.2.0 <3.0.0'
dependencies:
flutter_web: any
flutter_web_ui: any
dev_dependencies:
# Enables the `pub run build_runner` command
build_runner: ^1.1.2
# Includes the JavaScript compilers
build_web_compilers: ^1.0.0
# flutter_web packages are not published to pub.dartlang.org
# These overrides tell the package tools to get them from GitHub
dependency_overrides:
flutter_web:
git:
url: https://github.com/flutter/flutter_web
path: packages/flutter_web
flutter_web_ui:
git:
url: https://github.com/flutter/flutter_web
path: packages/flutter_web_ui```
I'm confused about how can "shared code" can really be "shared" across multi-platform in Flutter (shared codebase being the most important feature in Flutter pitch)
答案 0 :(得分:0)
正如评论中提到的那样,目前不可能在一个项目中共享Web和本机代码库。如果您遇到过此帖子,请参考this link。它具有Flutter团队可用的解决方法的说明。
答案 1 :(得分:0)
我正在研究的一种解决方案是通过dart代理在flutter中使用javascript本机。将您的JavaScript代码复制到Web / src下和index.html文件中。脚本src的javascript代码。在您的main.dart中,将dart:js作为js导入,并使用js.context.callMethod('your function',[您的参数]来调用javascript方法。
我也被迫使用javascript,因为flutter不支持chrome的qr阅读器。