我正在尝试从网络下载图像并将其本地保存在计算机的下载文件夹中。我需要为 flutter web 实现这一点,我不知道该怎么做。
我发现了一些关于如何实现Android和IOS下载并保存文件或图像的问题,例如Flutter将网络图像保存到本地目录。我还查看了如何在本地为 Flutter Web 读取和写入图像文件?。但是,我不知道这些答案对我有什么帮助。
我认为对于 IOS 和 Flutter 我可以使用以下函数而不会出现任何错误,但我不知道文件保存在模拟器中的位置:
void _downloadAndSavePhoto() async {
var response = await http.get(Uri.parse(imageUrl));
try {
Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;
File file = File('$tempPath/$name.jpeg');
file.writeAsBytesSync(response.bodyBytes);
} catch (e) {
print(e.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用 flutter web 的上述功能(使用 Chrome 模拟器)时,出现以下错误:
MissingPluginException(No implementation found for method getTemporaryDirectory on channel plugins.flutter.io/path_provider)
Run Code Online (Sandbox Code Playgroud)
如果有人知道一种方法或有一些实现该功能的建议,我将非常高兴。
提前致谢!
我正在尝试实现小部件测试以测试登录表单。这个测试取决于我使用 MockBloc 模拟的一个块。但是,它会引发以下错误:
??? EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK?????????????????????????????????????????????????????
The following StateError was thrown running a test:
Bad state: No method stub was called from within `when()`. Was a real method called, or perhaps an
extension method?
Run Code Online (Sandbox Code Playgroud)
我在以下链接中发现了类似的错误,但我不知道这如何帮助我解决我的问题。
我还在gitlub 上查看了以下文件,这是使用 bloc_test 进行小部件测试的示例。该链接可以在 Bloc 库的官方网站上找到 - 特别是在 Flutter 中使用 Bloc 库的 Todos App 中。
但是,该示例bloc_test: ^3.0.1在我使用时使用bloc_test: ^8.0.0,可在此处找到。
这是一个最小的例子:
class LoginForm extends StatelessWidget {
@override
Widget …Run Code Online (Sandbox Code Playgroud)