【发布时间】:2020-06-24 01:44:12
【问题描述】:
我正在构建一个 Flutter 应用程序,并尝试在网络上运行。其中一部分包含一些特定于 Web 的代码:
import 'dart:html' as html;
import 'package:flutter/foundation.dart';
class DownloadViewModel extends ChangeNotifier {
static const String url = 'https://example.com/api/v1/app/myapp_1.0.0.apk';
void onAndroidDownloadPressed() {
html.window.open(url, 'AndroidApp');
}
}
但是dart:html 导入会出现以下错误:
避免在 Flutter Web 插件包之外使用纯 Web 库
警告的较长版本如下所示:
避免使用网络库,
dart:html、dart:js和dart:js_util在 不是 Web 插件的 Flutter 包。这些库不是 在网络环境之外支持;依赖于它们的功能 在 Flutter 移动端运行时会失败,它们的使用一般是 在 Flutter web 中不鼓励使用。允许访问网络库:
plugin packages that declare web as a supported context否则,将不允许导入
dart:html、dart:js和dart:js_util。
这不仅仅是一个警告。这实际上阻止了构建 Android 或 iOS 应用程序(即使非 Web Flutter 应用程序无法访问此方法)。
我想出的唯一解决方案是在为 Android 和 iOS 构建时注释掉导入,然后在为 web 构建时取消注释。有没有更好的解决方案?
【问题讨论】:
标签: html flutter dart flutter-web