假设<code>AudioPlayer|lib/audio_cache。dart仅适用于Android/iOS,我有条件地从dart文件中排除以下导入:
import "package:audioplayers/audio_cache.dart"
通过以下方式:
import "dart:math" if (dart.library.io) "package:audioplayers/audio_cache.dart";
其中“dart:math”可以是任何fake_stub Dart文件。简而言之,这只是为Flutter中的移动设备导入了一个库。详情在此(感谢Alois Deniel!).
在Flutter-Web实现中隐藏特定于平台的代码的最佳方式是什么?
import 'dart:io' show Platform;
bool isMobile() => Platform.isAndroid || Platform.isIOS;
class _MyPageState extends State<MyPage> {
dynamic _audioPlayer;
@override
void initState() {
if (isMobile()) {
_audioPlayer = AudioCache(prefix: 'sounds/');
_audioPlayer.load('mysound.mp3');
}
}
}
当然,这种天真的尝试在AudioCache
引用上失败。
Error: Method not found: 'AudioCache'.
_audioPlayer = AudioCache(prefix: 'sounds/');
在这个与您的要求相似的堆栈溢出问题中,我根据超文本传输协议包的实现编写了一个答案。
我想你也可以用类似的方法来处理这种条件依赖。我在这里提供了一个工作示例。我在这里引用一下答案。
核心思想如下。
由于Flutter web还不支持lib,并且有大量的包依赖于。
This page is for users who are familiar with the HTML and CSS syntax for arranging components of an application’s UI. It maps HTML/CSS code snippets to their Flutter/Dart code equivalents. The example
[!]Android toolchain-为Android设备开发(Android SDK 28.0.3版)•Android SDK在C:\users\darknight\appdata\local\Android\SDK X Flutter需要Android SDK 29和Android BuildTools 28.0.3来更新Android SDK,请访问https://Flutter.dev
我正在构建一个Flutter应用程序,我试图在网络上工作。其中一部分包含一些特定于web的代码: 但是, 导入会给出以下错误: 避免在 Flutter Web 插件包之外使用纯 Web 库 警告的较长版本如下所示: 避免在非网络插件的飘飘包中使用网页库、、。这些库在 Web 上下文之外不受支持。依赖于它们的功能在Flutter移动版的运行时会失败,并且在Flutter Web中通常不鼓励使用它们。
我试图让我的flutter应用程序在浏览器中工作,它依赖于Firebase_database。没有关于如何做到这一点的文档,但我根据firebase_core和firebase_auth文档做了一些假设: > https://github.com/firebaseextended/flutterfire/tree/master/packages/firebase_core/firebase_cor
我在Flitter web和将图像上传到Firestore时遇到问题。我很确定问题在于图像采集器,因为普通(移动)图像采集者不适用于web。普通图像选取器返回一个文件,但备选图像选取器web返回一个图像,该图像在上传时被拒绝,因为它期望<code>未来 image_picker_web有一个替代方案来返回我使用过的,然后通过转换为-并上传罚款,但图像已损坏且无法查看。 以下是我所做的: 按下按钮时