1

我正在使用目标 android/ios/web 开始一个颤振项目,有没有办法为移动和 Web 平台编写相同的 lib 代码?没有找到像条件导入或类似的解决方案。

在我的项目中,我创建了一个文件“global_import.dart”,其中包含针对 Web 和移动设备的所有导入细节,如下所示:

//mobile packages
/*
export 'package:flutter/material.dart';
*/

//web packages
///*
export 'package:flutter_web/material.dart';
//*/

我没有在我的小部件文件中立即导入 flutter 或 flutter_web 包,而是导入此文件并根据需要注释/取消注释移动/网络包。

我目前只找到了这个解决方案,正在寻找更好的解决方案。

4

2 回答 2

3

这是我发现的代码片段,可能有用。

export 'package:flutter_stub/material.dart'
  // ignore: uri_does_not_exist
  if (dart.library.html) 'package:flutter_web/material.dart'
  // ignore: uri_does_not_exist
  if (dart.library.io) 'package:flutter/material.dart';

https://github.com/aloisdeniel/flutter_shared_ui_poc/blob/master/packages/flutter_cross/lib/material.dart

查看Aloïs Deniel 的这个repo 以获取更多信息。

于 2019-08-23T12:37:57.407 回答
1

他们删除了 Flutter 1.9 版

import 'package:flutter_web/material.dart'

现在你可以直接使用包

import 'package:flutter/material.dart';

https://www.youtube.com/watch?v=wzNd3yyLcaU

Flutter web项目现在可以导入所有正常的flutter导入,开发web不再需要特殊情况。

于 2019-09-11T09:38:54.973 回答