Sur*_*gch 20 html dart flutter flutter-web
我正在构建一个 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');
}
}
Run Code Online (Sandbox Code Playgroud)
但是dart:html
导入会出现以下错误:
避免在 Flutter Web 插件包之外使用纯 Web 库
警告的较长版本如下所示:
避免使用网络图书馆,
dart:html
,dart:js
并dart:js_util
在颤振包不在网络插件。这些库在 Web 上下文之外不受支持;依赖于它们的功能在 Flutter mobile 中将在运行时失败,并且在 Flutter web 中通常不鼓励使用它们。允许访问网络图书馆:
Run Code Online (Sandbox Code Playgroud)plugin packages that declare web as a supported context
否则,不允许导入
dart:html
、dart:js
和dart:js_util
。
这不仅仅是一个警告。这实际上阻止了构建 Android 或 iOS 应用程序(即使非 Web Flutter 应用程序无法访问此方法)。
我想出的唯一解决方案是在为 Android 和 iOS 构建时注释掉导入,然后在为 Web 构建时取消注释。有更好的解决方案吗?
Sur*_*gch 29
使用Universal_html包。它支持浏览器、Dart VM 和 Flutter,并且是dart:html
其他 Web 相关库的替代品。
dependencies:
universal_html: ^1.2.1
Run Code Online (Sandbox Code Playgroud)
然后,import 'dart:html' as html;
您可以使用以下导入代替使用:
import 'package:universal_html/html.dart' as html;
Run Code Online (Sandbox Code Playgroud)
对于那些因其他相关 Web 导入问题(如dart:js
)而来到此页面的人,此插件还支持以下导入:
import 'package:universal_html/driver.dart';
import 'package:universal_html/html.dart';
import 'package:universal_html/indexed_db.dart';
import 'package:universal_html/js.dart';
import 'package:universal_html/js_util.dart';
import 'package:universal_html/prefer_sdk/html.dart';
import 'package:universal_html/prefer_sdk/indexed_db.dart';
import 'package:universal_html/prefer_sdk/js.dart';
import 'package:universal_html/prefer_sdk/js_util.dart';
import 'package:universal_html/prefer_sdk/svg.dart';
import 'package:universal_html/prefer_sdk/web_gl.dart';
import 'package:universal_html/prefer_universal/html.dart';
import 'package:universal_html/prefer_universal/indexed_db.dart';
import 'package:universal_html/prefer_universal/js.dart';
import 'package:universal_html/prefer_universal/js_util.dart';
import 'package:universal_html/prefer_universal/svg.dart';
import 'package:universal_html/prefer_universal/web_gl.dart';
import 'package:universal_html/svg.dart';
import 'package:universal_html/web_gl.dart';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5712 次 |
最近记录: |